个人项目已经基于开始使用了
可以可以 …………666
UI配置数据非常人性话,非常适合普通用户。
主要的是扩展性和复用性,这两个才是重点,不论什么实现方式,最早论坛的那个 mvvm 扩展是比较困难的,还需要看源码,我这个只需要 copy 个方法就行了
- data & setData 有点如鲠在喉的感觉…
我也有个类似框架, View 和 ViewModel 彻底分离, 理论上 整个 app 的 vm 层可以脱离 view 独立运行 (也不依赖 cc).
我一直对 Proxy 的性能持怀疑, 所以我的框架基于 rxjs.
@ccclass
export class LoadingPageView extends VmViewBase<LoadingPageViewModel>
{
@vmBindIts('progress')
@bindIts('node.active', _=> Orient.isH$)
@type(ProgressBar) progress = null;
@vmBindIts('string', vm => vm.progress$.pipe(map(percentify)) )
@type(Label) loading = null;
@assignIts('string',_=>'v' +R.VERSION)
@type(Label) ver = null;
@vmBindClick()
@type(Button) cancel = null;
}
cc 编辑器里绑定数据 - 虽然用的时候爽, 但后续维护和迁移起来…不好说…
我更愿意一个 view 的所有绑定, 在一个声明式(比如装饰器) 的脚本中. 比如将来想把 cc 换成 laya, 脚本只需稍作改动就可以直接用了.
效率如何。虽然用了微信小程序的mvvm这种模式。但是在游戏里应用。对游戏性能影响如何。
我的监听器两种都支持,只不过我自己更喜欢编辑器而已。而且编辑器可以通过字符串全局替换,虽然比代码全局修改麻烦点
值得去思考,脱离view层的 我能想到的是,需要去做一个view代理。让这个view代理去抹平不同平台的view,ccc需要对应的实现的,laya也是
大佬,你测试下,在微信小游戏里运行,好像有点问题,我使用你github上的项目,拉下来,再微信小程序是有报错,我自己项目里,图片加载也有问题
好的 看看情况
已修复
proxy 好像不是都支持吧
看明白了,
书写有误
你这个 ScrollView,Layout里面添加数据。好像是加一个数据,全部数据都刷新一遍。数据多了,加一个数据就卡了。背包里面的东西一般都需要添加或者删除的吧。这有没有什么解决的办法?
动态的一些东西根本就不适合,这些通过数据驱动UI的框架其实都是不咋地适合稍微复杂一丢丢的逻辑,真的只适合非常简单的一些逻辑才会只更新1-2个UI(比如幼儿教育app那种),其实每次更新数据,要更新的ui非常多,但是数据关联的UI却不一定都需要更新,而且即使需要更新,还要判断多种条件下进行不同的UI更新等等,如果看不明白的话,只能说多写2行代码你就知道了。
所以通过数据驱动UI的框架都是只能解渴,但是并不能靠他充饥