2016-08-16 94 views
13

通過讀取React - Basic Theoretical Concepts和即將到來的React Fiber Architecture,似乎記憶扮演着React數據處理邏輯和不可變數據存儲的重要核心部分。
但是,什麼不是直接顯而易見的是,是否以及在何種程度上由React內部處理memoization,以及開發人員是否以及何時應手動記憶?反應:是否需要手動記憶?

簡而言之,何時React內部memoize函數調用,什麼時候應該由開發人員自己做? React會自動記憶任何非內部函數調用嗎?

+1

我不知道這個問題的答案,但我發現在使用immutable.js對象時,我的手動記憶在react/redux代碼中大大加快了,因爲您只需比較immutable.js提供的對象的散列而不是它們的值。 –

回答

8

React不會在你的例子中做記憶展示React - Basic Theoretical Concepts。那取決於你。

做記憶的最好的地方是當你製作你的組件道具時。也就是說,如果你有狀態 - >道具 - >組件。你可以記憶從狀態到道具的映射。

如果您需要需要您使用memoization獲得的性能提升,並且您正在考慮使用redux,reselect docs是一個很好的開始。

如果你沿着這條路走下去,如果你在shouldComponentUpdate函數中也做了淺色的道具檢查,那麼就會有另一個大的性能提升。