+
95
-

微信小程序如何实现全局观察者模式?

微信小程序如何实现全局观察者模式?比如可以在每个page中对在app.js中的全局变量进行监听,一旦发现变化,立即更新

网友回复

+
15
-

在utils目录下新建一个js文件 Publisher.js

class Publisher {//发布者
  constructor() {
    this.observers = [];//存储观察者
  }
  add(observer) {//增加观察者
    this.observers.push(observer);
  }
  remove(observer) {//删除观察者
    this.observers.forEach((item, index) => {
      if (item == observer) {
        this.observers.splice(index, 1);
        return;
      }
    });
  }
  notify() {// 向观察者发布消息
    this.observers.forEach(item => {
      item.update();//  在每一个页面中创建一个update函数用来更新globalData并渲染
    });
  }
}
// 这个类继承Publisher并监听globalData的变化
class GlobalDataPublisher extends Pub...

点击查看剩余70%

我知道答案,我要回答