微信小程序控制台提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解决方法


Posted in Javascript onFebruary 21, 2019

本文实例讲述了微信小程序控制台提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解决方法。分享给大家供大家参考,具体如下:

在小程序控制台开发中遇到提示: warning: Now you can provide attr "wx:key" for a "wx:for" to improve performance.

警告提示如下图所示:

微信小程序控制台提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解决方法

查找资料与查看官方文档发现原因大致如下:

官方解释:

wx:key

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

网上资料:

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

1、wx:key="property" 其中property是代表在 for 循环的 array 中 item 的某个 property,该 property 的值需要是列表中唯一的字符串或数字,且不能动态改变。类似于字典的key值

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

当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组

件保持自身的状态,并且提高列表渲染时的效率。

不添加wx:key情况:

<block wx:for="{{navItems}}" wx:for-item="item" wx:for-index="itemIdx">
  <view bindtap="navItemTap" class="top-btn {{navBtnSelectIdx == itemIdx ? 'top-hoverd-btn' : ''}}" data-index="{{itemIdx}}" data-cid="{{item.cid}}">{{item.title}}</view>
</block>

会出现warning: Now you can provide attr "wx:key" for a "wx:for" to improve performance. 如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略。

推荐array 的 每一个item都添加一个唯一识别的property来管理,这样就可以去掉warning,如果使用保留关键字,好像会出现显示的item都是最后一个的

<block wx:for="{{navItems}}" wx:key="navItems" wx:for-item="item" wx:for-index="itemIdx">
  <view bindtap="navItemTap" class="top-btn {{navBtnSelectIdx == itemIdx ? 'top-hoverd-btn' : ''}}" data-index="{{itemIdx}}" data-cid="{{item.cid}}">{{item.title}}</view>
</block>

好了, 再也没有烦人的提示了!

注意:这里添加了wx:key="navItems"

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
javascript常用对话框小集
Sep 13 Javascript
js中cookie的添加、取值、删除示例代码
Oct 21 Javascript
JS中三目运算符和if else的区别分析与示例
Nov 21 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
Aug 06 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
Sep 16 Javascript
JS实现点击按钮获取页面高度的方法
Nov 02 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
Nov 23 Javascript
一次$.getJSON不执行的简单记录
Jul 19 Javascript
详解angular用$sce服务来过滤HTML标签
Apr 11 Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
Sep 01 Javascript
H5实现手机拍照和选择上传功能
Dec 18 Javascript
JavaScript 几种循环方式以及模块化的总结
Sep 03 Javascript
Element-UI中Upload上传文件前端缓存处理示例
Feb 21 #Javascript
详解Puppeteer前端自动化测试实践
Feb 21 #Javascript
javascript中join方法实例讲解
Feb 21 #Javascript
React 组件渲染和更新的实现代码示例
Feb 21 #Javascript
vue图片上传本地预览组件使用详解
Feb 20 #Javascript
Vue 后台管理类项目兼容IE9+的方法示例
Feb 20 #Javascript
浅谈小程序 setData学问多
Feb 20 #Javascript
You might like
php连接mssql的一些相关经验及注意事项
2013/02/05 PHP
php和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
关于PHP session 存储方式的详细介绍
2013/06/25 PHP
PHP实现PDO的mysql数据库操作类
2014/12/12 PHP
php自动获取关键字的方法
2015/01/06 PHP
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
如何创建一个JavaScript弹出DIV窗口层的效果
2013/09/25 Javascript
js实现鼠标划过给div加透明度的方法
2015/05/25 Javascript
JQuery日期插件datepicker的使用方法
2016/03/03 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
字符串反转_JavaScript
2016/04/28 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
微信小程序 支付简单实例及注意事项
2017/01/06 Javascript
javascript深拷贝、浅拷贝和循环引用深入理解
2018/05/27 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
用js编写留言板
2020/03/17 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
浅谈python 四种数值类型(int,long,float,complex)
2016/06/08 Python
Python制作词云的方法
2018/01/03 Python
Python设计模式之原型模式实例详解
2019/01/18 Python
python3使用print打印带颜色的字符串代码实例
2019/08/22 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
HTML5制作酷炫音频播放器插件图文教程
2014/12/30 HTML / CSS
英国最大的女士服装零售商:Bonmarché
2017/08/17 全球购物
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
美国便宜的横幅和标志印刷在线:Best of Signs
2019/05/29 全球购物
双十佳事迹材料
2014/01/29 职场文书
十八大宣传标语
2014/10/09 职场文书
丧事答谢词
2015/01/05 职场文书
公司禁烟通知
2015/04/23 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
初中班主任心得体会
2016/01/07 职场文书