MobX Store 与小程序页面:实现数据与行为的无缝集成
上一期,我们成功创建了 MobX store 的实例对象,为小程序的全局数据管理打下了基础。本期,我们将深入一步,学习如何将 store 中定义的数据成员和行为(方法),有效地绑定到小程序页面的生命周期中,让页面能够直接访问和操作 store 中的内容。
实操步骤:
步骤一:
在每个需要使用 store 的页面的 .js 文件头部,我们需要引入两个关键成员:
createStoreBindings: 这个函数是mobx-miniprogram-bindings提供的核心工具,它负责将 store 的成员“注入”到页面实例。store: 指的是你上一期创建的、包含全局状态和方法的 store 实例对象。

解析:
createStoreBindings: 它的核心作用是建立 store 与页面实例之间的桥梁。通过调用它,我们可以声明哪些 store 的成员需要被映射到页面实例上。store: 这个导入的是你的 store 实例,是数据和逻辑的真实来源。
步骤二:
在页面的 onLoad 生命周期函数中,我们执行 createStoreBindings 来建立 store 与当前页面实例的绑定关系。

解析:
调用上面我们导入的createStoreBing函数,并且传两个参数
this:代表当前页面的实例
Page对象:包括store,fields,action(三个属性)
createStoreBindings(this, { ... }): 这个函数的第一个参数this指向的是当前页面的实例。第二个参数是一个配置对象,它包含了:store: 明确指定了数据和行为的来源。fields: 这是一个数组,列出了你希望直接暴露为页面实例属性的 store 中的数据属性(例如numA,numB,sum)。这些属性在页面中可以直接通过this.numA等方式访问,并且会根据 store 的变化自动更新。actions: 这是一个数组,列出了你希望直接暴露为页面实例方法的 store 中的方法(例如updateNum1)。在页面中,你可以直接调用this.updateNum1()来执行 store 中的逻辑。
步骤三:
为了避免内存泄漏和不必要的资源占用,当页面被销毁时,我们需要主动断开 store 与页面之间的绑定。

解析:
this.storeBindings.destroyStoreBindings(): 这个方法是 createStoreBindings 返回对象的一个方法。在页面的 onUnload 生命周期函数中调用它,能够有效地释放 store 和页面之间的关联,避免潜在的内存泄漏问题,特别是在用户频繁进入和退出页面的场景下,保持良好的内存管理非常重要。
浙公网安备 33010602011771号