微信小程序--条件渲染&列表渲染
条件渲染:
wx:if 表示判断单个组件 block wx:if 表示判断块,也即判断多个组件
<view wx:if= "{
{condition}}"> true </view>
//如果condition为真,则显示 true ,否则不显示
使用wx:elif和wx:else来添加一个else if 和else块:
<view wx:if= "{
{length > 5}}"> 大于5</view>
<view wx:elif= "{
{length > 2}}"> 大于2</view>
<view wx:else> 小于等于2</view>
-
block wx:if 用block标签将多个组件包装起来,并在上面使用wx:if,wx:elif,wx:else控制属性,即可一次性判断多个组件
<block wx:if= "{
{true}}">
<view>v1</view>
<view>v2</view>
</block>
//这样即可一次性控制多个组件
需要注意的是block并不是一个组件,它仅仅是一个包装元素,它不会再页面上作出任何的渲染,只接受控制属性 示例:
//wxml
<button bindtap=change_color>变色 </button>
<block wx:if="{
{b==true}}">
<view class=bg_green>123123123</view>
</block>
<block wx:elif="{
{b==false}}">
<view class=bg_blue>456456</view>
</block>
//js
Page({
data:{
b:false
},
change_color: function () {
var ab = this.data.b;
this.setData({
b: !ab })
}
})
//wxss
.bg_green{
height: 100rpx;
background: green;
}
.bg_blue{
height: 100rpx;
background: blue;
}
效果显示:
列表渲染
wx:for 列表渲染单个组件 block wx:for 列表渲染对个组件 wx:key 指定唯一标识符
-
wx:for 在组件上使用wx:for控制属性绑定一个数组,即可使用该数组中各项的数据重复渲染该组件;数组当前项的下标变量名默认为index,当前项的变量名默认为item
//wxml
<view wx:for= "{
{array}}">
{
{
index}}:{
{
item.msg}}
</view>
//js
Page({
data:{
array:[{
id:1,msg:the first},{
id:2,msg:the second}]
}
})
<view wx:for= "{
{array}}" wx:for-index= "idx" wx:for-item= "itemName">
{
{
idx}}:{
{
itemName.msg}}
</view>
block wx:for 如果想渲染一个包括多节点的结构块,这时wx:for需要应用在block标签上
<block wx:for="{
{[1,2,3]}}">
<view> {
{
index}}:</view>
<view> {
{
item}} </view>
</block>
wx:key 如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态,则需要wx:key来指定列表中项目的位移标识符
//wxml
<switch wx:for="{
{objArray}}" wx:key="unq">
{
{
item.id}}+{
{
item.unq}}
</switch>
//js
Page({
data: {
objArray:[
{
id: 5, unq: u5},
{
id: 4, unq: u4 },
{
id: 3, unq: u3 },
{
id: 2, unq: u2 },
{
id: 1, unq: u1 },
{
id: 0, unq: u0 }
]
}
})
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
微信小程序使用数字滚动动画
