亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

react js - 關鍵與組件應該更新

react js - 關鍵與組件應該更新

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

2 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

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

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

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

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

您應該使用 shouldComponentUpdate 作為優化。


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

TA貢獻2051條經驗 獲得超10個贊

keycomponentDidUpdate用于完全不同的目的。

從文檔中,

React 基于兩個假設實現了啟發式 O(n) 算法:

  1. 兩種不同類型的元素會產生不同的樹。

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

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

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

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


查看完整回答
反對 回復 2022-11-11
  • 2 回答
  • 0 關注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號