Профилирование во вкладке производительности Vue DevTools
Запись обновлений компонентов, поиск ненужных повторных рендерингов и измерение времени компонентов
«Профилирование во вкладке производительности Vue DevTools» — бесплатный урок Vue Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Vue Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Vue Academy содержит 4 уроков всего.
Зачем выполнять профилирование
Перед оптимизацией необходимо понять, куда уходит время. Vue DevTools включает представление производительности с временной шкалой, которое записывает отрисовку компонентов, чтобы можно было найти лишнюю работу, а не делать предположения.
Установка Vue DevTools
Установите расширение для браузера или запустите отдельное приложение. В проектах Vite плагин vite-plugin-vue-devtools добавляет инспектор внутри приложения.
npm install -D vite-plugin-vue-devtoolsНачало записи
Откройте вкладку временной шкалы или производительности в DevTools и нажмите кнопку записи, затем взаимодействуйте с приложением. Остановите запись, чтобы сохранить сведения об активности отрисовки за этот период.
Временная шкала отрисовки компонентов
Каждая отрисовка компонента отображается на временной шкале как событие. Можно увидеть, когда компонент был повторно отрисован и сколько времени заняла его отрисовка.
График применений обновлений
Один цикл применения — это одна отправка обновлений в DOM. На графике применений показаны каждый такой цикл и компоненты, отрисованные в его рамках, поэтому можно заметить циклы, затрагивающие гораздо больше компонентов, чем ожидалось.
Пламенная диаграмма времени компонентов
Пламенная диаграмма складывает длительности отрисовки родительских и дочерних компонентов. Широкие полосы означают медленную отрисовку, а глубокие стеки показывают, как отрисовка распространяется по дереву.
Выявление лишних отрисовок
Лишняя отрисовка — это повторная отрисовка компонента, результат которой не изменился. Такие случаи отображаются как повторяющиеся события отрисовки, не изменившие DOM.
Тот же результат, новый рендеринг
Частая причина — передача заново созданного объекта или встроенной стрелочной функции в качестве свойства при каждом рендеринге, из-за чего мемоизация перестаёт работать. Дочерний компонент повторно рендерится, хотя его отображаемый результат не изменился.
<!-- new object every parent render forces child update -->
<Child :config="{ mode: 'a' }" />Исправление с помощью стабильных ссылок
Вынесите константы на внешний уровень или оберните производные данные в computed, чтобы при рендерингах передавалась та же ссылка.
const config = { mode: "a" };
// or: const config = computed(() => ({ mode: mode.value }));Сопоставление с действиями пользователя
Временная шкала также записывает события мыши и клавиатуры. Сопоставьте медленную фиксацию с действием, которое её вызвало, чтобы найти точный участок кода для оптимизации.
Число рендерингов в инспекторе компонентов
Инспектор компонентов может подсвечивать компоненты при обновлении. Если счётчик вспыхивает при каждом не связанном с ним изменении состояния, это сразу показывает избыточный рендеринг.
Быстрая проверка
Что показывает граф фиксаций на вкладке производительности?
Итоги
Используйте вкладку производительности и временной шкалы Vue DevTools, чтобы записывать рендеринги. Граф фиксаций показывает каждую очистку DOM и отрендеренные компоненты, а пламенная диаграмма помогает обнаружить медленные рендеринги. Ищите напрасные рендеринги — компоненты, которые повторно рендерятся без изменения результата, часто из-за нестабильных ссылок на свойства, — и исправляйте их с помощью вынесенных констант или computed.
Часто задаваемые вопросы
Урок «Профилирование во вкладке производительности Vue DevTools» бесплатный?
Да — полный текст урока «Профилирование во вкладке производительности Vue DevTools» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Vue Academy, подпишись на CoddyKit PRO. Курс Vue Academy содержит 4 уроков всего.
Чему я научусь в уроке «Профилирование во вкладке производительности Vue DevTools»?
Запись обновлений компонентов, поиск ненужных повторных рендерингов и измерение времени компонентов Ты практикуешь Vue Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Vue Academy?
Предыдущий опыт не требуется. Vue Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Профилирование во вкладке производительности Vue DevTools»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Vue Academy?
Да. Каждый урок Vue Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- v-memo для мемоизации шаблонов
- Профилирование во вкладке производительности Vue DevTools
- Виртуальная прокрутка больших списков
- Web Workers с Vue