微信小程式-檢視條件渲染

奮程式序猿發表於2016-11-10

條件渲染

wx:if

在框架中,我們用 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 的條件值切換時,框架有一個區域性渲染的過程,因為它會確保條件塊在切換時銷燬或重新渲染。

同時 wx:if 也是惰性的,如果在初始渲染條件為 false,框架什麼也不做,在條件第一次變成真的時候才開始區域性渲染。

相比之下,hidden 就簡單的多,元件始終會被渲染,只是簡單的控制顯示與隱藏。

一般來說,wx:if 有更高的切換消耗而 hidden 有更高的初始渲染消耗。因此,如果需要頻繁切換的情景下,用 hidden 更好,如果在執行時條件不大可能改變則 wx:if 較好。

 

相關文章