Skip to content

usePrevious

读取上一次被接受的值。

签名

ts
function usePrevious<T>(
  value: T,
  shouldUpdate?: (current: T, next: T) => boolean,
): T | undefined;

基本用法

关键行为

  • 首次渲染时返回 undefined
  • 默认只要新旧值不满足 Object.is,就会把当前值记录为“上一个值”。
  • 你可以通过 shouldUpdate 控制何时接受新值,从而过滤过于频繁或无意义的变化。

注意事项

  • shouldUpdate 比较的是“当前已记录值”和“本次传入值”,而不是 React effect 那种依赖数组比较。