React 第二十六章 React.memo

React.memo 是 React 提供的一个高阶组件,用于对函数组件进行性能优化。

React.memo 的源码实际上就是返回一个 PureComponent 组件:

js 复制代码
function memo(FuncComp){
	return class Memo extends PureComponent{
      render(){
           return <>{FuncComp(this.props)}</>
        }
    }
}

官方地址: https://zh-hans.legacy.reactjs.org/docs/react-api.html#reactmemo

React.memo 接受一个组件作为参数,并返回一个新的优化过的组件。这个新的组件在接收到新的 props 时,会进行浅比较来判断是否需要重新渲染。

使用 React.memo 可以避免不必要的重新渲染,提高组件的性能。

使用方法如下:

js 复制代码
import React from 'react';

const MyComponent = React.memo((props) => {
  // 组件的渲染逻辑
  // ...
});

export default MyComponent;

需要注意的是,React.memo 默认只进行浅比较,如果组件的 props 是一个复杂对象,需要自定义比较函数来判断是否需要重新渲染。

比较函数需要返回一个布尔值

  • true 表示不重新渲染
  • false 表示重新渲染。

比较函数可以通过第二个参数传入 React.memo

jsx 复制代码
import React from 'react';

const MyComponent = React.memo((props) => {
  // 组件的渲染逻辑
  // ...
}, (prevProps, nextProps) => {
  // 自定义比较函数
  // 返回 true 或 false
});

React.memo 可以应用于函数组件和类组件,但是对于类组件,它只会对 props 进行浅比较。如果需要对类组件的 state 进行优化,可以考虑使用 React.PureComponent

相关推荐
FYKJ_20102 分钟前
springboot校园兼职平台--附源码02041
java·javascript·spring boot·python·eclipse·django·php
空中海5 小时前
01 React Native 基础、核心组件与布局体系
javascript·react native·react.js
空中海5 小时前
05 React架构设计、项目实践与专家清单
前端·react.js·前端框架
前端之虎陈随易7 小时前
2年没用Nodejs了,Bun很香
linux·前端·javascript·vue.js·typescript
空中海8 小时前
04 工程化、质量体系与 React 生态
前端·ubuntu·react.js
空中海8 小时前
03 性能、动画与 React Native 新架构
react native·react.js·架构
好运的阿财8 小时前
OpenClaw工具拆解之host_workspace_write+host_workspace_edit
前端·javascript·人工智能·机器学习·ai编程·openclaw·openclaw工具
XiYang-DING8 小时前
JavaScript
开发语言·javascript·ecmascript
空中海9 小时前
02 React Native状态、导航、数据流与设备能力
javascript·react native·react.js
空中海10 小时前
02 状态、Hooks、副作用与数据流
开发语言·javascript·ecmascript