1、wx:for
wx:for指令用于循环数组数据,生成组件。
循环出来的每一项通过item返回,每一项对应的索引,通过index返回。
<view wx:for="{{songs}}" wx:key="index" class="items">
<text>{{index}}--{{item.id}}--{{item.name}}</text>
</view>
2、wx:key
wx:key="",设置每一项唯一的标识。循环列表时,添加wx:key的好处是,将来列表发生变化时重新渲染列表的损耗为更低。
条件渲染
条件渲染可以使用wx:if或hidden。
一般来说,wx:if 有更高的切换消耗而 hidden 有更高的初始渲染消耗。因此,如果需要频繁切换的情景下,用 hidden 更好,如果在运行时条件不大可能改变则 wx:if 较好。
1、wx:if
wx:if用于条件渲染:条件为真生成里面的内容,条件为假不会生成里面的内容。(每次重新生成内容)
也可以用wx:elif 和 wx:else 来添加一个 else 块。
<view wx:if="{{typeID == 1}}"> 1 </view>
<view wx:elif="{{typeID == 2}}"> 2 </view>
<view wx:else> 3 </view>
2、hidden
hidden用于条件渲染:条件为真隐藏里面的内容,条件为假显示里面的内容。(每次切换样式)
<view hidden="{{typeID!= 2}}"> 1 </view>
小程序中使用 wx:if="{{condition}}" 进行条件渲染,当 condition 为 true 时,携带 wx:if 这个可知属性的标签才会被渲染显示。
之前在项目中就遇到过一个问题:
页面的 wxml 如下:
结合两张图渲染顺序可以看出, image 是最后渲染加在页面上的,但从 DOM 结构来看, image 应该会早于 white-bgView 先渲染。那么导致实际与预期出现偏差但原因是什么呢?
查看 image 标签,可以猜测应该 wx:if 控制属性影响的,为验证猜想,去掉 wx:if 属性后,小程序调试器 xml 窗口显示结构如预期:
Tip:官方文档也将wx:if和hidden进行比较,在具体实际使用中如何选择有很大帮助。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)