微信小程序控制台提示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 相关文章推荐
jQuery 入门讲解1
Apr 15 Javascript
帮助避免错误的Javascript陷阱清单
May 31 Javascript
重载toString实现JS HashMap分析
Mar 13 Javascript
js中的push和join方法使用介绍
Oct 08 Javascript
node.js实现多图片上传实例
Jun 03 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
Mar 02 Javascript
深入剖析JavaScript中的函数currying柯里化
Apr 29 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
Jan 19 Javascript
angularjs封装$http为factory的方法
May 18 Javascript
微信小程序组件传值图示过程详解
Jul 31 Javascript
基于layui轮播图满屏是高度自适应的解决方法
Sep 16 Javascript
vant IndexBar实现的城市列表的示例代码
Nov 20 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学习 变量使用总结
2011/03/24 PHP
基于empty函数的判断详解
2013/06/17 PHP
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
jquery中$.post()方法的简单实例
2014/02/04 Javascript
Jquery Ajax方法传值到action的方法
2014/05/11 Javascript
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
怎样判断jQuery当前元素是隐藏还是显示
2016/11/23 Javascript
JS正则表达式验证密码格式的集中情况总结
2017/02/23 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
微信小程序日历效果
2018/12/29 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
vue elementUI使用tabs与导航栏联动
2019/06/21 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
Vue+Node实现的商城用户管理功能示例
2019/12/23 Javascript
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
基于vue+element实现全局loading过程详解
2020/07/10 Javascript
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
python如何统计序列中元素
2020/07/31 Python
Python中格式化字符串的四种实现
2020/05/26 Python
python 监控logcat关键字功能
2020/09/04 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
Python爬虫之App爬虫视频下载的实现
2020/12/08 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
运动会稿件300字
2014/02/14 职场文书
民生工作实施方案
2014/05/31 职场文书
毕业生见习报告总结
2014/11/08 职场文书
诚实守信主题班会
2015/08/13 职场文书
基于Redis实现分布式锁的方法(lua脚本版)
2021/05/12 Redis
vue elementUI批量上传文件
2022/04/26 Vue.js