搜尋
首頁微信小程式小程式開發小程式:使用 wx:key 提升 wx:for 的渲染效率


這邊文章的內容主要講述在小程式中使用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: &#39;php&#39;},
    {id: 4, name: &#39;javascript&#39;},
    {id: 3, name: &#39;golang&#39;},
    {id: 2, name: &#39;python&#39;},
    {id: 5, name: &#39;java&#39;},
  ],
},

小程式:使用 wx:key 提升 wx:for 的渲染效率

從測試結果來看,並不會影響排序。

key 重新名稱時是否會報錯誤

data: {
  languages: [
    {id: 小程式:使用 wx:key 提升 wx:for 的渲染效率, name: &#39;php&#39;},
    {id: 4, name: &#39;javascript&#39;},
    {id: 3, name: &#39;golang&#39;},
    {id: 2, name: &#39;python&#39;},
    {id: 5, name: &#39;java&#39;},
  ],
},

click: function () {
	let language = {id: 5, name: &#39;kotlin&#39;}
	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

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

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

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具