转译与运行时
跨端解决方案
目前业界跨多端小程序统一开发框架已经有多种方案了,例如美团点评的 mpvue,京东的 Taro,去哪儿的 anu,淘宝的 Rax。
Taro
Taro 遵循 React 语法规范,它采用与 React 一致的组件化思想,组件生命周期与 React 保持一致,同时支持使用 JSX 语法,让代码具有更丰富的表现力,使用 Taro 进行开发可以获得和 React 一致的开发体验。核心部分为编译工具,主要的功能是代码本身的转译以及各个平台 API 层面和自身组件的抹平。
代码转译即借助于编译原理的力量是能够明确做到将 React 转成小程序代码的。将代码按照对应语法规则转换过去后,还远远不够,因为不同端会有自己的原生组件,端能力 API 等等,代码直接转换过去后,可能不能直接执行。为了弥补不同端的差异,他们订制好了一个统一的组件库标准,以及统一的 API 标准,同时还为不同的端编写相应的运行时框架,负责初始化等等操作。
这一套标准主要以三个部分组成,包括标准运行时框架、标准基础组件库、标准端能力 API,其中运行时框架和 API 对应 @taro/taro,组件库对应 @tarojs/components,通过在不同端实现这些标准,从而达到去差异化的目的。类比于手淘的 Rax,提供很多组件,大部分组件的能力都可以分别映射到 H5 和 weex 两端。
结合组件库和 API 的能力,本地开发源码,经过代码编译成为目标代码,结合各端的运营时就可以达到了在多端适配的目的,真正的一套代码,多端运行。