学习React-19-useDebugValue

useDebugValue 概述

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

基本语法

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

使用场景

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

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

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

小栗子

复制代码
需求: 实现自定义Cookie的更改和删除。
ts 复制代码
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 = () => {
    // 通过设置过期时间为过去的时间来删除cookie
    document.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. 点击"添加至浏览器"完成安装。
相关推荐
Dream-Y.ocean1 小时前
鸿蒙PC平台宅匠 3D 室内设计适配实战:基于 Electron 壳方案的 Three.js 双渲染引擎与参数化户型编辑器开发
javascript·3d·harmonyos
Highcharts.js2 小时前
Highcharts Gantt使用符号的自定义数据标签开发甘特图示例
javascript·甘特图·highcharts·图表开发·实战代码·响应式图表
前进的李工3 小时前
Agent 学习笔记 05:系统提示词应该怎么写
笔记·学习·prompt·agent·个人开发·few-shot·ai应用开发
正在走向自律4 小时前
【3/5】人工智能训练师 三级/高级工 考证学习方向:从“独立执行”到“设计、归因与全链条负责”
人工智能·学习·人工智能训练师·注方案设计·数据质控负责人·模型评测与调优辅助·ai训练项目交付
JavaPub-rodert4 小时前
从零搭建通用管理后台:ShiyuAdmin 的 Go、React 与 RBAC 实践
开发语言·react.js·golang
kyriewen5 小时前
Skills 榜前 10 我全装了:只有 3 个能直接用
前端·javascript·程序员
CCIE-Yasuo6 小时前
网络安全-学习数据库-Mysql-2
数据库·学习·mysql
工控丫丫6 小时前
帆软看板中经常使用的公式函数及经常搭的组合
前端·javascript·数据库
La Pulga6 小时前
【FreeRTOS源码学习笔记】任务切换
单片机·mcu·学习·嵌入式·freertos·实时操作系统
li星野7 小时前
【学习记录】逻辑分析仪完全入门:从品牌方案到采样率、存储深度的核心概念解析
学习