個人感覺官方給出的例 子不是很明確,官方解釋如下:
wx:key
如果列表中專案的位置會動態改變或者有新的專案新增到列表中,並且希望列表中的專案保持自己的特徵和狀態(如 中的輸入內容,的選中狀態),需要使用 wx:key 來指定列表中專案的唯一的識別符號。
wx:key 的值以兩種形式提供
字串,代表在 for 迴圈的 array 中 item 的某個 property,該 property 的值需要是列表中唯一的字串或數字,且不能動態改變。
保留關鍵字 *this 代表在 for 迴圈中的 item 本身,這種表示需要 item 本身是乙個唯一的字串或者數字,如:
當資料改變觸發渲染層重新渲染的時候,會校正帶有 key 的元件,框架會確保他們被重新排序,而不是重新建立,以確保使組
件保持自身的狀態,並且提高列表渲染時的效率。
如不提供 wx:key,會報乙個 warning, 如果明確知道該列表是靜態,或者不必關注其順序,可以選擇忽略。
示例**:?
12
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<
switch
wx:
for
=
"}"
wx:key=
"unique"
style=
"display: block;"
> }
switch
add to the front
<
switch
wx:
for
=
"}"
wx:key=
"*this"
style=
"display: block;"
> }
add to the front
page(,
,
,
,
,
,
],
numberarray: [1, 2, 3, 4]
},
switch
:
function
(e)
this
.setdata()
},
addtofront:
function
(e) ].concat(
this
.data.objectarray)
this
.setdata()
},
addnumbertofront:
function
(e))
}
})
這裡寫下個人的理解,有什麼不對的地方希望大家指正:以為例,如果沒有wx:key,選中其中的某個按鈕的時候,改變其順序 或新增選項的時,選中的按鈕時不回跟隨 上個按鈕改變順序的,會一直在固定位子,如果如果有wx:key則相反,適用於列表或其他標籤可以改變順序或新增專案的情況
微信小程式 wx key
在實際開發過程中遇到 warning now you can provide attr wx key for a wx for to improve performance.上網查詢資料與檢視官方文件發現原因大致如下 官方解釋 wx key 如果列表中專案的位置會動態改變或者有新的專案新增到列表中,...
微信小程式wx key
1 wx key 字串 這個 字串 代表在 for 迴圈的 array 中 item 的某個 屬性 該 屬性 的值需要是列表中唯一的字串或數字,且不能動態改變。用於被遍歷的元件需要多個屬性的時候。data 2 wx key this 保留關鍵字 this 代表在 for 迴圈中的 item 本身,這...
微信小程式 wx key
上網查詢資料與檢視官方文件發現原因大致如下 官方解釋 wx key 如果列表中專案的位置會動態改變或者有新的專案新增到列表中,並且希望列表中的專案保持自己的特徵和狀態 如 中的輸入內容,的選中狀態 需要使用 wx key 來指定列表中專案的唯一的識別符號。網上資料 wx key 的值以兩種形式提供 ...