【muzzik分享】:monitor 数据监听器(低成本搭建界面,MVVM 必备)

# monitor 是什么?

它的功能很简单,监听数据的修改,类似于 vue 的 watch 回调,但接口和 EventTarget 更加类似

# 可以用它做什么?

  • 数据到视图:你可以监听任意一个对象内的数据,并在数据更新 on 回调内实时更新视图

  • 视图到数据:也可以任意修改监听数据,没想到吧(不用担心递归,已处理)

  • debugger:查看数据在哪儿被修改了,追根溯源

# 效果演示


monitor 有无限的可能,例如监听字符串的更新来下载图片,或者更新货币 label.string = [data] + “$”,用来做 editor_box 的双向绑定等等…

它很灵活,使用时一定要符合规范,不然你会写成一堆屎山,个人建议更新的视图节点只能是当前组件节点的下级,否则就成毛线球了

# 使用代码

# 源码下载(包含 Demo)

github:https://github.com/1226085293/mk_monitor
gitee:https://gitee.com/muzzik/mk_monitor

14赞

感谢大佬的分享 :+1:

这个东西不错哦,之前想研究的,感谢分享

好东西
QQ图片20220814195411

这报错是什么原因

你creator版本是多少?

导入你的项目,默认3.3.2

手动改3.6可以了,感谢楼主分享

我刚刚重新试了下新clone项目也能用3.3.2打开使用,可能是你本地环境有问题

赞! 今天研究一下 :kissing_heart:

感谢大佬分享!

# 更新日志

  • 添加 monitor_trigger(在属性面板绑定数据)

不想再自定义 inspector 了,写了个简略版,将就用吧,效果图在最上方

1赞

不错,拜读,感谢楼主分享

# 更新日志

  • monitor_trigger 预制体/场景数据全部转为 string 存储,方便修改
  • 添加数据类型检查
  • 添加数据键提示
    2ZMPN$KTNT6PLTWT{9LUKFY
  • 添加示例界面:玩家信息、头像选择

# 利用 monitor_trigger 低成本搭建界面

大家觉得我们这个界面用了多少代码呢?

事实上除了创建销毁外,没有任何代码控制界面的展示! 那么是怎么做到的呢?

ZCK8N2VYAVHK%MT7IA7O3

一个 monitor_trigger,做到所有展示控制! 我们只需要关注业务数据即可

github:https://github.com/1226085293/mk_monitor
gitee:https://gitee.com/muzzik/mk_monitor

对象池咋使用vfor 呢

微信小程序不支持吗?微信小程序加载图片报错,是不兼容吗微信小程序吗

是支持的,代码里面有循环引用,编译后就报错了,还没来得及更新,就是 data_method 方法的ccclass基类,需要放在单独的文件

已经修复,web 打包测试正常,可以更新下

高产的大佬

这个跟那位大神的mvvm有什么区别吗,