如何为你的 Next.js 应用程序添加分析功能
Next.js 内置了对测量和报告性能指标的支持。你可以使用 useReportWebVitals hook 来自己管理报告,或者,Vercel 提供了一个托管服务来自动收集和可视化指标。
客户端检测
对于更高级的分析和监控需求,Next.js 提供了一个 instrumentation-client.js|ts 文件,它在你的应用程序前端代码开始执行之前运行。这对于设置全局分析、错误跟踪或性能监控工具来说是理想的。
要使用它,在你的应用程序根目录中创建一个 instrumentation-client.js 或 instrumentation-client.ts 文件:
instrumentation-client.js
// 在应用程序启动前初始化分析
console.log('分析已初始化')
// 设置全局错误跟踪
window.addEventListener('error', (event) => {
// 发送到你的错误跟踪服务
reportError(event.error)
})
自行构建
app/_components/web-vitals.js
'use client'
import { useReportWebVitals } from 'next/web-vitals'
export function WebVitals() {
useReportWebVitals((metric) => {
console.log(metric)
})
}
app/layout.js
import { WebVitals } from './_components/web-vitals'
export default function Layout({ children }) {
return (
<html>
<body>
<WebVitals />
{children}
</body>
</html>
)
}
由于
useReportWebVitalshook 需要'use client'指令,最高性能的方法是创建一个单独的组件,由根布局导入。这会将客户端边界限制在WebVitals组件内。
查看 API 参考 了解更多信息。
Web Vitals
Web Vitals 是一组有用的指标,旨在捕获网页的用户体验。以下 web vitals 都包含在内: