微信小程序如何监听全局变量变化?

2026-04-09 06:480阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计582个文字,预计阅读时间需要3分钟。

微信小程序如何监听全局变量变化?

最近工作中遇到一个问题,有一个全局变量`red_heart`,因为用得地方很多,一旦它发生变化,相关的代码也需要修改。但原生小程序并没有像Vue那样的相关做法。所以我想自己实现一个。

最近工作上遇到一个问题,有个全局变量 red_heart,因为它在很多地方用到,当它发生改变了,用到的地方也要改变。但是原生小程序并没有像Vue这种相关的做法。所以我就想自己实现一个全局变量改变,用到这个变量的地方也重新渲染。

开始吧

首先全局变量里肯定要先有这个 red_heart

globalData: { red_heart:0, },

然后要在onLaunch方法里给全局变量加一个Proxy代理。

Proxy很好理解,懂得都懂。

this.globalData = new Proxy(this.globalData, { get(target, key){ return target[key]; }, set:(target, key, value)=>{ if(key === "red_heart"){ this.globalDep.RedHeartDep.notifuy() } return Reflect.set(target, key, value); } });

主要看set方法里面有一个this.globalDep.RedHeartDep.notifuy(),这个是啥。这是我在全局创建的一个Dep,简称依赖收集。

阅读全文

本文共计582个文字,预计阅读时间需要3分钟。

微信小程序如何监听全局变量变化?

最近工作中遇到一个问题,有一个全局变量`red_heart`,因为用得地方很多,一旦它发生变化,相关的代码也需要修改。但原生小程序并没有像Vue那样的相关做法。所以我想自己实现一个。

最近工作上遇到一个问题,有个全局变量 red_heart,因为它在很多地方用到,当它发生改变了,用到的地方也要改变。但是原生小程序并没有像Vue这种相关的做法。所以我就想自己实现一个全局变量改变,用到这个变量的地方也重新渲染。

开始吧

首先全局变量里肯定要先有这个 red_heart

globalData: { red_heart:0, },

然后要在onLaunch方法里给全局变量加一个Proxy代理。

Proxy很好理解,懂得都懂。

this.globalData = new Proxy(this.globalData, { get(target, key){ return target[key]; }, set:(target, key, value)=>{ if(key === "red_heart"){ this.globalDep.RedHeartDep.notifuy() } return Reflect.set(target, key, value); } });

主要看set方法里面有一个this.globalDep.RedHeartDep.notifuy(),这个是啥。这是我在全局创建的一个Dep,简称依赖收集。

阅读全文