元概念
AIP 表达式
为了明晰 AIP 中可以使用哪些 JS 基础语法,将按如下定义明确 AIP 表达式概念,超出范围将被编译器视情况抛出 Warning(不强制失败,但可能产生不符合开发者预期的页面行为)或 Error(页面创建/运行失败)。
定义理念:每一个合法的 AIP 表达式只靠单纯计算求值成某个值。
可以使用以下操作符:
[]
数组初始化/字面量语法open in new window{}
对象初始化/字面量语法open in new window()
分组操作符open in new window- 属性访问符open in new window:对对象的属性或方法的访问
- 算术运算符:加减乘除取模(+ - * / %)
- 字符串运算符:字符串相加
- 逻辑运算符:与 (&&)、或 (||)、非 (!)
- 比较运算符open in new window
- 条件(三元)运算符open in new window
- iife 包裹函数为立即执行表达式(大多场景不推荐直接手写 iife,函数复用推荐使用 SFC 工具)
不能使用:
- 变量声明
- 函数定义相关表达式:
function
、class
、箭头函数 - 异步定义:
function*
、yield
、yield*
、async
await
- 左表达式:
new
、super
、展开语法...
- 正则表达式字面量语法open in new window
- 一元操作符:
delete
、typeof
、void
、throw
、~
- 关系操作符:
in
、instanceof
- 赋值运算符open in new window
- 自增和自减open in new window
- 位移运算符open in new window
- 二进制位运算符open in new window
- 逗号操作符open in new window
JS 沙盒
AIP 的所有动态脚本能力都将运行在一个内置的 JS 沙盒中,当前只支持以下全局能力:
encodeURI
encodeURIComponent
decodeURI
decodeURIComponent
isNaN
isFinite
parseFloat
parseInt
Object
Array
Math
console
Promise
超出上述能力的使用都将导致页面报错。
样式
- 组件属性上的样式长度字段(如
width
、height
等)单位默认为rpx
,可以忽略数字后的rpx
。- 如需使用 px 则数字必须要明确写上 px,并且相关元素失去响应式适配;
<style aip-custom></style>
只能出现在head
里一次,且为了保证原生渲染的正确性,请参照原生渲染 CSS 支持章节查看具体 CSS 属性的使用。- 为了方便开发者对原生渲染效果的保障,我们提供了原生效果模拟预览服务
- 由于 CSS 样式字段众多,如有发现和官网显示的描述不符的属性请按 Bug 反馈模版向 AIP 团队反馈排查。