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