P粉4208682942023-09-04 13:44:33
通常,useMemo
的作用是在渲染期間快取昂貴計算的值。然而,在您的情況下,您沒有任何昂貴的渲染計算;每次輸入更改時,您只是渲染一個非常大的樹。實際上,因為所有狀態都在App
元件上,所以每次都會重新渲染整個應用程式。
在React中優化這個問題的方法是盡可能跳過渲染元件。為此,將頁面的不相關部分拆分為不同的元件。一旦分離邏輯,用React.memo()
#包裝它,這是一種可以完全跳過元件渲染的不同最佳化技術。
對我來說,您可以做出的最明顯的更改是:
TodosDatos
移出App
元件,因為它是常數,不需要在每次渲染時重新定義(這可能會佔用記憶體)。 <Table>
放入新的元件中,並使用React.memo()
進行記憶。確保將所有表格的依賴值傳遞給新元件的props。 我在這裡實現了這些更改:https://codesandbox.io/s/green-breeze-mmum6n?file=/src/App.js。現在您應該注意到鍵入幾乎是即時的。您還可以在其他地方進行多次優化,以獲得更好的效能。