条件渲染:wx:if, wx:elif, wx:else
<view wx:if="{{list.length > 5}}" >1</view> <view wx:elif="{{list.length > 2}}">2</view> <view wx:else>3</view>
由于wx:if是一个控制属性,需要将它添加到一个标签上,如果要一次性判断多个组件标签,可以使用<block></block>标签将多个组件包装起来,并在上边使用wx:if 控制属性,
<block> <view wx:if="{{list.length > 5}}" >1</view> <view wx:elif="{{list.length > 2}}">2</view> <view wx:else>3</view> </block>
blcok 是一个包装元素,不会在页面做任何渲染。
hidhen:
在小程序中,hidden = "{{condition}}" 也能控制元素的显示和隐藏。为true隐藏,为false显示
<view hidden = "{{condition}}" >123</view>
列表渲染: wx:for
如果没有指定参数, 默认索引是index, 值是item
<view wx:for="{{userList}}" wx:key="index">索引是: {{index}}, 值是: {{item}}</view> data: { userList :[‘zhangsan‘, "lisi", ‘wnagwu‘] }
手动指定索引和当前项的变量名:
<view wx:for="{{userList}}" wx:key="index" wx:for-index="i" wx:for-item="it"> 索引是: {{i}}, 值是: {{it}} </view> data: { userList :[‘zhangsan‘, "lisi", ‘wnagwu‘] }
block wx:for 列表渲染
<block wx:for="{{userList}}" wx:key="index" wx:for-index="i" wx:for-item="it"> <view>索引是: {{i}}, 值是: {{it}}</view> </block>
key 在列表循环中的作用:
如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态(如<input />)中输入内容,<checkbox/>的选中状态,徐奥使用 wx:key来指定列表中项目的唯一标识符。
当数据改变触发渲染层重新渲染的时候,会校正带有key的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身状态,并且提高列表渲染时的效率。
key值的注意点:
key值必须具有唯一行,且不能动态改变。
key的值必须是数字或字符串
保留关键子*this代表在for循环中的item本身,它也可以充当key值,但是有以下限制,需要item本身是一个唯一的字符串或数字。