微信小程序控制臺提示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解決方法。分享給大家供大家參考,具體如下:
在小程序控制臺開發(fā)中遇到提示: warning: Now you can provide attr "wx:key" for a "wx:for" to improve performance.
警告提示如下圖所示:

查找資料與查看官方文檔發(fā)現(xiàn)原因大致如下:
官方解釋:
wx:key
如果列表中項目的位置會動態(tài)改變或者有新的項目添加到列表中,并且希望列表中的項目保持自己的特征和狀態(tài)(如 <input/> 中的輸入內(nèi)容,<switch/> 的選中狀態(tài)),需要使用 wx:key 來指定列表中項目的唯一的標識符。
網(wǎng)上資料:
wx:key 的值以兩種形式提供
1、wx:key="property" 其中property是代表在 for 循環(huán)的 array 中 item 的某個 property,該 property 的值需要是列表中唯一的字符串或數(shù)字,且不能動態(tài)改變。類似于字典的key值
2、wx:key="*this", 保留關(guān)鍵字 *this 代表在 for 循環(huán)中的 item 本身,這種表示需要 item 本身是一個唯一的字符串或者數(shù)字,如:
當數(shù)據(jù)改變觸發(fā)渲染層重新渲染的時候,會校正帶有 key 的組件,框架會確保他們被重新排序,而不是重新創(chuàng)建,以確保使組
件保持自身的狀態(tài),并且提高列表渲染時的效率。
不添加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>
會出現(xiàn)warning: Now you can provide attr "wx:key" for a "wx:for" to improve performance. 如果明確知道該列表是靜態(tài),或者不必關(guān)注其順序,可以選擇忽略。
推薦array 的 每一個item都添加一個唯一識別的property來管理,這樣就可以去掉warning,如果使用保留關(guān)鍵字,好像會出現(xiàn)顯示的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"
希望本文所述對大家微信小程序開發(fā)有所幫助。
相關(guān)文章
js和jquery設(shè)置disabled屬性為true使按鈕失效
這篇文章主要介紹了js和jquery使按鈕失效的方法,需要的朋友可以參考下2014-08-08
重學 JS:為啥 await 不能用在 forEach 中詳解
這篇文章主要介紹了重學 JS:為啥 await 不能用在 forEach 中,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04
window.parent調(diào)用父框架時 ie跟火狐不兼容問題
window.parent調(diào)用父框架時,ie跟火狐不兼容問題!2009-07-07
JS判斷移動端訪問設(shè)備并加載對應(yīng)CSS樣式
JS判斷不同web訪問環(huán)境,主要針對移動設(shè)備,提供相對應(yīng)的解析方案,本例是加載不同的css樣式2014-06-06
Three.js使用OrbitControls后修改相機旋轉(zhuǎn)方向無效解決辦法
three.js是用javascript寫的基于webGL的第三方3D庫,下面這篇文章主要給大家介紹了關(guān)于Three.js使用OrbitControls后修改相機旋轉(zhuǎn)方向無效的解決辦法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-01-01

