WeChat 애플릿 조건부 렌더링 wx:if
wx:if
MINA에서는 wx:if="{{condition}}"
를 사용하여 코드 블록을 렌더링해야 하는지 여부를 결정합니다. 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
rrreee
를 사용할 수도 있습니다. wx: elif
및 wx:else
를 사용하여 else 블록을 추가합니다. 🎜rrreeewx:if< 때문에 wx:if🎜🎜를 차단합니다. /code >는 레이블에 추가해야 하는 제어 속성입니다. 그러나 여러 구성요소 태그를 한 번에 판단하려면 <block/>
태그를 사용하여 여러 구성요소를 래핑하고 상단에 wx:if
Control을 사용할 수 있습니다. 속성. 🎜rrreee🎜참고: <block/>
는 구성 요소가 아니며 단지 래핑 요소일 뿐이며 페이지에서 렌더링을 수행하지 않으며 허용만 합니다. 제어 속성 . 🎜wx:if
대 hidden
🎜🎜wx:if
의 템플릿도 데이터 바인딩을 포함할 수 있으므로 wx:if
의 조건 값이 전환되면 MINA는 전환 시 조건 블록이 삭제되거나 다시 렌더링되도록 보장하기 때문에 부분 렌더링 프로세스를 갖습니다. 🎜🎜동시에 wx:if
도 lazy입니다. 초기 렌더링 조건이 false
이면 MINA는 아무것도 하지 않습니다. 조건이 실제가 될 때만 부분 렌더링이 시작됩니다. 🎜🎜반면 hidden
은 훨씬 간단하며 구성 요소는 항상 렌더링되며 단순히 표시 및 숨기기만 제어합니다. 🎜🎜일반적으로 wx:if
는 전환 비용이 더 높고 hidden
은 초기 렌더링 비용이 더 높습니다. 따라서 빈번한 전환이 필요한 경우에는 hidden
을 사용하는 것이 좋습니다. 런타임 중에 조건이 변경될 가능성이 없다면 wx:if
를 사용하는 것이 좋습니다. 🎜
<block/>
태그를 사용하여 여러 구성요소를 래핑하고 상단에 wx:if
Control을 사용할 수 있습니다. 속성. 🎜rrreee🎜참고: <block/>
는 구성 요소가 아니며 단지 래핑 요소일 뿐이며 페이지에서 렌더링을 수행하지 않으며 허용만 합니다. 제어 속성 . 🎜