memo
使用memo
包裹函数子组件,保证子组件只在props变化时重新渲染.
1 | import React, { useState,memo } from 'react'; |
useCallback
把内联回调函数及依赖项数组作为参数传入
useCallback
,它将返回该回调函数的 memoized 版本,该回调函数仅在某个依赖项改变时才会更新。当你把回调函数传递给经过优化的并使用引用相等性去避免非必要渲染(例如shouldComponentUpdate
)的子组件时,它将非常有用。
1 | const memoizedCallback = useCallback( |
将函数指向同一引用,避免函数子组件因为props
中函数引用变化而重新渲染.
1 | import React, { useState, memo,useCallback } from 'react'; |
useMemo
把“创建”函数和依赖项数组作为参数传入
useMemo
,它仅会在某个依赖项改变时才重新计算 memoized 值。这种优化有助于避免在每次渲染时都进行高开销的计算。
1 | useCallback(fn, deps)` 相当于 `useMemo(() => fn, deps) |
1 | const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]); |
1 | import React, { useState, memo, useCallback, useMemo } from 'react'; |