观察者模式
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。包含订阅,分发,取消订阅。
GetCode
git clone https://github.com/sakitam-fdd/observable-emit.gitnpm installnpm run devnpm run buildnpm run karma.testnpm run karma.cover
Use
CDN
https://unpkg.com/observable-emit@1.1.1/dist/Observable.min.jshttps://unpkg.com/observable-emit@1.1.1/dist/Observable.js
NPM
npm install observable-emit --saveimport Observable from 'observable-emit'
Example
var emiter = emiter // 触发一次取消订阅 emiter emiter emiter emiter// one // 取消订阅, 不传时默认取消所有emiter
Methods
on(eventName, callback, context)
addEventListener(eventName, callback, context) -- alias
订阅事件
Parameters:
key | type | desc |
---|---|---|
eventName |
string or Object |
事件名称, 可以使用空格分开订阅多个事件,也可以使用对象例如dom对象 |
callback |
function |
回调函数 |
context |
function |
上下文 |
once(eventName, callback, context)
订阅事件(仅触发一次即取消订阅)
Parameters:
key | type | desc |
---|---|---|
eventName |
string or Object |
事件名称, 可以使用空格分开订阅多个事件,也可以使用对象例如dom对象 |
callback |
function |
回调函数 |
context |
function |
上下文 |
un(eventName, callback, context)
removeEventListener(eventName, callback, context) -- alias
取消订阅,无参数时默认取消所有事件订阅
Parameters:
key | type | desc |
---|---|---|
eventName |
string or Object |
事件名称, 可以使用空格分开订阅多个事件,也可以使用对象例如dom对象 |
callback |
function |
订阅函数 |
context |
function |
上下文 |
dispatch(eventName, ...)
触发事件,实时(参数不定)
Parameters:
key | type | desc |
---|---|---|
eventName |
string |
事件名称 |
dispatchSync(eventName, ...)
触发事件,异步(参数不定)
Parameters:
key | type | desc |
---|---|---|
eventName |
string |
事件名称 |