React.memo 和 useMemo 的区别
用法
- React.memo是一个高阶函数,可以传入两个参数,并返回一个新组件。第一个参数是一个组件(可以是任何有效的 React 组件,包括函数组件、类组件和 forwardRef 包裹的组件),第二个参数是比较函数。这个比较函数默认会对前后 props 进行浅比较,如果前后 props 相等则不会执行组件的渲染,否则会执行组件的渲染。也可以传入自定义比较函数。该函数的返回值为 true 表示前后 props 相等,不会执行组件的渲染。反之返回值为 false 表示前后 props 不想等,会执行组件的渲染。
- useMemo 是一个 hook 函数,可以传入两个参数,并返回一个值。第一个参数是一个回调函数,第二个参数是依赖项数组。如果依赖项数组前后的值发生了变化则会重新执行回调函数计算新的结果并返回。反之,不会重新执行回调函数。
相同点
React.memo 和 useMemo 都可以作为 React 开发过程中性能优化的手段。它们的目的都是减少性能损。比如React.memo就是用来减少组件不必要的渲染。而 useMemo 则是为了减少不必要的计算过程。当然也可以把一个组件作为回调函数的值返回。
不同点
主要在于用法不同。

浙公网安备 33010602011771号