【微信小程序】条件渲染 列表渲染 原来这样用?

本文详细介绍了小程序WXML中的wx:if条件渲染,包括基本语法、wx:elif和wx:else的使用,以及hidden控制元素隐藏的方法。此外,还涵盖了wx:for循环用于列表渲染,展示了如何根据数组动态生成元素,以及wx:key的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

WXML 模板语法 - 条件渲染

🍊1. wx:if

🍋2. 结合 使用 wx:if

🍉3. hidden

🍓4. wx:if 与 hidden 的对比

WXML 模板语法 - 列表渲染

🥭1. wx:for

🍍2. 手动指定索引和当前项的变量名

🥝3. wx:key 的使用


WXML 模板语法 - 条件渲染

🍊1. wx:if

在小程序中,使用 wx:if="{{ condition }}" 来判断是否需要渲染该代码块:
<view wx:if="{{condition}}">ture</view>
也可以用 wx:elif wx:else 来添加 else 判断:
<view wx:if="{{type==1}}">type==1</view>
<view wx:elif="{{type==2}}">type==2</view>
<view wx:else>type==3</view>

js:

Page({

data: {
  type:1
},


})

因为type的值为1,所以:

 

例如:

WXML:

<view wx:if="{{type==1}}">主色调</view>
<view wx:elif="{{type==2}}">普通按钮</view>
<view wx:else>无</view>

<button type="primary" size="mini" wx:if="{{type==1}}">主色调</button>
<button size="mini" wx:if="{{type==2}}">普通按钮</button>

JS和上面的一样

效果:

 

🍋2. 结合 <block> 使用 wx:if

如果要 一次性控制多个组件的展示与隐藏 ,可以使用一个 <block></block> 标签将多个组件包装起来,并在 <block> 标签上使用 wx:if 控制属性,示例如下:
<block wx:if="{{true}}">
<view>view1</view>
<view>view2</view>
<view>view3</view>
</block>

 

注意: <block> 并不是一个组件 ,它只是一个包裹性质的容器, 不会在页面中做任何渲染。

🍉3. hidden

在小程序中,直接使用 hidden="{{ condition }}" 也能控制元素的显示与隐藏:
<view hidden="{{false}}">hidden</view>

 hidden 中  false  表示不隐藏组件

true表示隐藏组件

🍓4. wx:if 与 hidden 的对比

① 运行方式不同
wx:if 以 动态创建和移除元素 的方式,控制元素的展示与隐藏
hidden 以 切换样式 的方式(display: none/block;),控制元素的显示与隐藏
② 使用建议
频繁切换 时,建议使用 hidden
控制条件复杂 时,建议使用 wx:if 搭配 wx:elif、wx:else 进行展示与隐藏的切换

WXML 模板语法 - 列表渲染

🥭1. wx:for

通过 wx:for 可以根据指定的数组,循环渲染重复的组件结构,语法示例如下:
<view wx:for="{{arry}}">
索引是:{{index}},item项是:{{item}}
</view>

JS:

Page({

data: {
  arry:['橘子','苹果','香蕉']
}


})

默认情况下,当前循环项的 索引 index 表示; 当前循环项 item 表示。
效果:

 

🍍2. 手动指定索引和当前项的变量名

使用 wx:for-index 可以指定 当前循环项的索引 的变量名
使用 wx:for-item 可以指定 当前项 的变量名
示例代码如下:

🥝3. wx:key 的使用

类似于 Vue 列表渲染中的 :key ,小程序在实现列表渲染时,也建议为渲染出来的列表项指定唯一的 key 值, 从而 提高渲染的效率 ,示例代码如下:
<view wx:for="{{userList}}" wx:key="id">
{{item.name}}
</view>

 JS:

Page({

data: {
 userList:[
   {id:1,name:'热'},
   {id:2,name:'爱'},
   {id:3,name:'编'},
   {id:4,name:'程'},
   {id:5,name:'的'},
   {id:6,name:'小'},
   {id:7,name:'白'},
   {id:8,name:'白'},
 ]
}


})

效果:

评论 95
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不爱编程的小白白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值