微信小程序控制台提示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 相关文章推荐
IE和Firefox下javascript的兼容写法小结
Dec 10 Javascript
document.documentElement和document.body区别介绍
Sep 16 Javascript
javascript验证上传文件的类型限制必须为某些格式
Nov 14 Javascript
Node.js插件的正确编写方式
Aug 03 Javascript
分享十五款 jQuery 社交网络分享插件
May 16 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
May 17 Javascript
js利用clipboardData实现截屏粘贴功能
Oct 12 Javascript
layui.js实现的表单验证功能示例
Nov 15 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
Jan 08 Javascript
node.js中express模块创建服务器和http模块客户端发请求
Mar 06 Javascript
微信小程序常用的3种提示弹窗实现详解
Sep 19 Javascript
详解javascript中var与ES6规范中let、const区别与用法
Jan 11 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自定义函数之递归删除文件及目录
2010/08/08 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
PHPExcel导出2003和2007的excel文档功能示例
2017/01/04 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
JavaScript实现SHA-1加密算法的方法
2015/03/11 Javascript
jquery插件splitScren实现页面分屏切换模板特效
2015/06/16 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
2015/10/15 Javascript
javascript显示上周、上个月日期的处理方法
2016/02/03 Javascript
深入理解JS DOM事件机制
2016/08/06 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
小程序实现多选框功能
2018/10/30 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python内存读写操作示例
2018/07/18 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
Python----数据预处理代码实例
2019/03/20 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
2020/04/24 Python
Python requests接口测试实现代码
2020/09/08 Python
python 6行代码制作月历生成器
2020/09/18 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
2014/03/05 面试题
计算机大学生职业生涯规划书范文
2014/02/19 职场文书
医学求职自荐信
2014/06/21 职场文书
导游词之安徽九华山
2019/09/18 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书
Python Django获取URL中的数据详解
2021/11/01 Python
MYSQL 表的全面总结
2021/11/11 MySQL
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers