请问观察者模式具体在React中如何使用?

网上看了很多原生JS的结束,但是在react中我真的不知道该怎么使用,有大佬可以简单的举个例子吗

阅读 4.6k
1 个回答

观察者的最简实现:

/**
 * @const observer - 观察者的最简实现,只发布一类事件
 */
var observer = {
    subscriber: [],
    subscribe: function(callback){
        if(!callback instanceof Function) throw '订阅回调必须是函数';
        this.subscriber.push(callback);
    }
    publish: function(info){
        // 该观察者只须负责一类事件,因此省略了类型参数
        this.subscriber.forEach(function(item){
            item(info);
        });
    }
};

应用到 React

class SomeComponent extends React.Component{
    constructor(options){
        super(options);
        var that = this;
        
        // 从上面的观察者订阅事件,并将事件信息反映到
        // 本组件的状态中去
        observer.subscribe(function(info){
            that.setData({
                getThisInfo: info
            });
        });
    }
}

对于纯函数组件,需要使用 React hook

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题