如何做到像 js的vue那样,改了数据后,UI自动更新

但显然易见,这样也有问题。
例如 我滑动到页面底部了。 如果触发事件,重新渲染UI 那岂不是又回到了页面顶部?

就会出现闪跳到感觉。。

没做过类似需求,以前在论坛里好像看到个啥双向绑定,你搜搜不知道符不符合你的需求

嗯呢 就是类似的功能哈。
因为双向绑定了, 所以数据模型变化后,UI上的内容也会变化。

我的疑问就是 这应该属于很常见的功能呀, 为啥这么难搜到呢。。 完美的解决方案也找不到。

是我的路子走错啦?


你看看这个

嗯嗯 这个我看了。 的确正在尝试。 只是我的游戏已经用js写好了。。。他这个是ts的。

感觉想换成ts再写一遍了。。

这个可以用观察者模式或mvc实现呐

有类似的实现吗? 求白嫖 :joy:

参考参考

这个暂时没有 :joy:
如果用观察者就自己实现一个匿名函数的时事件系统,注册监听发射就可以了
mvc就更好弄了 在c层调用一下UI更新就可以了

https://github.com/wsssheep/cocos_creator_mvvm_tools
这个还真不错 应该可以用 。 哈哈

等我的插件出来就行了

哈哈 大佬 我的确找了一下你的回复

对于游戏模块太复杂了,后面我把模块架构改成了单独的 视图驱动模块 + 代码驱动模块,两个驱动都可以单独使用和复合使用

大佬,快出,期待ing

我有一个Layout Container 里面用于展示一个列表。 列表可能有10条 也可能有20条。
貌似用这种方式就不能自动更新了。。 每次有任何一条数据变化,都需要重新渲染整个列表?

怎么做到,只更新其中一条的数据呢?

或者是 原本有20条,后来删了10条。 怎么做到只删除10条, 而不用重新渲染整个列表。。。

数据影响视图 属于是单向绑定啊。现成的双向绑定框架没有,有的话意义也不大。类似的需求 rxjs redux mobx都可以做,论坛里都有人用过。可以搜一下

有的情况一个ui与多条数据绑定,每次这几条数据不一定修改几条,如果没修改一条数据就刷新一下UI就会显得很呆

你要的东西

这种在数据更新后,做一个需刷新UI的标记,在下一帧执行UI更新操作后将标记去掉就好了吧。当然你如果是每一帧改变一条数据,想所有数据改完后再刷新就只能特殊情况特殊处理。

有什么意义?creator 本就是在下一帧更新UI,你上一帧操作多少次 UI 都没关系,除非调用了立即刷新的接口

游戏UI开发,,,我比较倾向于mvc的残缺版(mv), model的数据变更就是直接通过事件传递到其他view,,,,这么多年了,依旧还是mv模式,轻便灵活,谁用谁知道,,,

2赞