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

React hooks——useMemo

一、简介

useMemo 是 React 提供的一个 Hook,用于性能优化,它通过"记忆"(memoization)计算结果来避免在每次渲染时都进行不必要的复杂计算。

1.1 基本用法

const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
  • 第一个参数:计算函数,返回需要记忆的值

  • 第二个参数:依赖项数组,只有当依赖项发生变化时,才会重新计算值

1.2 主要特点

  1. 性能优化:避免在每次渲染时都执行昂贵的计算

  2. 引用稳定性:当依赖项未变化时,返回相同的引用,有助于避免子组件不必要的重新渲染

  3. 与 useEffect 的区别

    • useMemo 在渲染期间执行

    • useEffect 在渲染完成后执行

二、代码实现

import { useState, useMemo } from "react";// 计算斐波那契数列之和
const fib = (n) => {console.log("计算函数执行了");if (n <= 1) {return 1;}return fib(n - 1) + fib(n - 2);
};export default function App() {const [count1, setCount1] = useState(0);const [count2, setCount2] = useState(0);// count1 和 count2 修改 都会重新计算// const fib1 = fib(count1);// 仅在count1 修改时会计算const fib1 = useMemo(() => {return fib(count1);}, [count1]);console.log("组件重新渲染了");return (<div><button onClick={() => setCount1(count1 + 1)}>change count1+1</button><button onClick={() => setCount2(count2 + 1)}>change count2+1</button></div>);
}
http://www.dtcms.com/a/283720.html

相关文章:

  • 【Java开发日记】我们来说说 LockSupport 的 park 和 unpark
  • React hooks——useCallback
  • 深入理解React Hooks:从使用到原理
  • Planning Agent:基于大模型的动态规划与ReAct机制,实现复杂问题自适应执行求解
  • React 学习(4)
  • Android 实现:当后台数据限制开启时,仅限制互联网APN。
  • NLP-文本预处理
  • 使用docker安装、启动jenkins服务(mac系统)
  • 数据结构 栈(1)
  • vue-advance-concepts
  • 【Redis 】看门狗:分布式锁的自动续期
  • 部署-k8s和docker、jenkins的区别和联系
  • 静态住宅IP和节点有什么区别?哪种更适合你的需求?
  • 个人IP的塑造方向有哪些?
  • 河南萌新联赛2025第一场-河南工业大学
  • x3CTF-2025-web-复现
  • 自动化技术在造纸行业的应用:EtherCAT转PROFIBUS DP解决方案
  • 【后端】Linux系统发布.NetCore项目
  • 图片上传实现
  • web后端开发(javaweb第十天)
  • 实现分页查询
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘django’问题
  • Java行为型模式(状态模式)实现方式与测试方法
  • MySQL配置性能优化
  • UGUI 性能优化系列:第一篇——基础优化与资源管理
  • GPTQ与Unsloth量化区别
  • Java Stream API性能优化:原理深度解析与实战指南
  • 小程序性能优化全攻略:提升用户体验的关键策略
  • 数据结构——树(2)
  • 6. 工程化实践类:《Webpack 5 性能优化全指南:从构建速度到输出质量》