数据绑定
页面中所有绑定的数据都来自对应
Page
的data
简单绑定
通过
Mustache 语法(双大括号)
包裹变量的方式进行数据绑定
1 | Page({ |
运算
可以在双大括号内进行简单的运算
1 | Page({ |
组合
可以在
{{}}
内直接进行组合,构成新的对象或者数组花括号和引号之间如果有空格,将最终被解析成为字符串
1 | Page({ |
渲染
列表渲染
wx:for
在组件(如
view
)或结构块(block
,包装元素,只接受控制属性)中通过ws:for
指令渲染数组中的数据项数组当前项的变量名默认为
item
, 下标变量名默认为index
wx:for
的值为字符串时,会将字符串解析成字符串数组
1 | Page({ |
wx:key
如果列表会发生变动(新增、删除等),且需保持列表项状态(如:
<input/>
的内容、<switch/>
的选中状态等),则需要使用wx:key
来指定列表中数据项的唯一的标识符
wx:key
的值有两种形式:第一种是item
中不会变动的某个property
的值(字符串或数字),第二种是保留关键字*this
(代表item
本身,并且是唯一的字符串或者数字)当数据改变触发渲染层重新渲染的时候,会校正带有
key
的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。
1 | Page({ |
条件渲染
wx:if
通过
wx:if="{{condition}}"
指令来判断是否需要渲染该代码块,可以作用于组件(如view
)或结构块(block
)可以用
wx:elif
或wx:else
来添加一个else
块
1 | <view wx:if="{{condition}}"> True </view> |
wx:if vs hidden
wx:if
:变量值发生变动时,会进行局部渲染(销毁或渲染)
hidden
:组件始终会渲染,只是控制显示隐藏
hidden
适合频繁切换的场景,wx:if
适合条件不经常变动的场景
1 | <view wx:if="{{Show}}"></view> |