将给自己的前端组件设计成观察者模式,最简单的方式

69 阅读1分钟

什么是观察者模式

用一张图清晰解释

image.png

前端大量使用这模式来处理各种事件 addEventListener

一个极小的例子

// Demo.js

const events = require('events')
export default class Demo{
    constructor(){
        this.events = new events.EventEmitter()
        
        // 这一段代码纯为了测试事件触发
        setTimeout(()=>{
            this.events.emit('hello'); 
        },2000)
    }
    on(eventType,func){
        this.events.on(eventType,func)
    }
}
// index.js

import Demo from './Demo.js'
const demo = new Demo()
demo.on('hello', () => {
    console.log('on hello')
})