首頁 > 軟體

三分鐘帶你快速學會微信小程式的條件渲染

2022-08-19 14:00:54

前言

這篇文章是三分鐘學會小程式的條件渲染教學,所謂的條件渲染就是判斷是否需要把程式碼渲染到展示頁面上。使用以下三種方式可以實現條件渲染,各自有不同的應用場景,只有熟練掌握其用法,在使用時才能得心應手。

1.wx:if實現條件渲染

在框架中,使用 wx:if="" 來判斷是否需要渲染該程式碼塊:

<view wx:if="{{condition}}">True<view>

如果condition的值為true,就會在頁面上渲染出view元件,否則將不會顯示該元件。同時還可以結合wx:elifwx:else來使用,此時可以進行多條件的判斷是否渲染該程式碼。

<view wx:if="{{type===1}}">元件1</view>
<view wx:elif="{{type===2}}">元件2</view>
<view wx:else>元件3</view>

下面做一個演示:在js檔案的data中定義一個type,同時在wxml檔案中定義三個view元件,根據type的值來決定是否渲染view元件。

此時,改變type的值就可以改變頁面渲染的內容。

2.block結合wx:if使用

因為 wx:if 是一個控制屬性,需要將它新增到一個標籤上。如果要一次性判斷多個元件標籤,可以使用一個 <block/> 標籤將多個元件包裝起來,並在上邊使用 wx:if 控制屬性。

<block wx:if="{{true}}">
  <view> view1 </view>
  <view> view2 </view>
</block>

注意:不是一個元件,只是一個包裹性的容器,不會在頁面上做任何渲染。

下面做一個演示:在<block>中包裹兩個view元件,使用wx:if來決定是否需要渲染這兩個元件。

此時在頁面上渲染了兩個view元件,block作為包裹性的容器並沒有被渲染。

3.hiden實現條件渲染

在框架中,使用 hidden="" 來控制元件的顯示與隱藏。與前面不同的是,hidden元件始終會被渲染,只是簡單的控制顯示與隱藏。

<view hidden="{{false}}">當條件為true時則會隱藏該元素</view>

下面做一個演示:在js檔案中定義一個flag,在wxml檔案中使用hidden隱藏view元件。

可以在AppData中改變flag的值從而控制是否隱藏該view元件。

4. wx:if vs hidden

因為 wx:if 之中的模板也可能包含資料繫結,所以當 wx:if 的條件值切換時,框架有一個區域性渲染的過程,因為它會確保條件塊在切換時銷燬或重新渲染。

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

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

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

所以在使用條件渲染時,要根據不同的應用場景來選擇!只有熟練的掌握,才能在小程式開發中提高效率。

補充:hidden 和 wx:if 的區別

  • 被 wx:if 控制的區域,框架有一個區域性渲染的過程,會根據控制條件的改變,動態建立或銷燬對應的 UI結構。類似Vue中的v-if
  • wx:if 是惰性的,如果在初始渲染條件為 false,框架什麼也不做,在條件第一次變成真的時候才開始區域性渲染。
  • 相比之下,hidden 就簡單的多,元件始終會被渲染,只是簡單的控制顯示與隱藏。類似Vue中的v-show
  • 總結:wx:if 有更高的切換消耗而 hidden 有更高的初始渲染消耗。因此,如果需要頻繁切換的情景下,用 hidden 更好,如果在執行時條件不大可能改變則 wx:if 較好。

總結

到此這篇關於微信小程式條件渲染的文章就介紹到這了,更多相關微信小程式條件渲染內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com