React.memo
React.memo 是什么?
memo 是备忘录的意思。memoizing 是将值缓存起来的意思。
总的来说,React.memo 是利用缓存进行性能优化的。
高阶组件
React.memo 是 HOCs ,接收一个Component,返回一个Component。
const MyComponent = React.memo(function MyComponent(props) {
/* render using props */
});
如何提升性能
使用React.memo 包装一个组件,某些情况下会通过缓存来提升性能。React.memo 会检查 props 有无变化,如果没有变化,React会跳过render阶段,直接返回缓存的结果,从而提升性能。
仅检查props
React.memo 判断是否需要重新 render() 是通过比较 props 完成的。如果 React.memo 中包装的函数式组件内部包含 useState , useReducer , useContext 勾子,当 state 或 context 变化时该渲染还是会重新 render。