Next.js bietet integrierte Unterstützung für das Messen und Berichten von Leistungsmetriken. Sie können entweder den useReportWebVitals-Hook verwenden, um die Berichterstattung selbst zu verwalten, oder alternativ bietet Vercel einen verwalteten Service an, der Metriken automatisch sammelt und visualisiert.
'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> )}
Da der useReportWebVitals-Hook die "use client"-Direktive erfordert, ist der performanteste Ansatz, eine separate Komponente zu erstellen, die vom Root-Layout importiert wird. Dadurch wird die Client-Boundary ausschließlich auf die WebVitals-Komponente beschränkt.
Weitere Informationen finden Sie in der API-Referenz.
Gut zu wissen: Wenn Sie Google Analytics verwenden, können Sie mit dem id-Wert manuell Metrikverteilungen erstellen (um Perzentile etc. zu berechnen).
useReportWebVitals((metric) => { // `window.gtag` verwenden, wenn Sie Google Analytics wie in diesem Beispiel initialisiert haben: // https://github.com/vercel/next.js/blob/canary/examples/with-google-analytics/pages/_app.js window.gtag('event', metric.name, { value: Math.round( metric.name === 'CLS' ? metric.value * 1000 : metric.value ), // Werte müssen Ganzzahlen sein event_label: metric.id, // ID eindeutig für aktuellen Seitenaufruf non_interaction: true, // vermeidet Beeinflussung der Absprungrate. })})