RN 转小程序引擎 Alita V1.1.0 发布

5,067 阅读2分钟

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正确连接起来,在AlitaMobx应该就可以正常的使用。

参考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, 方便reduxMobxstore注入
  • 根据 react-redux 重新实现 alita redux链接库
  • 添加 decorators转化支持
  • 添加 --comp 命令行参数,适用于只转化RN组件,而不是整个项目的场景
  • 其他特性 具体请看 CHANGELOG

移步Github,进一步了解 Alita