?列表渲染 就是指通過循環遍歷一個數組或對象,將其中的每個元素渲染到頁面上
在組件上使用 wx:for 屬性綁定一個數組或對象,既可使用每一項數據重復渲染當前組件
每一項的變量名默認為item,下標變量名默認為index
在使用 wx:for進行遍歷的時候,建議加上wx:key 屬性,wx:key的值以兩種形式提供:
- 字符串: 代表需要遍歷的array 中 item的某個屬性,該屬性的值需要是列表中唯一的字符串或數字,且不能動態改變
- 保留關鍵字*this 代表在for 循環中的item 本身,當item 本身是一個唯一的字符串或者數字時可以使用
注意事項:
- 如果不加wx:key,會報一個warning,如果明確知道該列表是靜態,即以后數據不會改變,或者不必關注其順序,可以選擇忽略。
- 在給 wx:key 添加屬性值的時候,不需要使用雙大括號語法,直接使用遍歷的array中item的某個屬性
<!--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>
// 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}}})