微信小程序----全局数据共享

news2024/11/17 19:50:37

1.什么是全局数据共享

全局数据共享(又叫做:状态管理)是为了解决组件之间数据共享的问题。开发中常用的全局数据共享方案有:Vuex、Redux、MobX等。
在这里插入图片描述

2.小程序中的全局数据共享方案

在小程序中,可使用 mobx-miniprogram 配合 mobx-miniprogram-bindings 实现全局数据共享。其中:mobx-miniprogram 用来 创建 Store 实例对象
mobx-miniprogram-bindings 用来把 Store 中的共享数据或方法,绑定到组件或页面中使用
在这里插入图片描述

全局数据共享–MobX

1.安装MobX相关的包

在项目中运行如下的命令,安装MobX相关的包:

npm install --save mobx-miniprogram@4.13.2 mobx-miniprogram-bindings@1.2.1

注意:MobX相关的包安装完毕之后,记得删除 miniprogram_npm目录后,重新构建npm

2.创建MobX的Store 实例

//在这个 JS 文件中专门来创建 Store 的实例对象
import { observable,action } from 'mobx-miniprogram'

export const store = observable({
  //数据字段
  numA: 1,
  numB: 2,
  //计算属性
  get sum(){
    return this.numA + this.numB
  },
  //actions 函数,专门来修改 store 中数据的值
  updateNum1: action(function(step) {
    this.numA += step
  }),
  updateNum2: action(function(step) {
    this.numB += step
  })
})

3.将Store中的成员绑定到页面中

import { createStoreBindings } from 'mobx-miniprogram-bindings'
import { store } from '../../store/store'
Page({
  onLoad(options) {
    this.storeBindings = createStoreBindings(this,{
      store,
      fields: ['numA','numB','sum'],
      actions: ['updateNum1']
    })
  },
  onUnload() {
  	this.storeBindings.destroyStoreBindings()
  }
})

4.在页面上使用Store中的成员

页面的 wxml 结构:

<!--components/numbers/numbers.wxml-->
<view>{{numA}} + {{numB}} = {{sum}}</view>
<van-button type="primary" bindtap="btnHandler2" data-step="{{1}}">numB + 1</van-button>
<van-button type="danger" bindtap="btnHandler2" data-step="{{-1}}">numB - 1</van-button>

按钮事件的处理函数

  /**
   * 组件的方法列表
   */
  methods: {
    btnHandler2(e) {
      this.updateNum2(e.target.dataset.step)
    }
  }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/173133.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【SAP Abap】X档案:SAP Native SQL 简介及本地数据库访问实现方式(EXEC SQL、ADBC、AMDP)

SAP Native SQL 简介及本地数据库访问实现方式&#xff08;EXEC SQL、ADBC、AMDP&#xff09;1、SAP Open SQL 与 Native SQL 的特点2、实现方式方式一&#xff1a;Native SQL&#xff08;Exec SQL&#xff09;&#xff08;1&#xff09;获取单值&#xff08;2&#xff09;获取…

iOS上架appstore详细教材

假如你用原生xcode开发&#xff0c;上架是相对简单。 但假如是用hbuilderx这些uniapp框架开发&#xff0c;没有mac电脑&#xff0c;没有xcode&#xff0c;那么还能上架吗&#xff1f;是可以的&#xff0c;你看完这篇文章&#xff0c;就知道如何在没有mac电脑的情况下&#xff…

【小知识】目标检测各类指标概念总结

文章目录前言一、AP&#xff08;Average Precision&#xff09;1.1 TP&#xff08;True Positive&#xff09;、FP&#xff08;False Positive&#xff09;、FN&#xff08;False Negative&#xff09;1.2 Precision&#xff08;查准率&#xff09;、Recall&#xff08;召回率/…

【LeetCode】Day201-重新安排行程

题目 332.重新安排行程【困难】 题解 这道题的几个难点&#xff1a; 一个行程中&#xff0c;如果航班处理不好容易变成一个圈&#xff0c;成为死循环有多种解法&#xff0c;字母序靠前排在前面&#xff0c;应该如何记录映射关系&#xff1f;使用回溯法&#xff0c;终止条件…

贪心 376. 摆动序列

376. 摆动序列 难度中等827 如果连续数字之间的差严格地在正数和负数之间交替&#xff0c;则数字序列称为 摆动序列 。第一个差&#xff08;如果存在的话&#xff09;可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如&#xff0c; [1, 7, 4, 9,…

opencv的图像基本操作_3

模板匹配 模板匹配和卷积很像&#xff0c;模板在原图像上滑动&#xff0c;并在滑过的区域上计算匹配数值&#xff0c;通过匹配数值衡量模板匹配程度&#xff0c;opencv中有6种计算方法&#xff0c;从原点开始计算&#xff0c;将每次计算的结果放到一个矩阵&#xff0c;最后输出…

CSS 加载进度条

