微信小程序的那套页面逻辑,确实比较low,不知道是不是为了兼容lowB。

他有个统一的页面注册,也就是page()方法,页面要用到的数据、方法都丢在page()里面,很像VUE2的那套声明式逻辑。

但是数据又不是VUE那样的绑定之后自动差量更新,而是先把视图层和逻辑层的相关数据注册进page.data对象里面,然后用setData()来修改逻辑层数据并映射到视图层。

等于说逻辑层用this.data.someValue = xxx是没办法修改视图层的{ someValue }模板的绑定/映射的。

得用setData({ someValue: xxx })才能改。

估计page.data里面也不支持自动默认的getter和setter方法,页面注册之后只能用setData()了,没试过。

相当于自动挡变手动挡了,我不理解这是为啥,你说是为了提高细粒度降低内存消耗吧,我接手的项目代码就是一坨屎,还不如VUE那套呢。


还有个问题,就是微信小程序自己的API,好多异步语法,回调就很反人类。

this.xxx是找不到xxx的,比如this.data.xxx经常找不到注册在page里的data数据。

因为原方法是page调用,毕竟方法、参数都在page()里注册了,所以能用this.xxx来调用方法或者变量,但是回调方法是框架调用、引擎调用,this不再指向page了,我去。

我接手的项目,频繁的在方法里用const that = this,然后回调用that.xxx,我真的

总之微信小程序这套,感觉挺low的。


还有个疑惑就是,页面的静态常量可以放在page()外面,反正不用改,也不用映射绑定去视图层。

就是不知道这些静态常量能不能自动销毁,会不会绕过页面内存回收机制,最后造成内存泄漏。


带蛤司
18 声望0 粉丝

好好学习,天天向上!