Инструменты и библиотеки
Инструменты используются для измерения, диагностики и оптимизации. Использовать актуальные стабильные версии. Не добавлять инструмент без понимания того, что именно он измеряет или решает.
Измерения и профилирование
| Инструмент | Назначение | Когда использовать |
|---|---|---|
| web-vitals | RUM: сбор LCP / INP / CLS от реальных пользователей | Продакшен, всегда |
| useReportWebVitals (Next.js) | CWV + Next.js-специфичные метрики: hydration, route-change-to-render | Next.js проекты |
| PerformanceObserver | Сбор произвольных метрик у реальных пользователей | RUM, продакшен |
| performance.mark/measure | Замер критичных операций вручную | Диагностика конкретных мест |
| Lighthouse | Lab: лабораторные замеры, аудит страницы | До / после оптимизаций |
| Chrome DevTools Performance | Профилирование main thread, поиск bottleneck | Диагностика INP, Long Tasks |
| CrUX Vis | Исторические Field Data по домену | Анализ трендов |
SHOULD
web-vitalsилиuseReportWebVitalsподключён в продакшене и отправляет метрики в аналитику.
Runtime-мониторинг (dev)
Инструменты для локальной диагностики проблемных рендеров — только в dev-окружении.
| Инструмент | Что делает |
|---|---|
| React Scan | Визуально подсвечивает компоненты с проблемными рендерами прямо в браузере |
| Why Did You Render (WDYR) | Логирует причины лишних рендеров в консоль |
Анализ бандла
SHOULD
Запускать при появлении подозрений на раздутый бандл или после добавления крупных зависимостей.
| Инструмент | Применение |
|---|---|
| webpack-bundle-analyzer | Webpack / Next.js проекты |
| source-map-explorer | Анализ через source maps |
| vite-bundle-analyzer | Vite / Astro проекты |