您的位置:首页 > 移动开发 > 微信开发

微信小程序 条件渲染 脚本控制view的隐藏显示

2017-05-18 18:15 861 查看

实际应用中 比如根据登录或其他状态属性的改变来动态改变某一页面的显示内容,可以用到此方法。

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
 较好。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: