TTML-條件渲染

2020-02-11 17:08 更新

tt:if

在框架中,使用 tt:if="{{condition}}" 來判斷是否需要渲染該代碼塊:

<!-- index.ttml -->
<view tt:if="{{condition}}"> True </view>
// index.js
Page({
  data: {
    condition: true
  }
});

也可以用 tt:elif 和 tt:else 來添加一個 else 塊:

<view tt:if="{{length > 5}}"> 1 </view>
<view tt:elif="{{length > 2}}"> 2 </view>
<view tt:else> 3 </view>


block tt:if

如果要同時控制多個標簽的渲染的話可以使用 block 上增加 tt:if, block 不會在實際展示文檔中產(chǎn)生任何標簽。

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


hidden

我們也可以通過一個更加簡單的屬性來控制標簽的展示。

<!-- index.ttml -->
<view hidden="{{condition}}"> True </view>


提醒

因為 tt:if 之中的模板也可能包含數(shù)據(jù)綁定,所有當(dāng) tt:if 的條件值切換時,框架有一個局部渲染的過程,因為它會確保條件塊在切換時銷毀或重新渲染。

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

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

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

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號