第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

react js - 關(guān)鍵與組件應(yīng)該更新

react js - 關(guān)鍵與組件應(yīng)該更新

慕俠2389804 2022-11-11 13:30:58
我知道如果鍵值發(fā)生變化,在任何 React 組件上使用“key”道具都會重新安裝。使用“ComponentShouldUpdate”生命周期方法只會更新組件而不是重新渲染。在什么情況下我們應(yīng)該使用“key”與“ComponentShouldUpdate”?使用一個是否比其他提供優(yōu)勢?
查看完整描述

2 回答

?
MMMHUHU

TA貢獻1834條經(jīng)驗 獲得超8個贊

我認為您應(yīng)該重新訪問文檔,因為您所知道的不正確。

  • 無論組件中是否有鍵,組件都會在道具或狀態(tài)更改時更新

  • shouldComponentUpdate 每次在渲染之前都會執(zhí)行,并告訴組件是否應(yīng)該重新渲染。對于常規(guī)組件,該方法只返回 true。你可以覆蓋它。純組件進行淺層檢查。

  • 鍵僅有助于反應(yīng)知道在渲染/重新渲染期間發(fā)生了什么變化。他們不會停止/禁止重新渲染。

您應(yīng)該使用 shouldComponentUpdate 作為優(yōu)化。


查看完整回答
反對 回復(fù) 2022-11-11
?
侃侃無極

TA貢獻2051條經(jīng)驗 獲得超10個贊

keycomponentDidUpdate用于完全不同的目的。

從文檔中,

React 基于兩個假設(shè)實現(xiàn)了啟發(fā)式 O(n) 算法:

  1. 兩種不同類型的元素會產(chǎn)生不同的樹。

  2. 開發(fā)人員可以使用 key prop 提示哪些子元素在不同的渲染中可能是穩(wěn)定的。

這意味著如果傳遞給 react 組件的鍵發(fā)生變化,react 將在 DOM 中拆除該組件表示的舊樹并創(chuàng)建一個新樹(卸載然后重新安裝該組件,即使除了鍵之外沒有任何變化)。

另一方面,componentDidUpdate將在組件更新后運行,即特定組件的道具或狀態(tài)已更改。更新不會導(dǎo)致樹從狀態(tài)中拆除。

在通常情況下,您不應(yīng)該使用 key 并讓 props/state 更改觸發(fā)componendDidUpdate并在那里處理您的邏輯。Key用于某些情況下,您有大量的狀態(tài)邏輯并且您希望將狀態(tài)邏輯重置為初始狀態(tài),即從頭開始重新安裝您的組件。本質(zhì)上,您應(yīng)該避免使用 key 來卸載和重新安裝組件,因為此操作會影響性能。


查看完整回答
反對 回復(fù) 2022-11-11
  • 2 回答
  • 0 關(guān)注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號