区别大不大用用就知道了,你还可以用 monitor 自己定制视图的更新,或者用来实现 mvvm,monitor_trigger 只是我根据 monitor 封装的一个使用例子
用了下,感觉不错,全局对象怎么映射呢?
monitor只能监听子数据,顶层对象 data = { a: 0 },只能监听 a 及下层数据
monitor
监听的数据尽量不要依赖外部模块,比如 a 模块和 b 模块互相监听各自的数据,像这样继续下去,一旦其中任何一个模块出问题,其他监听了问题模块数据的模块都会出现问题
monitor_trigger
比如节点树
- a (组件A)
- b (组件B)
- d
- c
- b (组件B)
c,d 节点挂载了 monitor_trigger
c 节点的数据目标尽量只用组件A
d 节点的数据目标尽量只用组件B
每个组件模块的数据只提供给下属节点和组件,不包括下属组件的子节点,避免组件间交叉使用,否则很容易出错,后续维护也困难
原来如此 明白了,每个模块监听各自本身的数据,然后谁挂的monitor 数据目标就是谁
这个和vue响应式很像
Vue 3 中的 响应式原理 是通过使用 ES6 的 Proxy 对象来实现的。
而Vue2则是利用了 Object.defineProperty 的方法里面的setter 与getter方法的 观察者模式 来实现。
已经用上了,很好用
谢谢支持,后续的更新在
https://gitee.com/muzzik/mk_framework/blob/main/assets/@framework/mk_monitor.ts
如果需要更新可以去这里看看
cocos2.4版本能用吗
monitor 肯定可以用
monitor_trigger 没试过,不过没用到什么特殊操作,你改一改应该可以用
源码点不动了 大哥
404了