changlin-observer

1.1.2 • Public • Published

changlin-observer

观察者模式 / 事件监听 订阅,触发 发布/ event listening

language npm version Build Status

安装

npm i changlin-observer --save
//或者
npm install changlin-observer --save

使用

//例1
import {Observer} from "changlin-observer"
let observer=new Observer({
    needCache:true//是否需要缓存已触发但是未被监听的事件,默认为false
});
let result;
observer.trigger('event','a','b','c');
observer.listen('event',function(a,b,c){
     result=b
 });
result//=>'b'
//例2  (若存在方法命名冲突,可修改方法名)
import {Observer} from "changlin-observer"
 let observer2 = new Observer({
            methodsReplace: {
                listen: 'subscribe',
                remove: 'unsubscribe',
                trigger: 'publish'
            }
        });
 let result=0,cb=function(a){result=a};
  observer2.subscribe('e',cb);
  observer2.publish('e',3);
  result//=>3
 
//例3
let Observer=require('changlin-observer').Observer;
function Person(){
   Observer.call(this);
   this.age=18;
   this.height=180;
}
 
let person=new Person();
let that,a1,a2,a3,count=0;
 person.listen('e',function(a,b,c){
     that=this;
     a1=a;a2=b;a3=c;
 });
 person.trigger('e',11,22,33);
 that//
 a1//=>11
 a2//=>22
 a3//=>33
 
//例4
import {Observer} from "changlin-observer"
class Person {
  constructor(x, y) {
   Observer.call(this)
  }
}
 
let person=new Person();
let that,a1,a2,a3,count=0;
 person.listen('e',function(a,b,c){
     that=this;
     a1=a;a2=b;a3=c;
 });
 person.trigger('e',11,22,33);
 that//
 a1//=>11
 a2//=>22
 a3//=>33
 

实例方法

方法 描述
listen 事件监听
on 事件监听,可批量监听,用空格分割 ,例如:on('start move',function(){})
one 事件监听,回调函数执行一次后会被移除
remove 移除事件监听函数(只支持单个移除)
listen 触发事件

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.1.2
    1
    • latest

Version History

Package Sidebar

Install

npm i changlin-observer

Weekly Downloads

1

Version

1.1.2

License

MIT

Last publish

Collaborators

  • changlin