在开发微信小程序的时候,有时我们需要根据条件来决定一些内容是否渲染(显示或隐藏)
例如当条件为true时,view组件会渲染出来,为false时,不会渲染出来。
1.wx:if的使用
第一种直接传入:
<view wx:if="{{true}}">哈哈哈</view>//view组件会渲染出来 <view wx:if="{{false}}">哈哈哈</view> //view组件不会渲染出来 |
第二种变量控制:
定义一个变量为isShow,在js的页面的初始数据data里面变换true或false
.wxml
<view wx:if="{{isShow}}">哈哈哈</view> |
.js
data: { isShow:true, //当这个变量为true,渲染出来 //false,不会渲染出来 }, |
第三种切换控制:通过组件,切换是否显示内容
例如给button组件一个点击属性,在js里面通过setData改变isShow这个变量,isShow: !this.data.isShow,即对原来的值取反
.wxml
<button bindtap="handleSwitchShow">切换显示</button> <view wx:if="{{isShow}}">哈哈哈</view> |
.js
/** * 生命周期函数--监听页面加载 */ onLoad: function (options) {
}, handleSwitchShow() { this.setData({ isShow: !this.data.isShow }) }, |
2.wx:else/wx:elif的使用
用于多个条件的判断,定义一个score变量,给它一个数值,data: {score:90 }
通过wx:elif/wx:else判断
.wxml
<view wx:if="{{score >=90}}">优秀</view> <view wx:elif="{{score >=80}}">良好</view> <view wx:elif="{{score >=60}}">及格</view> <view wx:else>不及格</view> |
.js
/** * 页面的初始数据 */ data: { score:90, }, |
3.wx:if与hidden区别
wx:if 与 hidden 都可以控制微信小程序中元素的显示与否。
区别:
wx:if 是遇 true 显示,遇 false 不显示。它将一个组件隐藏时,该组件没有渲染,即不存在没有创建。用于显示和隐藏切换频率低时。
hidden 是遇 false 显示,遇 true 不显示。它将一个组件隐藏时,该组件依然存在,渲染但不显示,仅仅是通过css的display:none属性控制。用于显示和隐藏切换频率高时。