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