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

React hooks——useCallback

一、简介

useCallback 是 React 提供的一个 Hook,用于缓存函数引用,避免在组件重新渲染时创建新的函数实例,从而优化性能。

1.1 基本语法

const memoizedCallback = useCallback(() => {// 函数逻辑},[dependencies] // 依赖项数组
);
  • 第一个参数:要缓存的函数

  • 第二个参数:依赖项数组,只有当依赖项变化时,才会重新创建函数

1.2 主要特点

✅ 缓存函数:避免每次渲染时都创建新的函数
✅ 优化子组件渲染:配合 React.memo 使用,防止因父组件更新导致子组件不必要的重新渲染
✅ 依赖项控制:只有依赖项变化时,才会重新生成函数

二、代码实现

import { memo, useState, useCallback } from "react";// 子组件
const Input = memo(({ onChange }) => {console.log("子组件重新渲染了");return (<div><input type="text" onChange={(e) => onChange(e.target.value)}></input></div>);
});export default function App() {// 触发父组件渲染的函数const [count, setCount] = useState(0);const [count2, setCount2] = useState(0);// 传给子组件的函数const changeHandler = useCallback((value) => console.log(value), [count2]);return (<div><Input onChange={changeHandler}></Input><button onClick={() => setCount(count + 1)}>点我 子组件不会重新渲染</button><button onClick={() => setCount2(count2 + 1)}>点我 子组件重新渲染</button></div>);
}

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

相关文章:

  • 深入理解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 性能优化全指南:从构建速度到输出质量》
  • DocsGPT:您的智能知识助手,解锁高效信息检索
  • pytorch学习笔记(五)-- 计算机视觉的迁移学习