labrador_mobx_example基于 Labrador、mobx 的小程序 demo
What
基于 Labrador 和 mobx 框架构建的小程序开发demo。
Why
Labrador 开发框架使微信开发回到我们熟悉的开发环境和流程中来 , 更多特性请参考 Labrador 使用Mobx 来做状态管理相比 Redux 来说更简单易懂, 更自由, 代码更少.
How
git clone https://github.com/spacedragon/labrador_mobx_example.git npm install npm run dev
So ...
熟悉mobx 的看 hocs/observer.js 里面的注释
Known Issues
-
Labrador 可能存在 issue 所以目前package.json 里面使用的是我 fork 之后修改过的版本
-
微信小程序的 Page.setData(data) 对data 做了一次拷贝, 但是拷贝出来的对象丢失了 getter 方法, 这使得在 xml/wxml 界面绑定的时候取不到 mobx computed value , 目前的解决方法是为 store 写一个 toJS 序列化方法, 将 computed value 转化为普通的 property . (同样需要修改 labrador 框架)
-
目前使用mobx 2.7.0 , 目测 3.0.0 的版本在小程序环境中存在兼容性问题, 需要进一步研究.
-
mobx 有可能比 redux / saga 更占空间 , 注意小程序有 1m 的限制. (mobx.min.js 有51k肯定比 redux 大许多, 但是因为mobx 需要的业务逻辑代码更少, 也许在更大的项目中会有优势)
评论