442
搜狐
微信小程序開發教程基礎篇8-數據綁定下
教程接上篇,當需要展示一組數據時,可以使用
其中
index
是當前數據索引的默認變量名,
item
是當前數據項的默認變量名。 也可以使用
和
來指定別名
也可以嵌套使用,如下麵是一個九九乘法表
類似
,也可以將
用在標簽上,以渲染一個包含多節點的結構塊
要理解為什麼需要
,先來看一個例子:
上麵的代碼創建了兩個checkbox組件和一個按鈕,當點擊按鈕會在最上方新增一個
checkbox
組件。 編譯代碼,會顯示如下界麵:
點擊按鈕,界麵如下:
ok,到這裏一切正常 ,為了更好的說明問題,加入checkbox選中事件的處理,當checkbox被選中時,將文字修改為"我被選中了",相關代碼如下:
當選中第一個checkbox時,界麵如下
這時如果點擊添加組件按鈕會怎樣呢,期望的效果應該如下
然而實際效果確是下圖這樣的
可以看到渲染引擎並沒有將選中的效果和數據綁定起來,導致出現了預期之外的結果。如果想要達到預期效果,就要使用
{} 在上方添加一個新的check組件
將.wxml文件修改為上述代碼所示,就可以實現預期效果,重點就在
這一句
如果列表中項目的位置會動態改變或者有新的項目添加到列表中,並且希望列表中的項目保持自己的特征和狀態(如 中的輸入內容, 的選中狀態),需要使用
來指定列表中項目的唯一的標識符。
的值以兩種形式提供 1 字符串,代表在 for 循環的 array 中 item 的某個 property,該 property的值需要是列表中唯一的字符串或數字,且不能動態改變。 2 保留關鍵字
*this
代表在 for 循環中的 item 本身,這種表示需要item 本身是一個唯一的字符串或者數字,
上麵引用自微信官方教程。除了用於保持視圖組件的狀態外,使用
還有助於提高渲染效率
當數據改變觸發渲染層重新渲染的時候,會校正帶有 key的組件,框架會確保他們被重新排序,而不是重新創建,以確保使組件保持自身的狀態,並且提高列表渲染時的效率。
最後更新:2017-10-08 07:50:25