当前位置: 首页 > news >正文

React hooks——memo

一、简介

React.memo 是 React 提供的一个高阶组件(Higher-Order Component),用于优化函数组件的渲染性能,它通过浅比较(shallow compare)props 的变化来决定是否重新渲染组件。

1.1 基本用法

const MyComponent = React.memo((props) => {/* 使用 props 渲染 */
});

1.2 主要特点

  1. 性能优化:仅在 props 发生变化时重新渲染组件

  2. 浅比较:默认使用浅比较(shallow comparison)来比较新旧 props

  3. 自定义比较:可以传入第二个参数来自定义比较逻辑

1.3 自定义比较函数

const MyComponent = React.memo((props) => {/* 使用 props 渲染 */},(prevProps, nextProps) => {/* 返回 true 表示跳过渲染,false 表示需要渲染 */return prevProps.value === nextProps.value;}
);

1.4 使用场景

  1. 纯展示组件(Pure Presentational Components)

  2. 渲染成本较高的组件

  3. 频繁重新渲染但 props 变化不大的组件

二、代码实现

import { memo, useState } from "react";// 子组件
const ChildComponent = memo(({ name }) => {console.log("子组件重新渲染了");return (<div><h1>子组件name: {name}</h1></div>);
});export default function App() {const [count, setCount] = useState(0);const [name, setName] = useState("c-n");console.log("父组件重新渲染了");return (<div><button onClick={() => setCount(count + 1)}>+1</button><ChildComponent name={name} /></div>);
}

http://www.dtcms.com/a/284427.html

相关文章:

  • 【软件开发】主流 AI 编码插件
  • 关于el-table异步获取数据渲染动态列数据赋值列数据渲染时title高度异常闪过问题
  • 深度解析:基于EasyX的C++黑白棋AI实现 | 算法核心+图形化实战
  • 数据呈现进阶:漏斗图与雷达图的实战指南
  • 基于Echarts的气象数据可视化网站系统的设计与实现(Python版)
  • Idea使用git不提示账号密码登录,而是输入token问题解决
  • 【解决方案】yakit流量转发到mitmproxy
  • 浅谈 awk 中管道的用法
  • zynq mpsoc switch级联ssd高速存储方案
  • 贴吧项目总结二
  • mysql——搭建MGR集群
  • CommonJS 功能介绍
  • 基于dcmtk的dicom工具 第二章 图像接受StoreSCP(2)
  • Python Day16
  • Java行为型模式---备忘录模式
  • 从零开始的云计算生活——第三十三天,关山阻隔,ELK日志分析
  • rtp传输推流h265
  • Unity使用GTCRN实现流式语音增强
  • SpringBoot一Web Flux、函数式Web请求的使用、和传统注解@Controller + @RequestMapping的区别
  • 探微“元宇宙”:概念内涵、形态发展与演变机理
  • CSS面试题及详细答案140道之(41-60)
  • Kiro AI IDE上手初体验!亚马逊出品,能否撼动Cursor的王座?
  • Amazon S3成本优化完全指南:从入门到精通
  • 8 几何叠加分析
  • 系统设计时平衡超时时间与多因素认证(MFA)带来的用户体验下降
  • 量子计算的安全与伦理:当技术革命叩击数字时代的潘多拉魔盒
  • sqli-labs靶场通关笔记:第25-26a关 and、or、空格和注释符多重过滤
  • 4G模块 A7680通过MQTT协议连接到腾讯云
  • AI赋能Baklib,重塑企业知识管理与客户支持方式
  • Curr. Res. Food Sci.|福州大学吕旭聪团队:富硒鼠李糖乳杆菌GG重塑肠-肝轴,显著缓解酒精性肝损伤