微信小程序控制台提示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页面加载完执行事件代码
Feb 11 Javascript
Chrome扩展页面动态绑定JS事件提示错误
Feb 11 Javascript
javascript中的Function.prototye.bind
Jun 25 Javascript
javascript实现2016新年版日历
Jan 25 Javascript
jquery操作select元素和option的实例代码
Feb 03 Javascript
Bootstrap学习笔记之css样式设计(2)
Jun 07 Javascript
JavaScript Ajax编程 应用篇
Jul 02 Javascript
浅谈JS中的bind方法与函数柯里化
Aug 10 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
Mar 08 Javascript
js中作用域的实例解析
Mar 16 Javascript
zTree节点文字过多的处理方法
Nov 24 Javascript
JsonProperty 的使用方法详解
Oct 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在线代理转向代码
2012/05/05 PHP
php连接函数implode与分割explode的深入解析
2013/06/26 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
php数组保存文本与文本反编成数组实例
2014/11/13 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
JS按字节截取字符长度实例
2013/11/20 Javascript
js实现匹配时换色的输入提示特效代码
2015/08/17 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
2015/08/31 Javascript
百度多文件异步上传控件webuploader基本用法解析
2016/11/07 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
2017/01/13 Javascript
JavaScript省市级联下拉菜单实例
2017/02/14 Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
2017/03/21 jQuery
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
简单了解JavaScript中的执行上下文和堆栈
2019/06/24 Javascript
Vue学习笔记之计算属性与侦听器用法
2019/12/07 Javascript
微信小程序聊天功能的示例代码
2020/01/13 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
python数据结构之二叉树的统计与转换实例
2014/04/29 Python
跟老齐学Python之Import 模块
2014/10/13 Python
python爬虫租房信息在地图上显示的方法
2019/05/13 Python
Python Django 前后端分离 API的方法
2019/08/28 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
Python猴子补丁Monkey Patch用法实例解析
2020/03/23 Python
Python操作Jira库常用方法解析
2020/04/10 Python
Python读入mnist二进制图像文件并显示实例
2020/04/24 Python
纯CSS3打造属于自己的“小黄人”
2016/03/14 HTML / CSS
利用CSS3的线性渐变linear-gradient制作边框的示例
2016/06/02 HTML / CSS
会计实习期自我鉴定
2013/10/06 职场文书
机电专业大学生职业规划书范文
2014/02/25 职场文书
教师自我剖析材料
2014/09/29 职场文书
五年级小学生评语
2014/12/26 职场文书
2015羊年春节慰问信
2015/02/14 职场文书
大国崛起观后感
2015/06/02 职场文书
幼儿园托班教育随笔
2015/08/14 职场文书