因爲 wx:if
之中的模板也可能包含數據綁定,所以當 wx:if
的條件值切換時,框架有一個局部渲染的過程,因爲它會確保條件塊在切換時銷燬或重新渲染。
同時 wx:if
也是惰性的,如果在初始渲染條件爲 false
,框架什麼也不做,在條件第一次變成真的時候纔開始局部渲染。
相比之下,hidden
就簡單的多,組件始終會被渲染,只是簡單的控制顯示與隱藏。
一般來說,wx:if
有更高的切換消耗而 hidden
有更高的初始渲染消耗。因此,如果需要頻繁切換的情景下,用 hidden
更好,如果在運行時條件不大可能改變則 wx:if
較好。
代碼如下:
<!--pages/judgeIfElse/judgeIfElse.wxml-->
<view class="container">
<view wx:if="{{age < 18}}">未成年</view>
<view wx:elif="{{age >= 18 && age <= 30}}">已成年</view>
<view wx:else>老了</view>
<block wx:if="{{false}}">
<view>這是一個元素</view>
<view>if esle</view>
</block>
<view hidden="{{false}}">這是一個hidden</view>
</view>
頁面顯示如下
頁面中並未顯示hidden="{{true}}" 的值,但渲染頁面的時候是有的
需要頻繁切換的情景使用hidden