千家信息网

微信小程序中如何在组件上使用wx:for控制属性绑定一个数组

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍微信小程序中如何在组件上使用wx:for控制属性绑定一个数组,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!wx:for在组件上使用 wx:for 控制属性绑定一
千家信息网最后更新 2026年11月02日微信小程序中如何在组件上使用wx:for控制属性绑定一个数组

这篇文章主要介绍微信小程序中如何在组件上使用wx:for控制属性绑定一个数组,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

wx:for


在组件上使用 wx:for 控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。

默认数组的当前项的下标变量名默认为 index,数组当前项的变量名默认为 item

  {{index}}: {{item.message}}
Page({  data: {    array: [{      message: 'foo',    }, {      message: 'bar'}]  }})

使用 wx:for-item 可以指定数组当前元素的变量名,

使用 wx:for-index 可以指定数组当前下标的变量名:

  {{idx}}: {{itemName.message}}

wx:for 也可以嵌套,下边是一个九九乘法表

    {{i}} * {{j}} = {{i * j}}  

block wx:for


类似 block wx:if,也可以将 wx:for 用在标签上,以渲染一个包含多节点的结构块。例如:

   {{index}}:    {{item}} 

wx:key


如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态(如 中的输入内容, 的选中状态),需要使用 wx:key 来指定列表中项目的唯一的标识符。

wx:key 的值以两种形式提供

  1. 字符串,代表在 for 循环的 array 中 item 的某个 property,该 property 的值需要是列表中唯一的字符串或数字,且不能动态改变。

  2. 保留关键字 *this 代表在 for 循环中的 item 本身,这种表示需要 item 本身是一个唯一的字符串或者数字,如:

当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。

如不提供 wx:key,会报一个 warning, 如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略。

示例代码:

 {{item.id}}  {{item}} 
Page({  data: {    objectArray: [      {id: 5, unique: 'unique_5'},      {id: 4, unique: 'unique_4'},      {id: 3, unique: 'unique_3'},      {id: 2, unique: 'unique_2'},      {id: 1, unique: 'unique_1'},      {id: 0, unique: 'unique_0'},    ],    numberArray: [1, 2, 3, 4]  },  switch: function(e) {const length = this.data.objectArray.lengthfor (let i = 0; i < length; ++i) {      const x = Math.floor(Math.random() * length)      const y = Math.floor(Math.random() * length)      const temp = this.data.objectArray[x]      this.data.objectArray[x] = this.data.objectArray[y]      this.data.objectArray[y] = temp    }this.setData({      objectArray: this.data.objectArray    })  },  addToFront: function(e) {const length = this.data.objectArray.lengththis.data.objectArray = [{id: length, unique: 'unique_' + length}].concat(this.data.objectArray)this.setData({      objectArray: this.data.objectArray    })  },  addNumberToFront: function(e){this.data.numberArray = [ this.data.numberArray.length + 1 ].concat(this.data.numberArray)this.setData({      numberArray: this.data.numberArray    })  }})

注意:

当 wx:for 的值为字符串时,会将字符串解析成字符串数组

  {{item}}

等同于

  {{item}}

注意: 花括号和引号之间如果有空格,将最终被解析成为字符串

  {{item}}

等同于

  {{item}}

以上是"微信小程序中如何在组件上使用wx:for控制属性绑定一个数组"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

数组 字符 字符串 组件 变量 项目 属性 控制 内容 状态 程序 下标 代表 前项 动态 数字 数据 篇文章 循环 之间 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司经营范围 互联网科技革命 互联网科技英文翻译 互联网巨头投资的硬核科技 互联网之后的科技是什么 科技与互联网哪个更好 宁夏科技产业互联网案例 科技类公司包括互联网吗 浙南科技城互联网大厦建设工程 元气玛特互联网科技公司是外包吗 伍佰万互联网科技怎么赚钱 互联网科技快讯热点 济南小医互联网科技有限公司招聘 兰石爱特工业互联网科技分公司 互联网科技博主张洲 陕西彩京云互联网科技有限公司 安徽九吞吴互联网科技有限公司 重庆科技产业互联网有哪些 科技发展第三阶段互联网时代 小牛互联网科技有限公司地址 互联网科技小贷 嘟嘟瓜互联网科技 互联网科技汛 深圳互联网科技怎么样 互联网科技产品 青岛中康互联网医疗科技有限公司 燊美集互联网科技有限公司 互联网行业科技股 湖北辰鑫科技互联网 同城互联网络科技
0