【微信小程序】小程序的 MobX 绑定辅助库

news/2024/9/19 0:40:46/ 标签: 小程序, 微信小程序

小程序的 MobX 绑定辅助库

小程序的 MobX 绑定辅助库。

此 behavior 依赖开发者工具的 npm 构建。具体详情可查阅 官方 npm 文档 。
可配合 MobX 的小程序构建版 npm 模块 mobx-miniprogram 使用。

使用方法

需要小程序基础库版本 >= 2.2.3 的环境。
也可以直接参考这个代码片段(在微信开发者工具中打开): https://developers.weixin.qq.com/s/36j8NZmC74ac

1. 安装 mobx-miniprogram 和 mobx-miniprogram-bindings :

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

2.创建 MobX Store。

// store.js
import { observable, action } from 'mobx-miniprogram'
export const store = observable({// 数据字段numA: 1,numB: 2,// 计算属性get sum() {return this.numA + this.numB},// actionsupdate: action(function () {const sum = this.sumthis.numA = this.numBthis.numB = sum})
})

3.在 Component 构造器中使用:

import { storeBindingsBehavior } from 'mobx-miniprogram-bindings'
import { store } from './store'
Component({behaviors: [storeBindingsBehavior],data: {someData: '...'},storeBindings: {store,fields: {numA: () => store.numA,numB: (store) => store.numB,sum: 'sum'},actions: {buttonTap: 'update'},},methods: {myMethod() {this.data.sum // 来自于 MobX store 的字段}}
})

4.在 Page 构造器中使用:

import { createStoreBindings } from 'mobx-miniprogram-bindings'
import { store } from './store'
Page({data: {someData: '...'},onLoad() {this.storeBindings = createStoreBindings(this, {store,fields: ['numA', 'numB', 'sum'],actions: ['update'],})},onUnload() {this.storeBindings.destroyStoreBindings()},myMethod() {this.data.sum // 来自于 MobX store 的字段}
})

接口

将页面、自定义组件和 store 绑定有两种方式: behavior 绑定手工绑定
behavior 绑定
behavior 绑定 适用于 Component 构造器。做法:使用 storeBindingsBehavior 这个 behavior 和 storeBindings 定义段。

注意:你可以用 Component 构造器构造页面, 参考文档 。

import { storeBindingsBehavior } from 'mobx-miniprogram-bindings'
Component({behaviors: [storeBindingsBehavior],storeBindings: {/* 绑定配置(见下文) */}
})

手工绑定
手工绑定 适用于全部场景。做法:使用 createStoreBindings 创建绑定,它会返回一个包含清理函数的对象用于取消绑定。

注意:在页面 onUnload (自定义组件 detached )时一定要调用清理函数,否则将导致内存泄漏!

import { createStoreBindings } from 'mobx-miniprogram-bindings'
Page({onLoad() {this.storeBindings = createStoreBindings(this, {/* 绑定配置(见下文) */})},onUnload() {this.storeBindings.destroyStoreBindings()}
})

绑定配置
无论使用哪种绑定方式,都必须提供一个绑定配置对象。这个对象包含的字段如下:
在这里插入图片描述
在这里插入图片描述

延迟更新与立刻更新

在这里插入图片描述
参考文档:https://www.bookstack.cn/read/miniprogram-guide-20210305/54620b3fcfec59b9.md


http://www.ppmy.cn/news/1519223.html

相关文章

MP条件构造器之常用功能详解(select、set)

文章目录 select使用范围方法签名参数说明示例过滤查询字段(主键除外)选择特定字段并过滤字段(主键除外) set使用范围方法签名参数说明示例动态根据条件设置更新字段使用映射设置字段 更多功能详解 select select 方法是 MyBatis…

【实战指南】RESTful 从入门到精通(Spring Boot)

文章目录 RESTful 从入门到进阶引言第一部分:基础知识1. REST 概念介绍2. HTTP 方法和状态码3. RESTful 资源与URI 第二部分:Java 实现 RESTful API4. Spring Boot 快速搭建 RESTful 服务5. 创建 RESTful 控制器6. 使用 JPA 进行数据持久化 第三部分&…

【Redis】Redis 持久化 -- RDB AOF

文章目录 1 持久化介绍2 RDB2.1 RDB 介绍2.2 触发方式2.3 流程介绍2.4 RDB 文件2.5 RDB 优缺点 3 AOF3.1 AOF 介绍3.2 缓冲区刷新策略3.3 AOF 重写机制3.3.1 重写机制介绍3.3.2 混合持久化3.3.3 重写触发方式3.3.4 AOF 重写流程 3.4 AOF 优缺点 4 启动时数据恢复 1 持久化介绍 …

网络传输加密及openssl使用样例(客户端服务器)

文章目录 背景常用加密方式SSLOpenSSL主要功能 库结构 交互流程证书生成生成 RSA 私钥私钥的主要组成部分私钥的格式 创建自签名证书: 签发证书服务器端代码客户端代码常见错误版本问题证书问题证书格式 背景 网络传输中为保证数据安全,通常需要加密 常用加密方式…

php mail函数配置SMTP服务器发邮件的指南!

php mail函数安全性考虑?PHP mail()函数漏洞利用技巧? 在使用PHP进行开发时,发送邮件是一个常见的需求。使用php mail函数配置SMTP服务器发邮件,则是实现这一需求的有效途径。AokSend将详细探讨如何通过php mail函数来配置SMTP服…

【Linux】初识加搭建Linux

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…

Nepctf2024-Web-NepDouble

一、题目 题目:NepDouble 题目描述:二、WriteUp 1. 源码分析# / app.route(/, methods[GET, POST]) def main():if request.method ! "POST":return Please use POST method to upload files.try:clear_uploads_folder()files request.files.get(tp_fi…

读懂华为V模型:连接业务与IT,用V模型指导服务化设计

今天笔者带来华为的V模型,与读者一起解读下,V模型是如何连接业务与IT,实现IT产品服务化设计的。 华为用V模型连接业务与IT,指导服务化设计,是一种创新的方法论,旨在通过业务与IT的深度融合,提升…

小程序自定义目录结构

精简目录 /my-miniprogram ├── /miniprogram │ ├── /pages │ │ └── /index │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ ├── app.js │ ├── app.json │…

培训第三十六天(docker应用,mysql容器应用,容器核对时间,容器之间的依赖 域名,文件联合系统,制作基础镜像,commit制作镜像)

上午 容器就是在镜像上添加了一个可写层 # 从镜像库中下载mysql镜像,mysql镜像是在基础镜像上加很多层制成的[rootdocker ~]# docker pull mysqlUsing default tag: latestlatest: Pulling from library/mysql6e839ac3722d: Pull complete ad912193ad5f: Pull comp…

网工面试题(安全)

上一篇:网工面试题(数通) 防火墙 防火墙的应用场景 防火墙:部署在网络出口处/服务器区(数据中心)/广域网接入,用于防止外界黑客攻击、保护内网安全硬件。 传统防火墙和下一代防火墙的区别 传统防火墙的功能…

关于vue3.x中最长递增子序列(LIS)

什么是最长递增子序列? 简单来说最长递增子序列就是在一个数组中呈现递增的数据的长度 lettcode原题 示例:我们有一个数组 arr const arr [10, 9, 2, 5, 3, 7, 101, 18]那么他的序列有那些呢? [2][2, 3][2, 5][2, 3, 7][2, 5, 7][2, 3, 1…

常用的加密算法分析

常用的加密算法主要分为对称加密算法(DES、3DES、AES)、非对称加密算法(RSA、DSA、ECC)以及散列算法(MD5、SHA)三大类。 一、对称加密算法 对称加密算法,又称为单密钥加密或共享密钥加密&…

Expected expression after operator

这个错误直译过来就是:运算符号后没有预期的表达式 这个错误通常出现在编程语言中,尤其是在编写C或C等类型语言的时候,它意味着在源代码中遇到了一个操作符(比如 , -, *, /, , 等等),但在该操作符后面没有紧跟相应的表…

Spring MVC RESTful API - 修改状态接口示例

前言 在许多应用程序中,更新资源的状态是一项常见的需求。例如,在任务管理系统中,用户可能需要更新任务的状态,如从“待办”变为“完成”。为了实现这一功能,我们可以使用Spring MVC框架结合MyBatis Plus来创建一个简…

《第三十章 性能优化 - 存储优化》

一、引言 在 Android 应用开发中,性能优化是一个持续且重要的工作。存储优化作为性能优化的关键环节之一,对于提高应用的响应速度、节省资源以及提升用户体验具有重要意义。在本章中,我们将重点探讨数据库优化和缓存策略这两个主要知识点。 二…

go+gin+vue入门

后端框架 1、安装go、goland 2、创建空项目 3、下载要用的包:命令行输入go get -u github.com/xxxx 4、安装mysql数据库,使用navicat创建数据库。 5、按照项目框架搭建目录、文件、代码:如router、model… 6、运行测试,go run ma…

JVM面试(一)什么是虚拟机?什么是class文件?

什么是java虚拟机? 如果通俗点来讲,我们在电脑上一行行敲出来的代码,电脑本身是不认识的,最终是要转成电脑可以运行的101001这种字节。 但是这些我们又不可能手动来转换,所以呢,就需要一个工具&#xff0…

学习笔记——后端项目中的相关技术 【随时更新】

文章目录 1. Session 共享1.0 cookie和session的工作流1.1 Cookie范围1.2 为什么要共享?1.3 如何共享存储1.4 session共享实现 2. 缓存的实现2.1 缓存分类2. 2 Redis 缓存实现2.1.1 Redis 的数据结构(高频考点)2.1.2 redisTemplate 自定义序列…

【Linux】CodeServer:离线插件配置

下载 VS Code 插件 要为 code-server 添加离线插件,首先需要从 Visual Studio Code 插件市场下载所需的插件: 打开浏览器,访问 Visual Studio Code 插件市场。 在搜索栏中输入您需要的插件名称,找到插件后,点击插件页…