Функция onMetric является ключевым инструментом для
работы с библиотекой Web Vitals в JavaScript, позволяя централизованно
получать все метрики производительности страницы в одном месте. Она
служит обёрткой вокруг отдельных функций измерения Core Web Vitals:
getCLS, getFID, getLCP,
getTTFB и getFCP. Основная задача
onMetric — упрощение сбора данных и предоставление единого
интерфейса для обработки метрик.
import { onMetric } from 'web-vitals';
onMetric(metric => {
console.log(metric.name, metric.value, metric.delta, metric.id);
});
Параметр metric — объект, содержащий следующую
структуру:
CLS,
FID, LCP, TTFB,
FCP).CLS).Функция вызывается автоматически для каждой метрики, как только соответствующее событие фиксируется на странице.
Каждая метрика имеет свои особенности измерения и точности.
onMetric автоматически собирает все данные и передаёт их в
единую функцию обратного вызова, исключая необходимость вручную вызывать
каждую отдельную функцию.
onMetricdelta
позволяет отслеживать рост CLS при взаимодействии пользователя.onMetric(metric => {
fetch('/analytics', {
method: 'POST',
body: JSON.stringify(metric),
headers: { 'Content-Type': 'application/json' },
});
});
onMetric(metric => {
if (metric.name === 'CLS' && metric.value > 0.1) {
console.warn('High CLS detected:', metric.value);
}
});
let currentRoute = location.pathname;
onMetric(metric => {
if (location.pathname !== currentRoute) {
currentRoute = location.pathname;
console.log(`Metric for ${currentRoute}:`, metric);
}
});
delta и идентификаторамиdelta актуален для метрик, которые могут изменяться с
течением времени, таких как CLS. Для метрик типа FID или
TTFB delta всегда равен значению.id позволяет уникально идентифицировать каждое событие,
что полезно при агрегации данных на сервере или при визуализации
исторических метрик.onMetric можно комбинировать с инструментами аналитики
вроде Google Analytics или собственной системой мониторинга.onMetric один раз при
инициализации и обновлять метрики по необходимости, чтобы не создавать
лишние подписки.Эта функция обеспечивает единый канал сбора всех Core Web Vitals метрик, упрощает интеграцию с аналитикой и позволяет детально отслеживать показатели производительности страницы без дублирования кода и сложных проверок.