mobx-miniprogram
是一个基于 MobX 的状态管理库,适用于微信小程序,能够实现页面和组件间的响应式数据通信。以下是其使用方法:
安装依赖
在项目根目录下运行以下命令,安装 mobx-miniprogram
和 mobx-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
来实现高效的状态管理。