小程序警告:Now you can provide attr `wx:key` for a `wx:for` to improve performance.

简介: 小程序警告:Now you can provide attr `wx:key` for a `wx:for` to improve performance.

问题

当我们在使用wx:for遍历列表数据的时候,可能会遇到以下警告:


Now you can provide attr `wx:key` for a `wx:for` to improve performance.



解析

字面意思呢,缺少wx:key属性,不过既然是警告,也就表示可有可无,那为什么警告呢?


当我们在使用wx:for遍历列表数据的时候,原则上来讲每条数据都是不一样的,所以需要使用 wx:key来指定列表中项目的唯一的标识符;但是也有可能会出现每条数据就是一样的情况,所以缺少wx:key属性是警告而不是异常报错。


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



解决

添加wx:key属性。wx:key 的值以两种形式提供:


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

保留关键字 *this 代表在 for 循环中的 item 本身,这种表示需要 item 本身是一个唯一的字符串或者数字,如:当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。


示例

<block wx:for="{{imgUrls}}" wx:key="item.id">
  ...
  </block>


或者


<block wx:for="{{imgUrls}}" wx:key="*this">
  ...
  </block>


参考:

https://developers.weixin.qq.com/miniprogram/dev/reference/wxml/list.html#wx:key



目录
相关文章
|
6月前
|
小程序 前端开发 JavaScript
uniapp转微信小程序编译报错 Bad attr `data-event-opts` with message
uniapp转微信小程序编译报错 Bad attr `data-event-opts` with message
|
6月前
|
小程序 容器
【微信小程序】-- WXML 模板语法 - 条件渲染 -- wx:if & hidden (十一)
【微信小程序】-- WXML 模板语法 - 条件渲染 -- wx:if & hidden (十一)
|
2月前
|
小程序 开发者
微信小程序之网络数据请求 wx:request的简单使用
这篇文章介绍了微信小程序中如何使用wx.request进行网络数据请求,包括请求的配置、请求的格式以及如何在开发阶段关闭请求的合法检验。
微信小程序之网络数据请求 wx:request的简单使用
|
2月前
|
小程序 前端开发 索引
微信小程序中的条件渲染和列表渲染,wx:if ,wx:elif,wx:else,wx:for,wx:key的使用,以及block标记和hidden属性的说明
这篇文章介绍了微信小程序中条件渲染和列表渲染的使用方法,包括wx:if、wx:elif、wx:else、wx:for、wx:key以及block标记和hidden属性的使用。
微信小程序中的条件渲染和列表渲染,wx:if ,wx:elif,wx:else,wx:for,wx:key的使用,以及block标记和hidden属性的说明
|
2月前
|
小程序
wx:for 微信小程序双重for嵌套如何获取内层的迭代对象
本文介绍了微信小程序中`wx:for`循环嵌套的使用方法,特别是如何在外层循环中访问内层循环的迭代对象。通过在外层`wx:for`中使用默认的`item`进行迭代,并在内层`wx:for`中通过`wx:for-item`属性指定迭代对象的名称,从而实现了双重`for`嵌套并获取内层迭代对象的目的。
|
3月前
|
小程序 前端开发 JavaScript
小程序中wx:if 和hidden的区别
在微信小程序中,wx:if和hidden都是用于控制元素显示与隐藏的方法,但它们在工作原理和性能上存在显著差异。
66 3
|
4月前
|
小程序 定位技术 开发工具
【微信小程序-原生开发+TDesign】通用功能页封装——地点搜索(含腾讯地图开发key 的申请方法)
【微信小程序-原生开发+TDesign】通用功能页封装——地点搜索(含腾讯地图开发key 的申请方法)
50 0
|
4月前
|
小程序 JavaScript 前端开发
【微信小程序-原生开发】实用教程06-轮播图、分类页签 tab 、成员列表(含Tdesign升级,切换调试基础库,设置全局样式,配置组件按需注入,添加图片素材,wx:for,生命周期 onLoad)
【微信小程序-原生开发】实用教程06-轮播图、分类页签 tab 、成员列表(含Tdesign升级,切换调试基础库,设置全局样式,配置组件按需注入,添加图片素材,wx:for,生命周期 onLoad)
123 0
|
5月前
|
小程序 JavaScript 索引
【微信开发】微信小程序多层wx:for嵌套的使用
【微信开发】微信小程序多层wx:for嵌套的使用
|
6月前
|
小程序 JavaScript 索引
【微信小程序】-- WXML 模板语法 - 列表渲染 -- wx:for & wx:key(十二)
【微信小程序】-- WXML 模板语法 - 列表渲染 -- wx:for & wx:key(十二)