微信小程序监听App中的globalData——全局数据监听

微信小程序监听App中的globalData——全局数据监听

  • 定义数据
  • 定义监听方法
  • 注册监听方法
  • 修改监听的数据
  • 扩展

需求:微信小程序项目需要全局监听某个数据。
方法:在 app.ts/app.js 中定义 globalData 公共数据,然后定义一个监听方法 watch,在其他页面或组件中通过使用 【发布订阅 】 模式,进行数据的监听操作。

定义数据

// app.tsApp<IAppOption>({globalData: {count:0},
})

定义监听方法

使用 Object.defineProperty 方法进行数据监听

// app.tsApp<IAppOption>({globalData: {count:0},watch: function (variate: any, method: any) {var obj = getApp().globalData;let val = obj[variate];Object.defineProperty(obj, variate, {set: function (value) {val = value;method(variate, value);},get: function () {return val;}})}})

注册监听方法

在需要监听的组件中注册app().watch 方法

// xxCompinents.tsComponent({data: {count: 0},lifetimes:{attached(){getApp().watch('count', () => {this.setData({count: getApp().globalData.count})});}}
})

修改监听的数据

在项目中任何页面或组件中,修改count都能被监听到

// xxPage.tsPage({handleSetCount(){getApp().globalData.count = 1},handleSetCount(){console.log(getApp().globalData.count)}
})

调用 handleSetCount 方法,即可xxComponent 中的count。

扩展

