React 函数组件性能优化
1. 避免不必要的重渲染
React.memo
用于缓存组件,只有当 props 发生变化时才重新渲染。
为什么需要 memo:
- React 的默认行为是只要父组件重新渲染,所有子组件都会重新渲染
- 即使传入子组件的 props 没有变化,子组件也会重新渲染
- 对于复杂组件,不必要的重渲染会导致性能浪费
import { memo } from 'react';
const ChildComponent = memo(function ChildComponent({ data }) {
console.log('Child render');
return <div>{data}</div>;
});
// 使用自定义比较函数
const MemoizedComponent = memo(MyComponent, (prevProps, nextProps) => {
return prevProps.data === nextProps.data;
});
useMemo 缓存计算结果
为什么需要 useMemo: