数据绑定
页面中所有绑定的数据都来自对应
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> |