对于一个高性能的react组件来说,减少重绘和重排、减少服务器渲染等很重要。
在一个react应用中,是通过react组件的形式来组织逻辑,把UI拆分为多个独立的、可复用的组件,那就恶意从组件的渲染角度来考虑组件性能优化:
- 使用shouldComponentUpdate来避免重复的更新逻辑
- 通过PureComponent + Immutable.js
- React.memo和useMemo
shouldComponentUpdate
shouldComponentUpdate是react类组件的一个生命周期,react组件是根据shouldComponentUpdate的返回值来判断是否对组件进行重新渲染的。
shouldComponentUpdate的默认值是true,现在有这么一个组件组合:
App组件包含组件A和组件B:
组件A:
import React from "react";
export default class ChilA extends React.Component {
render() {
console.log("ChildA的render执行了");
return (
<div>
A组件的内容