目录

​​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和上面的一样

效果:

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

 

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




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




<block wx:if="{{true}}">
<view>view1</view>
<view>view2</view>
<view>view3</view>
</block>

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

 

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



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







🍉3. hidden




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




<view hidden="{{false}}">hidden</view>

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

 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 表示。





效果:




 




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


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


使用 wx:for-index 可以指定 当前循环项的索引 的变量名


使用 wx:for-item 可以指定 当前项 的变量名


示例代码如下:



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


🥝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:'白'},
]
}


})

效果:

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