微信小程序通过 wxministore 实现类似于vuex的全局装填数据管理

首先 我们打开终端 引入依赖

npm install wxministore --save

然后 如果你是新版开发者工具 就

npm i

构建一下

如果你是 老版本的 微信开发者工具 就打开右上角详情 选择本地管理 勾选 使用 npm 模块

然后 在根目录下创建一个 store.js 当然建在哪是你自己决定的 反正 后面能引入到就好

然后 store.js 编写代码如下

import Store from 'wxministore';export default new Store({state: {name: "小狗狗"},methods: {publicfunction() {console.log("公共函数");}}
});

这里 state 中的就是我们的公共数据 我这里只定义了一个name
然后定义了一个公共的函数 publicfunction

然后 我们需要在 app.js中引入自己写的store
在这里插入图片描述
这里 我们引入一下 然后在对象中 store赋个值 放在根目录其实就是为了方便app.js引入
然后 我们再到具体的page界面中去使用
wxml 参考代码如下

<view><view>{{ $state.name }}</view><button bindtap="decrement">转变</button><button bindtap="getdata">打印数据</button><button bindtap="publicfunction">公共函数</button><button bindtap="toChangeInto">跳转界面</button>
</view>

js参考代码如下

const app = getApp();
Page({data: {},onLoad() {},getdata() {console.log(app.store.getState().name);},decrement() {app.store.setState({name: "大猫猫"})},toChangeInto: function() {wx.navigateTo({url: '/pages/mint/mint'})}})

首先 我们要通过getApp 得到一个app对象
然后 这里 我们想更改公共数据 就要 app.store.setState
读取有两种方式 app.store.getState() 和 $state
js中 我比较建议 app.store.getState() 页面上可以 $state
运行之后 会发现 name 的值 顺利展示了 小狗狗
在这里插入图片描述
然后 我们点击打印 触发getdata
我们可以确定 数据读取是肯定没问题的
在这里插入图片描述
然后我们点击转变 触发decrement
在这里插入图片描述
可以看到 更改也是完全没有问题
然后
我们点击 跳转 界面
要跳转的page 就一行代码 就是wxml上的

<text>{{ $state.name }}</text>

展示一下name
可以看到 这个数据是可以实现不同page 乃至组件共享的
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

密集人头检测数据集汇总和格式转换

1、VSCrowd 2022年9月新出的数据集,数据集链接:https://github.com/HopLee6/VSCrowd-Dataset 网盘地址:链接:https://pan.baidu.com/s/17VARxt59y7GnUHIskEGzKw?pwd=m9qo 提取码:m9qo 数据格式: FrameID HeadID x1 y1 x2 y2 p1 p2 HeadID x1 y1 x2 y2 p1 p2 … Fram…

长城网络靶场第三题

关卡描述&#xff1a;1.oa服务器的内网ip是多少&#xff1f; 先进行ip统计&#xff0c;开始逐渐查看前面几个ip 基本上都是b/s&#xff0c;所以大概率是http&#xff0c;过滤一下ip 第一个ip好像和oa没啥关系 第二个ip一点开就是 oa&#xff0c;应该就是他了。 关卡描述&a…

数据仓库模型设计V2.0

一、数仓建模的意义 数据模型就是数据组织和存储方法&#xff0c;它强调从业务、数据存取和使用角度合理存储数据。只有将数据有序的组织和存储起来之后&#xff0c;数据才能得到高性能、低成本、高效率、高质量的使用。 高性能&#xff1a;良好的数据模型能够帮助我们快速查询…

spark6. 如何设置spark 日志

spark yarn日志全解 一.前言二.开启日志聚合是什么样的2.1 开启日志聚合MapReduce history server2.2 如何开启Spark history server 三.不开启日志聚合是什么样的四.正确使用log4j.properties 一.前言 本文只讲解再yarn 模式下的日志配置。 二.开启日志聚合是什么样的 在ya…

基于SSM+Vue的校园教务系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

LeetCode【27. 移除元素】

为国捐躯赴战场&#xff0c;丹心可并日争光。 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺…

docker启动MySQL报错:退出状态码1

docker启动mysql反复重启&#xff0c;通过 使用 docker logs 容器ID chown: cannot read directory /var/lib/mysql/: Permission denied 但是目录权限确认没问题&#xff0c;即使 chmod 777 还是报相同的错误&#xff0c;后来发现是selinux的问题 查看状态 getenforce 临时…

[Rust GUI]eframe(egui框架)代码示例

-2、eframe代替品 你可以使用egui的其他绑定&#xff0c;例如&#xff1a;egui-miniquad&#xff0c;bevy_egui&#xff0c;egui_sdl2_gl 等。 -1、注意 egui库相当于核心库&#xff0c;需要借助eframe框架就可以写界面了。 eframe使用egui_glow渲染&#xff0c;而egui_glow…

go初识iris框架(七) - 实战资源导入和项目框架搭建

实战项目框架搭建 如下是项目框架搭建后的说明&#xff1a; config:&#xff1a;项目配置文件及读取配置文件的相关功能controller:控制器目目录,项目各个模块的控制器及业务逻辑处理的所在目录datasource:实现mysql连接和操作、封装操作mysql数据库的目录。model:数据实体目…

【LeetCode热题100】--283.移动零

283.移动零 使用双指针&#xff1a; class Solution {public void moveZeroes(int[] nums) {if(nums null){return ;}int j 0;for(int i 0;i<nums.length;i){//当前元素不为0时&#xff0c;就把其交换到左边&#xff0c;等于0的交换到右边if(nums[i] ! 0){int tmp nums…

ChatGPT追祖寻宗:GPT-2论文要点解读

论文地址&#xff1a;Language Models are Unsupervised Multitask Learners 上篇&#xff1a;GPT-1论文要点解读 在上篇&#xff1a;GPT-1论文要点解读中我们介绍了GPT1论文中的相关要点内容&#xff0c;其实自GPT模型诞生以来&#xff0c;其核心模型架构基本没有太大的改变&a…

静态工厂模式,抽象工厂模式,建造者模式

静态工厂模式 ublic class FruitFactory {public static Fruit getFruit(String name) {Fruit fnull;switch (name){case "APPLE":{fnew Apple();}case "BANANA":{fnew Banana();}default :{System.out.println("Unknown Fruit");}}return f;} …