微信小程序控制台提示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中数组的concat()方法使用介绍
Dec 18 Javascript
JavaScript排序算法之希尔排序的2个实例
Apr 04 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
Mar 01 Javascript
javascript中一些util方法汇总
Jun 10 Javascript
在JavaScript中使用开平方根的sqrt()方法
Jun 15 Javascript
js图片轮播效果实现代码
Apr 18 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
Nov 06 Javascript
jquery 禁止鼠标右键并监听右键事件
Apr 27 jQuery
Vue组件的使用教程详解
Jan 05 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
Feb 26 Javascript
js实现随机div颜色位置 类似满天星效果
Oct 24 Javascript
JavaScript实现字符串与HTML格式相互转换
Mar 17 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中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
2011/08/23 PHP
使用PHP函数scandir排除特定目录
2014/06/12 PHP
PHP实现全角字符转为半角方法汇总
2015/07/09 PHP
用javascript实现自定义标签
2007/05/08 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
js实现简单div拖拽功能实例
2015/05/12 Javascript
对JavaScript客户端应用编程的一些建议
2015/06/24 Javascript
javascript常用函数(1)
2015/11/04 Javascript
JavaScript+CSS无限极分类效果完整实现方法
2015/12/22 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
javascript与jquery动态创建html元素示例
2016/07/25 Javascript
webpack4.0打包优化策略整理小结
2018/03/30 Javascript
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
python实现人人网登录示例分享
2014/01/19 Python
python对数组进行反转的方法
2015/05/20 Python
Python中顺序表原理与实现方法详解
2019/12/03 Python
python画图常规设置方式
2020/03/05 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
欧姆龙医疗欧洲有限公司:Omron Healthcare Europe B.V
2020/06/13 全球购物
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
个人职业生涯规划书1500字
2013/12/31 职场文书
关于赌博的检讨书
2014/01/08 职场文书
知识竞赛活动方案
2014/02/18 职场文书
班组拓展活动方案
2014/08/14 职场文书
大学生联谊活动策划书(光棍节)
2014/10/10 职场文书
机动车交通事故协议书
2015/01/29 职场文书
2015年度物流工作总结
2015/04/30 职场文书
2015年银行信贷员工作总结
2015/05/19 职场文书
Vue Element UI自定义描述列表组件
2021/05/18 Vue.js