wx:if vs hidden

因爲 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章