使用 完整react能力 开发小程序

November 22, 2019

最近这一年在小象负责移动端相关的架构工作,之前提到我们游戏基于 pixi 自研了一个游戏框架,成功的将 react 桥接到 pixi 上。这给了我很大的信息,开始思考是否能让 react 跑在任意平台上、

我们的小程序是一个电商业务比较复杂,可以微信搜索“美团买菜”体验一下,和 APP 的交互都是对齐的。这就导致这个小程序其实很大,开发的时候需要一整套工具和规范来进行约束,所以18年的时候又研发了小程序的构建工具,提供了 npm,typescript,scss,less,postcss,babel 等等的支持,但是整体支持的还是小程序原生的语法,因此希望在这个基础上,支持 react 语法。

市面上比较出名的方案是京东的taro,它使用静态语法分析在构建的过程将jsx硬转成小程序模板,确实是一个很赞的做法,但是会有很多方案的限制,我们不太想写业务的时候有太多“心智负担”,react怎么写就怎么写,react生态的库该怎么用就怎么用,所以taro的思路肯定不行。基于做游戏的思路,初步想法是在小程序上面实现一个运行时来兼容整个react,其实就是实现一个类似vdom的结构连接react和小程序视图层。在开发的过程中,有些库依赖一些BOM接口,所以我们干脆就实现了一个简单的dom/bom的垫片,让react能跑在上面,然后由这个垫片和小程序视图层做交互。


目录