小程序33-列表渲染

列表渲染 就是指通过循环遍历一个数组或对象,将其中的每个元素渲染到页面上

在组件上使用 wx:for 属性绑定一个数组或对象,既可使用每一项数据重复渲染当前组件
每一项的变量名默认为item,下标变量名默认为index

在使用 wx:for进行遍历的时候,建议加上wx:key 属性,wx:key的值以两种形式提供:

  1. 字符串: 代表需要遍历的array 中 item的某个属性,该属性的值需要是列表中唯一的字符串或数字,且不能动态改变
  2. 保留关键字*this 代表在for 循环中的item 本身,当item 本身是一个唯一的字符串或者数字时可以使用

注意事项:

  1. 如果不加wx:key,会报一个warning,如果明确知道该列表是静态,即以后数据不会改变,或者不必关注其顺序,可以选择忽略。
  2. 在给 wx:key 添加属性值的时候,不需要使用双大括号语法,直接使用遍历的array中item的某个属性
html 复制代码
<!--pages/profile/profile.wxml-->

<!-- 如果需要进行列表渲染,需要使用 wx:for属性 -->
<!-- 属性值需要使用双大括号进行包裹 -->
<!-- 每一项的变量名默认是item -->
<!-- 每一项下标的变量名默认是 index -->
<view wx:for="{{ numList }}">{{ item }} - {{ index }}</view>

<!-- 如果渲染的是数组,item:数组的每一项,index:下标 -->
<view wx:for="{{ obj }}">{{ item }} - {{ index }}</view>

<!-- wx: key 提升性能 -->
<!-- wx: key 属性值有两种添加方式 -->
<!-- 1.字符串,需要遍历数组item的某个属性,要求该属性是列表中唯一的字符串或者数字,不能进行动态改变 -->
<!-- 2.保留关键字 *item 代表的是item本身,item本身是唯一的字符串或者数字 -->
<view wx:for="{{ fruitList }}" wx:key="id">{{ item.name }}</view>
<view wx:for="{{ numList }}" wx:key="*this">{{ item }}</view>
javascript 复制代码
// pages/profile/profile.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    numList: [1,2,3],
    fruitList: [
      { id: 1, name: '🍎' },
      { id: 2, name: '🍋' },
      { id: 3, name: '🍅' }
    ],
    obj: {
      name: 'tom',
      age: 10
    }
  }


})
相关推荐
行者969 分钟前
Flutter跨平台开发适配OpenHarmony:进度条组件的深度实践
开发语言·前端·flutter·harmonyos·鸿蒙
云和数据.ChenGuang10 分钟前
Uvicorn 是 **Python 生态中用于运行异步 Web 应用的 ASGI 服务器**
服务器·前端·人工智能·python·机器学习
IT_陈寒11 分钟前
SpringBoot 3.0实战:这5个新特性让你的开发效率提升50%
前端·人工智能·后端
遗憾随她而去.20 分钟前
Webpack 面试题
前端·webpack·node.js
我要敲一万行21 分钟前
前端文件上传
前端·javascript
恋猫de小郭23 分钟前
Tailwind 因为 AI 的裁员“闹剧”结束,而 AI 对开源项目的影响才刚刚开始
前端·flutter·ai编程
要加油哦~23 分钟前
算法 | 整理数据结构 | 算法题中,JS 容器的选择
前端·javascript·算法
一只小bit23 分钟前
Qt 重要控件:多元素控件、容器类控件及布局管理器
前端·c++·qt
计算机徐师兄32 分钟前
Java基于微信小程序的食堂线上预约点餐系统【附源码、文档说明】
java·微信小程序·食堂线上预约点餐系统小程序·食堂线上预约点餐微信小程序·java食堂线上预约点餐小程序·食堂线上预约点餐小程序·食堂线上预约点餐系统微信小程序
一 乐9 小时前
婚纱摄影网站|基于ssm + vue婚纱摄影网站系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端