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

学习React-19-useDebugValue

useDebugValue 概述

useDebugValue 是 React Hooks 提供的一个工具函数,用于在 React 开发者工具中为自定义 Hook 添加调试标签。其核心目的是提升自定义 Hook 的可读性和调试体验,尤其在复杂逻辑中能直观展示内部状态或计算值。

基本语法

useDebugValue(value, formatFn);
  • value: 需要展示的调试值(任何类型)。
  • formatFn(可选): 对 value 进行格式化转换的函数,仅在开发者工具中检查时调用,避免生产环境性能损耗。

使用场景

直接显示简单值
function useCustomHook() {const [state] = useState(42);useDebugValue(state); // 开发者工具中显示: 42return state;
}
格式化复杂值

通过第二个参数延迟格式化计算,避免生产环境不必要的开销:

function useTimestampConverter(timestamp) {const date = new Date(timestamp);useDebugValue(date, (d) => `格式化的值: ${d.toLocaleString()}`);return date;
}

小栗子

需求: 实现自定义Cookie的更改和删除。
import React, {useDebugValue, useState} from "react";const useCookie = (name: string, initialValue: string) => {const getCookie = () => {const match = document.cookie.match(new RegExp(`(^| )${name}=([^;]*)(;|$)`)) return match ? match[2] : initialValue
}const [cookie, setCookie] = useState(getCookie())// 更新Cookie
const updateCookie = (newValue: string) => {document.cookie = `${name}=${newValue}`setCookie(newValue)
}// 删除Cookie  
const deleteCookie = () => {// 通过设置过期时间为过去的时间来删除cookiedocument.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`setCookie("")
}useDebugValue(cookie, () => {return `格式化显示Cookie: ${cookie}`
})
return [cookie, updateCookie, deleteCookie, getCookie] as const}export const TestDebugValue = () => { // useCookie(名称, 默认值)const [cookie, updateCookie, deleteCookie] = useCookie("name", "黑子")return (<div><h3>Cookie: {cookie}</h3><button onClick={() => updateCookie('ikun')}>更改Cookie值</button><button onClick={deleteCookie}>删除获取的Cookie值</button></div>)
}export default TestDebugValue;

效果展示:
在这里插入图片描述

注意事项

  • 仅用于自定义 Hook:在普通组件中使用无效。
  • 生产环境无影响:调试值仅在开发模式下显示,不会增加生产包体积或性能负担。
  • 避免滥用:仅对需要高优先级调试信息的 Hook 使用,过度使用可能干扰开发者工具的可读性。

小工具

React Developer Tools

React Developer Tools 是官方提供的浏览器扩展,用于调试 React 应用。支持 Chrome、Firefox 及 Edge 等浏览器,可检查组件层级、状态、props 及性能分析。

安装方法
  1. Chrome/Firefox/Edge 扩展商店
  2. 打开浏览器扩展商店(如 Chrome Web Store)。Chrome 需要开魔法
  3. 搜索 “React Developer Tools”。
  4. 点击“添加至浏览器”完成安装。

在这里插入图片描述

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

相关文章:

  • Python实现网站/网页管理小工具
  • 魏公村网站建设城阳做网站的公司
  • 【笔记】介绍 WPF XAML 中 Binding 的 StringFormat详细功能
  • 【XR行业应用】XR + 医疗:重构未来医疗服务的技术革命与实践探索
  • 微服务-Nacos 技术详解
  • 天津高端网站建设企业旅游品牌网站的建设
  • 51单片机-实现DAC(PWM)数模转换PWM控制呼吸灯、直流电机实验教程
  • VMware安装虚拟机并且部署 CentOS 7 指南
  • 响应网站先做电脑端网站更换空间后排名消失 首页被k
  • 怎么做跳转网站首页化妆品网站制作
  • 数据结构 排序(3)---交换排序
  • 告别内网困局:cpolar破解Websocket远程访问难题
  • LeetCode热题--207. 课程表--中等
  • 算法奇妙屋(四)-归并分治
  • 【嵌入式硬件实例】-晶体管放大器
  • ArcGIS数据迁移问题汇总(postgresql)
  • SQLyog:一款功能强大、简单易用的MySQL管理工具
  • Boost 搜索引擎
  • 紧跟大数据技术趋势:食物口味分析系统Spark SQL+HDFS最新架构实现
  • c2c网站的建设做企业网站有哪些好处
  • 从AI角度深入解析和论述哲学的终极答案‘语言即世界‘
  • 网站开发实训报告织梦手机网站建设
  • python做网站开发免费公司企业建站代理
  • 科技信息差(9.29)
  • ES如何基于Linux配置开机自启动
  • DeepSeek Java 单例模式详解
  • 单例模式入门
  • PMON failed to acquire latch 的报错及sqlplus / as sysdba 无法连接
  • Vibe Coding - MCP Feedback Enhanced(交互反馈 MCP)
  • Elasticsearch 搭建(亲测)