返回一個memoized值。把“創建”函數和依賴項數組作為參數傳入useMemo,它僅會在某個依賴項改變時才重新計算memoized值。
這種優化有助于避免在每次渲染時都進行高開銷的計算。
傳入useMemo的函數會在渲染期間執行。請不要在這個函數內部執行與渲染無關的操作,諸如副作用這類的操作屬于useEffect的適用范疇,而不是 useMemo。
如果沒有提供依賴項數組,useMemo在每次渲染時都會計算新的值。
你可以把useMemo作為性能優化的手段,但不要把它當成語義上的保證。
將來,React 可能會選擇“遺忘”以前的一些 memoized 值,并在下次渲染時重新計算它們,比如為離屏組件釋放內存。
先編寫在沒有 useMemo 的情況下也可以執行的代碼 —— 之后再在你的代碼中添加 useMemo,以達到優化性能的目的。