
在小程序开发中,WXML模板语法提供了列表渲染的功能,允许开发者通过指定的数组来动态生成一组元素。wx:for指令是实现这一功能的关键。
wx:for指令的基本语法如下:
<view wx:for="{{array}}" wx:for-index="indexName" wx:for-item="itemName">
<!-- 循环体内容 -->
</view>index.wxml文件
<view wx:for="{{array}}">
索引是:{{index}} 当前项是:{{item}}
</view>array是一个数组,wx:for指令会遍历这个数组,并为数组中的每一项生成一个<view>元素。在生成的每个<view>元素中,{{index}}会被替换为当前项的索引(从0开始),{{item}}会被替换为当前项的值。
index.js文件
Page({
data: {
array:['张三','男',24,'上海',178.8]
},
})结果:

wx:for指令在小程序开发中有着广泛的应用场景,如:
在小程序开发中,WXML(WeiXin Markup Language)是类似于HTML的标记语言,用于描述小程序的结构。在列表渲染中,wx:for是一个常用的指令,它允许你遍历一个数组并生成相应的元素。默认情况下,wx:for会使用index和item作为当前项的索引和值的变量名,但你也可以手动指定这些变量名。
<view wx:for="{{array}}" wx:for-index="idx" wx:for-item="itemName">
索引是:{{idx}} 当前项是:{{itemName}}
</view>渲染结果
假设数组array的内容为['第一项', '第二项', '第三项'],那么上述代码将渲染出以下结果:
索引是:0 当前项是:第一项
索引是:1 当前项是:第二项
索引是:2 当前项是:第三项这个案例将展示如何手动指定索引和当前项的变量名,并遍历一个简单的数组来生成一个列表。列表中的每个项将显示它的索引和值。
index.wxml文件
<!-- 假设你有一个名为items的数组,它包含了一些字符串 -->
<view class="container">
<!-- 使用wx:for指令遍历items数组 -->
<!-- 手动指定索引变量名为idx,当前项变量名为itemValue -->
<block wx:for="{{items}}" wx:for-index="idx" wx:for-item="itemValue">
<!-- 创建一个view元素来显示每个项 -->
<view class="list-item">
<!-- 显示索引 -->
<text>索引: {{idx}}</text>
<!-- 显示当前项的值 -->
<text>值: {{itemValue}}</text>
</view>
</block>
</view><view class="container">:这是一个容器视图,用于包含整个列表。<block wx:for="{{items}}" wx:for-index="idx" wx:for-item="itemValue">: <block>标签是一个不会渲染成任何DOM元素的容器,它只用于包裹其他元素并应用样式或逻辑。在这里,我们使用<block>来包裹wx:for循环,因为它不会引入额外的布局开销。<view class="list-item">:这是一个列表项视图,用于显示每个项的索引和值。<text>索引: {{idx}}</text>:显示当前项的索引。<text>值: {{itemValue}}</text>:显示当前项的值。index.js文件
Page({
data: {
items: ['苹果', '香蕉', '橙子'] // 示例数组
}
});结果:

在小程序开发中,当使用wx:for指令进行列表渲染时,为了提高渲染效率和性能,建议为渲染出来的列表项指定唯一的key值。这个key值类似于Vue.js中的:key属性,它可以帮助框架更高效地识别和更新列表中的元素。
1.第一步
定义数据:首先,在data对象中定义一个数组(也就是在index.js文件中),数组中的每个元素都应该有一个唯一的标识符(如id)。
data: {
userList: [
{ id: 1, name: '小红' },
{ id: 2, name: '小黄' },
{ id: 3, name: '小白' }
]
}2.第二步
在wxml模板中使用wx:for和wx:key,也就是在index.wxml文件中:
<view wx:for="{{userList}}" wx:key="id">
{{item.name}}
</view>wx:for指令遍历userList数组,wx:key属性指定了数组中每个元素的唯一标识符为id字段。这样,当userList数组中的数据发生变化时,框架可以根据id字段快速定位到需要更新的元素。

本案例将展示如何在小程序中使用wx:key属性来优化列表渲染。我们将定义一个包含用户信息的数组userList,并在WXML模板中使用wx:for指令遍历这个数组。同时,我们将为列表项指定唯一的key值,以提高渲染效率。
index.js文件
// data 数据
Page({
data: {
userList: [
{ id: 1, name: '小红' },
{ id: 2, name: '小黄' }, // 注意:原图片中的逗号使用了中文逗号,这里已更正为英文逗号
{ id: 3, name: '小白' }
]
}
});index.wxml文件
<!-- wxml 结构 -->
<view wx:for="{{userList}}" wx:key="id">
<!-- 使用item变量来访问当前遍历项的数据 -->
<!-- 这里{{item.name}}表示访问当前项的name属性 -->
<text>{{item.name}}</text>
</view>结果:
