Taro 如何借助抽象语法树把 JSX 编译为小程序模板,编译边界在哪里
简答题困难824 次浏览
参考答案与解析
# 核心结论
Taro 并不是把 JSX 文本直接替换成小程序模板,而是借助 Babel 将源代码解析为抽象语法树 AST,在保留作用域和语义信息的前提下识别组件、属性、事件、循环、条件渲染及表达式依赖,再分别生成小程序模板、逻辑代码、页面配置和组件依赖。其编译边界由目标平台决定:能够静态确定且可由声明式模板表达的视图结构可以下沉到模板;依赖运行时状态计算但结果可绑定的数据留在逻辑层;无法静态确定结构、组件类型或配置的写法,则需要限制、降级或直接报错。使用了 Babel 并不意味着任意 JavaScript 都能无损编译为小程序模板。
# 底层机制
编译一般经过解析、遍历、转换和生成四个阶段。解
