Alita在处理React语法的时候,采用了一种运行时处理JSX的技术,相对于社区现有的编译时方案,在JSX语法的支持上更加完备,关于运行时处理JSX的原理,详情请看。
自1.0.0
发布以来,我们收到了很多对于Mobx
的支持的需求,另外Alita
初始版本并不支持 watch
模式(由于内部和外部使用Alita的方式不同),这导致了每修改一个文件,需要看小程序效果的时候都需要重新执行一下alita
命令,开发调试起来很不方便。 所以我们在这个版本里面,主要做了两件事情:Mobx
支持,watch
模式
支持mobx
Mobx
本身并不和React
绑定,可以用于任何前端框架。但是它和React
的配合,可以方便的进行React
应用的数据管理,Alita
这个版本主要支持了Mobx
的使用,得益于Alita
运行时架构的设计,Alita
存在一个嵌入式的mini-react
,所以只需把Mobx
和内嵌的mini-react
正确连接起来,在Alita
上Mobx
应该就可以正常的使用。
参考mobx-react
并且结合mini-react
暴露的API,我们在微信小程序端适配了一个wx-mobx-react
。 Alita转化完你的RN应用之后,会自动在小程序端把mobx-react
切换为wx-mobx-react
。
在支持mobx的过程中,我们还有了另外的收获,当我们设置多个observable
的值时候,mobx-react
会通过unstable_batchedUpdates
接口批量更新,据此Alita也对外提供了unstable_batchedUpdates
接口,和React一样这个接口会合并多次setState
,对应提升应用的性能很有帮助。
另外新版本之后Alita
生成的js
代码可读性会减低,之前Alita
会生成ES6
的代码,然后通过微信小程序自带的功能把ES6
转化为ES5
,但是微信小程序的转化并不支持decorators
(这个特性对于Mobx
十分重要),所以现在Alita
会通过babel
直接生成ES5的代码。
详细文档请看:支持mobx。
我们还提供了一个实际的用Mobx构建的Demo
watch
为了简化开发调试的过程,Alita
新增了 watch
功能,只需要在执行alita
命令的时候,添加--watch
参数即可。未来我们也将不断提升 Alita
的开发调试体验。
其他更新
- 添加
forceUpdate API
- 对外暴露
unstable_batchedUpdates
批量更新接口 - 优化
Provider
, 方便redux
,Mobx
的store
注入 - 根据
react-redux
重新实现alita redux
链接库 - 添加
decorators
转化支持 - 添加
--comp
命令行参数,适用于只转化RN组件,而不是整个项目的场景 - 其他特性 具体请看 CHANGELOG