微信小程式 條件渲染 wx:if
wx:if
在MINA中,我們用wx:if="{{condition}}"
來判斷是否需要渲染該程式碼區塊:
<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 wx:if
因為 wx:if
是一個控制屬性,需要將它加到一個標籤上。但如果我們想要一次判斷多個元件標籤,我們可以使用一個<block/>
標籤將多個元件包裝起來,並在上邊使用wx:if
控制屬性。
<block wx:if="{{true}}"> <view> view1 </view> <view> view2 </view> </block>
注意: <block/>
並不是一個元件,它只是一個包裝元素,不會在頁面中做任何渲染,只接受控制屬性。
wx:if
vs hidden
#因為wx:if
之中的範本也可能包含資料綁定,所有當wx:if
的條件值切換時,MINA都有一個局部渲染的過程,因為它會確保條件區塊在切換時銷毀或重新渲染。
同時wx:if
也是惰性的,如果在初始渲染條件為false
,MINA什麼都不做,在條件第一次變成真的時候才開始局部渲染。
相較之下,hidden
就簡單的多,元件總是會被渲染,只是簡單的控制顯示與隱藏。
一般來說,wx:if
有更高的切換消耗而hidden
有更高的初始渲染消耗。因此,如果需要頻繁切換的情境下,用hidden
比較好,如果在執行時條件不大可能改變則wx:if
較好。