這邊文章的內容主要講述在小程式中使用wx:key 提升wx:for 的渲染效率
之所以加上wx:key 會提升wx:for 的渲染效率,原因是(我的初步理解)
- 如果不加wx:key, 在setData 之後,如果array 內的資料如果改變,會重新建立前端的渲染物件
- 加上wx:key,重新渲染時,只是將對應的物件重新排序。未發生變化的對象,不會重新創建
參考官方的解釋
#當資料改變觸發渲染層重新渲染的時候,會校正帶有key 的元件,框架會確保他們被重新排序,而不是重新創建,以確保使元件保持自身的狀態,並且提高清單渲染時的效率。
需要驗證的問題
加上 wx:key 之後,會根據給定的 key 進行排序麼?
寫個簡單的測試頁面
<block wx:for="{{languages}}" wx:for-item="language" wx:key="id"> <text class="log-item">{{ language.id }} . {{ language.name }}</text> </block> data: { languages: [ {id: 小程式:使用 wx:key 提升 wx:for 的渲染效率, name: 'php'}, {id: 4, name: 'javascript'}, {id: 3, name: 'golang'}, {id: 2, name: 'python'}, {id: 5, name: 'java'}, ], },
從測試結果來看,並不會影響排序。
key 重新名稱時是否會報錯誤
data: { languages: [ {id: 小程式:使用 wx:key 提升 wx:for 的渲染效率, name: 'php'}, {id: 4, name: 'javascript'}, {id: 3, name: 'golang'}, {id: 2, name: 'python'}, {id: 5, name: 'java'}, ], }, click: function () { let language = {id: 5, name: 'kotlin'} let languages = this.data.languages languages.push(language) this.setData({ languages: languages }) }
微信小程式開發工具只會報一個警告,並不會導致程式崩潰
VM6265:2 Do not set same key {5} in wx:key
比較奇怪的是,這個警告只有在重新渲染時才會報,如果初始化時就使用同樣的key,並不會導致警告。
相關影片連線:小程式開發教學
以上是小程式:使用 wx:key 提升 wx:for 的渲染效率的詳細內容。更多資訊請關注PHP中文網其他相關文章!
陳述
本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章
刺客信條陰影:貝殼謎語解決方案
4 週前ByDDD
Windows 11 KB5054979中的新功能以及如何解決更新問題
3 週前ByDDD
在哪裡可以找到原子中的起重機控制鑰匙卡
4 週前ByDDD
<🎜>:死鐵路 - 如何完成所有挑戰
1 個月前ByDDD
如何修復KB5055523無法在Windows 11中安裝?
2 週前ByDDD

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版
視覺化網頁開發工具