当前位置: 首页 > news >正文

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

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

安装依赖

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

npm install --save mobx-miniprogram mobx-miniprogram-bindings

创建 MobX Store

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

// 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 绑定到组件:

// 组件文件
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:

// 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:

// 页面文件
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 来实现高效的状态管理。

http://www.xdnf.cn/news/962929.html

相关文章:

  • 【深尚想】SX1276IMLTRT LoRa射频收发器芯片 物联网 电子元器件解析
  • 在鸿蒙HarmonyOS 5中实现抖音风格的草稿箱功能
  • Kafka 的容错与持久性:副本复制机制的工作原理与实践
  • 实现安全、经济、节约、环保的智慧交通开源了
  • JBank:Jucoin 推出的 Web3 去中心化自托管银行金融协议
  • error: Sandbox: rsync(17136) deny(1) file-write-create
  • 汽车生产虚拟实训中的技能提升与生产优化​
  • 机器学习的可解释性
  • 项目课题——智能花盆系统设计
  • “机器学习中的‘Hello World‘:为什么我们总用MNIST数据集,以及何时该放弃它“
  • 机器学习中的优化问题描述
  • 在多云环境透析连接ngx_stream_proxy_protocol_vendor_module
  • ffmpeg 新版本转码设置帧率上限
  • 搭建gitlab ci/cd runner实现对c++项目的自动编译和打包
  • 51c嵌入式※~电路~合集32~PWM
  • 入门机器学习需要的统计基础
  • ArcGIS+AI:涵盖AI大模型应用、ArcGIS功能详解、Prompt技巧、AI助力的数据处理、空间分析、遥感分析、二次开发及综合应用等
  • 置信水平、置信区间
  • ArcGIS土地利用数据制备、分析及基于FLUS模型土地利用预测技术应用
  • 在Windows上搭建Kubernetes集群
  • 渗透靶场PortSwigger Labs指南:规范链接的反射XSS
  • Docker监控服务部署
  • 如何提升企微CRM系统数据的准确性?5大核心策略详解
  • 鹰盾加密器基于AI的视频个性化压缩技术深度解析:从智能分析到无损压缩实践
  • 鹰盾加密器的超混沌加密原理深度解析:从理论基础到视频应用
  • AWS WebRTC 使用SDK-C demo 实现master推流和viewer拉流
  • 后进先出(LIFO)详解
  • [科研理论]无人机底层控制算法PID、LQR、MPC解析
  • 土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测技术应用
  • OOM模拟排查过程记录