小程序中的状态管理库-mobx-miniprogram

mobx-miniprogram 是一个基于 MobX 的状态管理库,适用于微信小程序,能够实现页面和组件间的响应式数据通信。以下是其使用方法:

安装依赖

在项目根目录下运行以下命令,安装 mobx-miniprogrammobx-miniprogram-bindings

bash 复制代码
npm install --save mobx-miniprogram mobx-miniprogram-bindings

创建 MobX Store

在项目中创建一个单独的文件(如 store.js),用于定义状态管理的 Store:

javascript 复制代码
// store.js
import { observable, action } from 'mobx-miniprogram';

export const store = observable({
  numA: 1,
  numB: 2,
  get sum() {
    return this.numA + this.numB;
  },
  update: action(function () {
    const sum = this.sum;
    this.numA = this.numB;
    this.numB = sum;
  }),
});

在组件中使用 Store

在组件中,通过 mobx-miniprogram-bindings 将 Store 绑定到组件:

javascript 复制代码
// 组件文件
import { storeBindingsBehavior } from 'mobx-miniprogram-bindings';
import { store } from './store';

Component({
  behaviors: [storeBindingsBehavior],
  storeBindings: {
    store,
    fields: ['numA', 'numB', 'sum'],
    actions: ['update'],
  },
  methods: {
    onTap() {
      this.update(); // 调用 store 中的 action
    },
  },
});

在页面中使用 Store

对于页面,可以通过创建一个 Behavior 来绑定 Store:

javascript 复制代码
// behavior.js
import { BehaviorWithStore } from 'mobx-miniprogram-bindings';
import { store } from '../store';

export const myBehavior = BehaviorWithStore({
  storeBindings: {
    store,
    fields: ['numA', 'numB', 'sum'],
    actions: ['update'],
  },
});

然后在页面中使用这个 Behavior:

javascript 复制代码
// 页面文件
import { myBehavior } from './behavior';

Page({
  behaviors: [myBehavior],
  onLoad() {
    console.log(this.data.numA); // 访问绑定的数据
  },
  onTap() {
    this.update(); // 调用绑定的 action
  },
});

注意事项

  • 确保小程序基础库版本不低于 2.11.0。
  • 使用 mobx-miniprogram-bindings 时,需依赖开发者工具的 npm 构建功能。
  • 在组件和页面中,绑定的数据会自动同步到 data 中,绑定的方法会同步到 methods 中。

通过以上步骤,你可以在微信小程序中使用 mobx-miniprogram 来实现高效的状态管理。