限制&限制说明
Alita的限制分为3个方面: 小程序原生限制, Alita转化限制, React能力限制
小程序原生限制
小程序原生限制,主要是来自小程序引擎本身的限制,这些限制在使用原生小程序的时候一样存在,常见的有:
- 代码体积小于 2M,分包 8M
- 路由深度不大于5层, tab最少有两个
等等,这类限制来源于小程序引擎,是必须要遵守的。
Alita转化限制
Alita采用运行时处理JSX的技术, 解放了JSX的能力。不过,小程序平台和React天然有一些不同,另外出于潜在的性能问题的考虑,Alita采用了小程序自定义组件映射React组件的方式,这也带来了 一些Alita语法上的局限。
小程序的页面信息,配置在app.json。json文件是静态的,无法运行时生成/修改。
小程序组件引用信息定义在对应的json文件
usingComponents
字段,json文件是静态的,无法运行时生成/修改。
以上关于JSON文件产生的静态限制,详细请参考
除了上面所说的,另外还有一些转化限制:
基本组件的属性展开不被支持,比如
<View {...x}/>
。但是自定义组件是支持的,比如A是一个自定义组件,那么可以<A {...x}/>
ref
必须是方法,不支持字符串只有组件文件中定义的JSX片段才会被正确处理, 详见
谨慎使用高阶组件 详见
React能力限制
这里主要是指Alita嵌入的React与官方React区别,比如新的生命周期,Hooks,新的context等等。这些限制随着Alita的版本更新,将会得以支持