CSS 加载进度条 环形加载条 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>环形加载条</title><style type"text/css">.box {width: 200px;height: 200px;border: 1px solid silver;display: flex…

永磁同步电机全速域控制指南

一直都想知道永磁同步电机的转速从零增加到极限这个过程会发生什么&#xff0c;这篇文章介绍一下永磁同步电机全速域矢量控制的全过程&#xff0c;即电机的转速从零开始逐渐增加&#xff0c;如何设计电流环电流使得电机输出恒定转矩&#xff0c;且保持转速稳定。能把这个过程想…

ruoyi-vue版本(七)定时任务 相关的源码解析,也就是ruoyi-quartz 模块的解析

目录1 需求2 解析2.1 工具类里面的关系2.2 新增定时任务2.3 回显定时任务2.4 修改定时任务3 总结1 需求 我们打开若依项目&#xff0c;看到页面上有一个定时任务模块 我们接下来就是解析若依项目和定时任务相关的所有的文件&#xff0c;以及他是如何实现定时的&#xff0c;背…

Kubernetes 资源监控

Kubernetes 资源监控一、前言二、使用三、实现原理3.1 数据链路3.2 kube-aggregator3.3 监控体系 ❤️3.4 kubelet3.5 cadvisor3.6 cgroup四、问题4.2 kubectl top pod 内存怎么计算&#xff0c;包含 pause容器吗4.3 kubectl top node 怎么计算&#xff0c;和节点上直接 top 有…

C语言深度剖析 -- 32个关键字(上)

文章目录C语言关键字我们人生中第一个C语言程序变量的定义与声明变量的作用域与生命周期最宽宏大量的关键字 -- auto最快的关键字 -- register&#xff08;寄存器变量&#xff09;最名不符实的关键字 -- static基本内置数据类型 -- char、short、int、long、float、double最冤枉…

transformers学习笔记2

pipeline快速使用from transformers import pipelineclassifier pipeline("sentiment-analysis") classifier(["Ive been waiting for a HuggingFace course my whole life.","I hate this so much!",] )[{label: POSITIVE, score: 0.959804713…

概述.runoob.html

<!DOCTYPE html> 声明为 HTML5 文档<html> 元素是 HTML 页面的根元素<head> 元素包含了文档的元&#xff08;meta&#xff09;数据&#xff0c;如 <meta charset"utf-8"> 定义网页编码格式为 utf-8。<title> 元素描述了文档的标题<…

【Linux线程安全】

Linux线程安全Linux线程互斥进程线程间的互斥相关背景概念互斥量mutex互斥量的接口互斥量实现原理探究可重入VS线程安全概念常见的线程不安全的情况常见的线程安全的情况常见的不可重入的情况常见的可重入的情况可重入与线程安全联系可重入与线程安全区别常见锁概念死锁死锁的四…

套接字编程基础

文章目录IPV4套接字地址结构IPv6套接字地址结构字节排序函数地址转换函数IPV4套接字地址结构 IPv4套接字定义在<netinet/in.h> 投文件中&#xff0c;定义如下&#xff1a; struct in_addr {in_addr_t s_addr; } struct sockaddr_in {uint8_t sin_len; // 长度字段sa_fa…

【青训营】性能优化和自动内存管理

本文整理自&#xff1a;第五届字节跳动青年训练营 后端组 什么是性能优化 提高软件系统处理能力&#xff0c;减少不必要消耗&#xff0c;充分利用计算机算力 业务层优化 针对特定场景和具体问题容易获得较大收益 语言运行时优化 面向全公司的优化&#xff0c;非特定场景解决更…

力扣55.跳跃游戏(比较简单)

文章目录力扣55.跳跃游戏&#xff08;比较简单&#xff09;题目描述算法思路代码实现力扣55.跳跃游戏&#xff08;比较简单&#xff09; 题目描述 给定一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度…

Tailscale-搭建异地局域网开源版中文部署指南

目前国家工信部在大力推动三大运营商发展 IPv6&#xff0c;对家用宽带而言&#xff0c;可以使用的 IPv4 公网 IP 会越来越少。有部分地区即使拿到了公网 IPv4 地址&#xff0c;也是个大内网地址&#xff0c;根本不是真正的公网 IP&#xff0c;访问家庭内网的资源将会变得越来越…

SQL注入之联合查询注入与报错注入

数据来源 本文仅用于信息安全的学习&#xff0c;请遵守相关法律法规&#xff0c;严禁用于非法途径。若观众因此作出任何危害网络安全的行为&#xff0c;后果自负&#xff0c;与本人无关。 SQL注入之联合查询 sql注入简单演示 1. 判断sq注入 2. 闭合然后爆列 3. 查看显示列 …

vue中实现后台系统权限管理的功能

一、前言 后台管理系统的权限控制对于前端来说是经常用到的知识点&#xff0c;也比较重要&#xff0c;最近梳理一下写成文章&#xff0c;方便以后查阅。 项目中实现菜单的动态权限控制使用到了两种技术&#xff0c;一种是Vue Router&#xff0c;另一种是vue3官方推荐使用的专属…