westore icon indicating copy to clipboard operation
westore copied to clipboard

分享给大家我遇到问题(实际上是我自己菜)

Open watchingfun opened this issue 2 years ago • 3 comments

工具是个好工具,但是我太菜了,我在这里写下我在使用过程中遇到的一些问题,方便跟我一样的菜鸟

  1. 首先model 和 store 的定义和使用: 只要exprot 的是new 实例,那import的都是同一个实例,由此可以达到全局data存储的功能

  2. ~~这个框架的store,model 其实没必要单独写一个model,大家可以把data,method全写在store里,作者给的贪吃蛇demo里,每次页面load后,都要init,其实就是把model里的data复制到store里,如果大家的微信小程序应用其实不考虑什么复用迁移平台,那么就不用多弄个model~~ 辣鸡微信

  3. 这个框架的主要功能update 这个之前遇到一个问题,实际上是我自己不清楚update里的实现,直接想当然拿来就用,然后发现页面并没有更新 export function update(view, callback) { const patch = diffData(view.data, view._westorePrevData) view.setData(patch, callback) view._westorePrevData = clone(view.data) } 首先会比对历史数据和当前数据,得到更改后的数据再去调用微信的setData, 那么我不生效的原因就是在发送网络请求前修改了data后没有update,因为需要update存储一下历史值,不然update取的历史值不对,diff后的数据patch为空,那么自然没有setData更新视图

  4. store的bind 贪吃蛇demo是在onload里store.bind(name, viewThis), 然后我看README.md里写的是可以省略name,直接bind(viewThis),然后我就这么写了,但是因为onload在每次页面加载都执行,bind不加name的情况就是westore内部用数组维护viewThis,然后update时遍历数组来update,但是这里没有根据页面来做去重覆盖,所以会每次进去页面调用bind时,那个数组列表就会越来越长。所以还是加名字bind来使用好点。

watchingfun avatar Dec 22 '21 04:12 watchingfun

总结的不错

dntzhang avatar Dec 22 '21 10:12 dntzhang

你的确够菜的,这么菜的一个框架,你竟然用出了这么多问题

tomerry avatar Feb 16 '22 05:02 tomerry

你的确够菜的,这么菜的一个框架,你竟然用出了这么多问题

前端菜狗,第一次搞微信小程序

watchingfun avatar Feb 16 '22 05:02 watchingfun