千家信息网

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

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍微信小程序中如何在组件上使用wx:for控制属性绑定一个数组,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!wx:for在组件上使用 wx:for 控制属性绑定一
千家信息网最后更新 2025年02月01日微信小程序中如何在组件上使用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安全错误 数据库的锁怎样保障安全 潢川县公安局网络安全 网络安全周值得关注的 网络安全性多长时间开始一次检测 浙江现代软件开发怎么样 用什么做app软件开发 java 服务器 客户端 服务器上安装安全卫士 安卓数据库数据在哪看 传奇可以架设虚拟服务器吗 托管服务器有什么优点 吉林网络时间同步服务器云主机 linux数据库查询输出到文件 淄博软件开发编程语言 大数据中心网络安全应急演练 手机助手安全连接到服务器 天涯明月刀手游服务器怎么进 山东博赛网络技术有限公司cfa 西城区网络安全等级保护 神武4多久开放一次服务器 邯郸软件开发培训去哪 win7 网络安全 湖南网络安全等级测评中心名称 泗洪大型网络技术参考价格 全智能备份数据库 网络安全ai警察 10年软件开发工资石家庄 医保网络安全检查记录表 东莞销售软件开发费用是多少 预防网络安全海报 网易闪电邮服务器
0