看过 Taro 是阉割的 React 应该会对 Taro 的原理有粗浅的理解。
编译时 + 运行时
Taro 2.x 的架构的架构基本可以拆分为两个部分:
- 编译时:利用 Webpack + Babel 技术,将类 React 语法的组件转换为对应平台规定的源文件。比如
- JS → WXML + JS + JSON
- CSS → WXSS
- 运行时: 将类 React 的接口 和 更新机制 嫁接到小程序。比如 React 的生命周期,事件、数据处理方式和小程序有点差异,这些差异可以用运行时胶合起来。
组织
一张更大的图: