WeChat applet compartilhamento global de dados Mobx

1. Instale o MOBX primeiro

No diretório onde o projeto está localizado, clique com o botão direito do mouse e selecione [Abrir em uma janela de terminal externo], execute:

npm install  --save  [email protected]  [email protected]

Após o sucesso, clique em [Ferramentas] - [Framework npm] nas ferramentas do desenvolvedor do WeChat e o trabalho de instalação estará concluído.

2. Coloque os dados a serem compartilhados em um arquivo store.js, importe o miniprograma mobx, os dados a serem compartilhados tem os campos num1, num2, métodos sum(), updateNum1, updateNum2, obs: precisa alterar o método dos dados compartilhados uso : modificação de ação

import {
  observable,
  action
} from 'mobx-miniprogram'
export const store = observable({
  num1: 1,
  num2: 2,
  get sum() {
    return this.num1 + this.num2
  },
  updateNum1: action(function (step) {
    this.num1 = this.num1 + step
  }),
  updateNum2: action(function (step) {
    this.num2 = this.num2 + step
  })
})

3. Faça referência à loja na página

Primeiro importe os vínculos do miniprograma mobx

import {createStoreBindings} from 'mobx-miniprogram-bindings'
import {store} from '../../store/store'

Na função de ciclo de vida onLoad

onLoad(options) {
    this.storeBindings = createStoreBindings(this,
      {
        store,
        fields:['num1','num2','sum'],
        actions:['updateNum1','updateNum2']
      })
  }

Na função de ciclo de vida onUnload

onUnload() {

    this.storeBindings.detroyStoreBindings()

  }

4. Os dados compartilhados são exibidos na página:

arquivo wxml:

<button bindtap="addNum1" data-step="{
   
   {1}}">+1</button>
<button bindtap="addNum2" data-step="{
   
   {1}}">+1</button>
<view>num1:{
   
   {num1}}+num2:{
   
   {num2}}={
   
   {sum}}</view>

Métodos compartilhados podem ser usados ​​em eventos:

 addNum1(e){
    console.log(e)
    this.updateNum1(e.target.dataset.step)
  }

Como usar dados compartilhados em componentes?

Importe mobx-miniprogram-bindings no arquivo js do componente e, em seguida, declare os dados no nó do componente. Componentes e a introdução de vinculações de miniprogramas mobx na página acima são diferentes

import {storeBindingsBehavior} from 'mobx-miniprogram-bindings'
import {store} from '../store/store'
Component({
  behaviors:[storeBindingsBehavior],
  storeBindings:{
    store,
    fields:{
      num1:'num1',
      num2:'num2',
      sum:'sum'
    },
    actions:{
      updateNum1:'updateNum1',
      updateNum2:'updateNum2'
    }
  }
}

O método de exibição de dados compartilhados em um componente é o mesmo que o método de exibição de dados em uma página e não será repetido aqui.

おすすめ

転載: blog.csdn.net/qq_35262929/article/details/127808617