当前位置:首页 > React

如何监控react性能

2026-01-14 09:43:22React

使用 React Profiler API

React 16.5 及以上版本内置了 Profiler API,可直接测量组件渲染时间。通过 <React.Profiler> 包裹目标组件,记录每次渲染的耗时数据。

import { Profiler } from 'react';

function onRenderCallback(
  id, // 组件ID
  phase, // "mount" 或 "update"
  actualDuration, // 本次渲染耗时(毫秒)
  baseDuration, // 估算无 memoization 时的耗时
  startTime, // 本次渲染开始时间戳
  commitTime, // 提交时间戳
  interactions // 本次更新相关的交互集合
) {
  console.log(`渲染时间: ${actualDuration}ms`);
}

<Profiler id="MyComponent" onRender={onRenderCallback}>
  <MyComponent />
</Profiler>

启用 Chrome DevTools 性能分析

Chrome 开发者工具提供 React 专用性能分析功能。安装 React Developer Tools 扩展后:

  1. 打开 Chrome DevTools 的 Profiler 标签页
  2. 点击录制按钮开始捕获交互
  3. 操作页面触发组件更新
  4. 停止录制查看火焰图,分析组件渲染时序和耗时

监控虚拟 DOM 重渲染

使用 why-did-you-render 库检测不必要的重新渲染:

如何监控react性能

npm install @welldone-software/why-did-you-render

配置入口文件:

import whyDidYouRender from '@welldone-software/why-did-you-render';
whyDidYouRender(React, {
  trackAllPureComponents: true,
});

关键性能指标测量

通过 web-vitals 库测量核心 Web 指标:

如何监控react性能

npm install web-vitals
import { getCLS, getFID, getLCP } from 'web-vitals';

getCLS(console.log); // 布局偏移量
getFID(console.log); // 首次输入延迟
getLCP(console.log); // 最大内容绘制时间

代码分割与懒加载

使用 React.lazySuspense 实现按需加载:

const OtherComponent = React.lazy(() => import('./OtherComponent'));

function MyComponent() {
  return (
    <Suspense fallback={<div>Loading...</div>}>
      <OtherComponent />
    </Suspense>
  );
}

内存泄漏检测

开发模式下通过严格模式检测潜在问题:

import { StrictMode } from 'react';

<StrictMode>
  <App />
</StrictMode>

生产环境性能追踪

部署后通过 window.performance API 收集真实用户数据:

const navigationTiming = performance.getEntriesByType('navigation')[0];
console.log('页面加载时间:', navigationTiming.loadEventEnd);

标签: 性能react
分享给朋友:

相关文章

电脑如何安装react

电脑如何安装react

安装 Node.js 和 npm React 项目依赖 Node.js 环境,需先安装 Node.js(自带 npm)。访问 Node.js 官网 下载 LTS 版本,运行安装程序并完成配置。安装后,…

react如何更新

react如何更新

更新 React 项目的方法 检查当前 React 版本 在项目根目录的 package.json 文件中查看 react 和 react-dom 的版本号。也可以通过命令行运行以下命令查看: n…

react native如何启动

react native如何启动

如何启动 React Native 项目 安装 Node.js 和 npm 确保已安装 Node.js(建议版本 16 或更高)和 npm(Node.js 自带)。可通过以下命令检查版本: node…

如何评价react native

如何评价react native

React Native 的优势 跨平台开发效率高:基于 JavaScript 和 React 语法,可同时开发 iOS 和 Android 应用,减少重复代码量。性能接近原生:通过原生组件渲染,性能…

react 如何执行

react 如何执行

安装 Node.js 和 npm React 开发需要 Node.js 环境,因为它提供了 npm(或 yarn)包管理工具。从 Node.js 官网 下载并安装最新 LTS 版本。安装完成后,在终端…

react如何取消渲染

react如何取消渲染

取消渲染的方法 在React中,取消渲染通常指的是在某些条件下阻止组件渲染或中断正在进行的渲染过程。以下是几种常见的方法: 条件渲染 通过条件判断决定是否渲染组件或部分内容。可以使用if语句或三元运…