微信小程序条件渲染
2020-01-26 本文已影响0人
荒剑离
wx:if
- 在框架中,使用
wx:if=""
来判断是否需要渲染该代码块:
当然,wx:if
是一个控制属性,使用时需要将它添加到一个标签上。
<view wx:if="{{condition}}"> True </view>
- 也可以用
wx:elif
和wx:else
来添加一个 else 块:
<view wx:if="{{length > 5}}"> 1 </view>
<view wx:elif="{{length > 2}}"> 2 </view>
<view wx:else> 3 </view>
- <block/> 并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性。
<block wx:if="{{true}}">
<view> view1 </view>
<view> view2 </view>
</block>
wx:if vs hidden
- 框架有一个局部渲染的过程,
wx:if
会确保条件块在切换时销毁或重新渲染。同时wx:if
也是惰性的,如果在初始渲染条件为 false,框架什么也不做,在条件第一次变成真的时候才开始局部渲染。 - 相比之下,组件属性
hidden
(Boolean) 就简单的多,组件始终会被渲染,只是简单的控制显示与隐藏。 - 一般来说,
wx:if
有更高的切换消耗而hidden
有更高的初始渲染消耗。因此,如果需要频繁切换的情景下,用hidden
更好,如果在运行时条件不大可能改变则wx:if
较好。