可以结合之前的全局登录弹窗使用
微信小程序全局登录弹窗(https://blog.csdn.net/qq_45142260/article/details/128844351#comments_32228729)

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

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

相关文章

CSS 标准流 浮动 Flex布局

目录 1. 标准流2. 浮动2.1 清除浮动 3. Flex 布局3.1 Flex 组成3.2 Flex 布局 - 主轴与侧轴对齐方式3.2.1 主轴对齐方式3.2.2 侧轴对齐方式 3.3 Flex 布局 - 修改主轴方向3.4 Flex 布局 - 弹性伸缩比3.5 Flex 布局 - 弹性盒子换行3.6 Flex 布局 - 行对齐方式 1. 标准流 标准流…

使用selenium时出现element click intercepted报错的解决办法

win10&#xff0c;python3.8.10。 selenium版本如下&#xff08;用pip38 show selenium查看&#xff09;&#xff1a; 在定位中&#xff0c;定位了一个按钮&#xff08;特点&#xff1a;button下还有span然后才是文本&#xff09;&#xff0c;代码如下&#xff1a; from sele…

ubuntu22.04 CH340/CH34x 驱动安装

CH34x驱动地址&#xff1a;CH341SER_LINUX.ZIP - 南京沁恒微电子股份有限公司 1、卸载旧驱动&#xff08;如果存在&#xff09; sudo rmmod ch341.ko 2、解压进入 driver 目录 unzip CH341SER_LINUX.ZIP cd CH341SER_LINUX/driver 3、编译 make 可能错误&#xff1a; make[1]…

51单片机中断和定时的结合应用

#include <reg52.h>unsigned int cnt 0;sbit led P1^1;// 初始化定时器 void TimerSetup(){TMOD 0x01; // 定时器的第1个模式TH0 0xB8; // 定时器的初始值-高位TL0 0x00; // 定时器的初始值-低位TR0 1; //启动定时器cnt 0;EA 1; // 开启总中断ET0 1; // 时间中断…

4月26日 阶段性学习汇报

1.毕业设计与毕业论文 毕业设计已经弄完&#xff0c;加入了KNN算法&#xff0c;实现了基于四种常见病的判断&#xff0c;毕业论文写完&#xff0c;格式还需要调整&#xff0c;下周一发给指导老师初稿。目前在弄答辩ppt&#xff08;25%&#xff09;。25号26号两天都在参加校运会…

Python升级打怪(5)

链式调用:用一个函数的返回值作为另外一个函数参数 嵌套调用:一个函数在另一个函数定义里面&#xff0c;而调用该定义函数既可以使用在其里面的函数 在Pycharm中调试器的左下角能够看到函数之间的"调用栈" 调用栈里面描述了当前这个代码的函数之间&#xff0c;调用…

AI生图美学在淘宝的实践应用

本文介绍了如何制定和应用美学标准来评估和改善人工智能生成的图像质量&#xff0c;特别是在电商领域的应用&#xff0c;主要分为制定美学标准、训练美学模型、应用美学模型、升级淘宝风格模型四个步骤。 美学的定义与分析 图像质量标准&#xff1a;现代设计框架下&#xff0c;…

git 分支重命名 使用IDEA进行操作

当前项目下分支下执行 git push origin -d 旧分支名称 git push origin 新分支名称 tips: 本地分支重命名。如果分支尚未推送到远程&#xff0c;可以使用命令“git branch -m 旧名称 新名称”来重命名本地分支。 远程分支重命名。首先&#xff0c;重命名本地分支&#xff08;与…

C++ 内存管理

目录 一、new 二、delete 一、new 动态申请空间 //动态申请 1 个 int 类型的空间 int* p1 new int;//动态申请 1 个 int 类型的空间并初始化为 0 int* p2 new int(0);//动态申请 10 个 int 类型的空间 int* p3 new int[2]; 二、delete 释放空间 //释放 p1 delete p1;/…

黑马-设计模式-笔记(未完)

一、基础 UML类图 可见性&#xff1a; public- private#protected 表示方式&#xff1a;属性&#xff1a;可见性 名称:类型[默认值]方法&#xff1a;可见性 名称(参数)[:返回类型] 关系&#xff1a;关联关系&#xff1a;实线&#xff0c;引用关系&#xff0c;类属性里有另一个…

Pycharm/Dataspell中使用jupyter导入ros humble包

配置ros humble对应python包路径文件 首先在~/.local/lib/python3.10/site-packages目录下新建一个.pth文件&#xff0c;如下图所示。 将对应的ros humble的python包的路径配置在上述文件中&#xff0c;一行放置一个路径&#xff0c;对应的路径如下图所示。 完成上述操作后…

苹果电脑装虚拟机好用吗 苹果电脑装虚拟机要钱吗 Parallels对mac的损害 Parallels占用多大空间 PD19

在当今数字化的时代&#xff0c;人们对电脑系统跨设备互联的需求越来越高。作为拥有广泛用户群体的苹果电脑&#xff0c;许多用户会有在Mac系统中运行其他操作系统的需求。在这种情况下&#xff0c;安装虚拟机是一个较好的解决方案。那么接下来就给大家介绍苹果电脑装虚拟机好用…

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(三)

课程地址&#xff1a; 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程&#xff0c;一套精通鸿蒙应用开发 &#xff08;本篇笔记对应课程第 4 - 6节&#xff09; P5《04.快速入门》 本节来实现一个 HelloWorld 效果&#xff1a; 1、打开编辑器&#xff0c;选择新建项目&…

SpringBoot War打包部署

修改打包方式 <packaging>war</packaging>修改 Servlet 容器的 scope <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></d…

精选30个大模型高频面试题

我精选30个大模型高频面试题&#xff0c;分享给大家 介绍一下postlayernorm和prelayernorm的区别什么是思维链&#xff08;CoT&#xff09;提示&#xff1f;你觉得什么样的任务或领域适合用思维链提示&#xff1f;你了解ReAct吗&#xff0c;它有什么优点&#xff1f;解释一下l…

Mybatis入门(入门案例,IDEA配置SQL提示,JDBC介绍,lombok介绍)

目录 一、Mybatis入门案例介绍整体步骤创建SpringBoot项目pom依赖准备测试数据新建实体类配置Mybatis数据库连接信息新建接口类,编写SQL代码单元测试 二、IDEA配置SQL提示三、JDBC是什么案例JDBC和Mybatis对比 四、数据库连接池介绍如何实现一个数据库连接池切换数据库连接池 五…

Sentinel 与 OpenFeign 断路器:Hystrix 已过时,Sentinel 强势崛起

简介 随着微服务架构的流行&#xff0c;服务之间的通信变得日益频繁。为了保证系统的稳定性和可靠性&#xff0c;在服务之间的通信中使用断路器是至关重要的。本文将介绍 OpenFeign 与 Sentinel 结合使用的方法&#xff0c;强调 Hystrix 已经过时&#xff0c;并展示 Sentinel …

Python和C++音调音符规划和算法

&#x1f3af;要点 &#x1f3af;音符表征和代码实现&#xff1a;&#x1f58a;半音位置和索引之间的转换 | &#x1f58a;全音阶音调表征 | &#x1f58a;全音阶缓存 | &#x1f58a;全音阶音高表征。&#x1f3af;音程表征和代码实现&#xff1a;&#x1f58a;音程质量 | &a…

Oracle导出导入dmp等文件类型的多表数据的常用方法、遇见的常见问题和解决办法(exp无效sql???)

使用PLSQL执行导出表数据的时候有两种方法 1、使用Oracle命令【imp--exp】【impdp--expdp】 但是如果你的本机没有安装有Oracle数据库&#xff0c;使用的instant client远程连接服务器上的Oracle数据库时候&#xff0c;你没有Oracle数据库带有的exp.exe、imp.exe等扩展文件&a…

有没有降低三维设计软件版权成本的方案?

企业是否都苦恼三维设计软件购买成本太高了&#xff1f;如投入商业使用&#xff0c;三维设计软件一般涉及正版的版权购买。但是&#xff0c;正版的版权购买费用较贵&#xff0c;且支持一台电脑使用。企业每年购买正版三维设计软件都需要很大一笔支出&#xff0c;随着企业不断发…