blear.classes.watcher
v2.0.1
Published
数据变化监听类
Downloads
3
Maintainers
Readme
blear.classes.watcher
https://blear.ydr.me/classes/watcher
usage
var data = {a: 1};
var watcher = new Watcher(data);
watcher.watch('a', function(newVal, oldVal, signal) {
// ....
});
API
#watch(expOrFn, listener): unwatch()
流程
- 一个 data 的一个 key 关联一个 wire
- data 层级之前使用 linker 来关联
- 一个 wire 关联多个 terminal
data => wire => terminal
{ --> linker --> wire --> [terminal1, ...]
obj: --> wire --> [terminal1, ...]
{ --> linker --> wire --> [terminal1, ...]
a: --> wire --> [terminal1, ...]
b: --> wire --> [terminal1, ...]
}
arr: --> wire --> [terminal1, ...]
[ --> linker --> wire --> [terminal1, ...]
1,
2
]
}
- 其中
terminal
需要继承 Watcher.Terminal 实现 - 一个
terminal
可能与多个wire
有关联 terminal
需要实现.link
方法,用来与wire
进行关联terminal
需要实现.pipe
方法,用来与wire
信号传输terminal
如果不需要关联,则需要主动调用wire.unlink(terminal)
切断关联