Жизненный цикл приложения Vue
Жизненный цикл компонента — это последовательность этапов, через которые проходит каждый компонент Vue.js от создания до удаления со страницы. Хорошее понимание жизненного цикла — одна из базовых вещей для эффективной работы с Vue. Если вы знаете, когда и в каком порядке происходят события, становится намного проще управлять логикой и состоянием ваших компонентов.
Общее представление о жизненном цикле
В процессе своей работы приложение проходит через ряд этапов, которые составляют жизненный цикл приложения. Кроме того, фреймворк Vue предоставляет ряд специальных методов, с помощью которых мы можем вызвать некоторые действия на различных этапах жизненного цикла приложения.
Весь жизненный цикл приложения Vue 3 можно описать следующим образом:
- Вызывается функция
Vue.createApp()и методmount(). Сначала происходит инициализация приложения Vue - Сразу после инициализации приложения, но до установки свойств, методов и обработчиков событий объектов приложения вызывается метод
beforeCreate () - Далее происходит создание объекта Vue, установка его свойств, обработчиков событий и прочих методов
- После создания объекта приложения Vue и установки всех свойств и методов вызывается метод
created (). На этом этапе еще не произошло прикрепление объекта приложения Vue к элементу html веб-страницы - Далее выполняется компиляция шаблона — валидную разметку с кодом html, которая представляет приложение Vue и внутри которой приложение будет работать
- Вызывается метод
beforeMount() - Элемент html, который передается в метод
mountвVue.createApp({}).mount(), заменяется скомпилированным шаблоном - Сразу после прикрепления приложения Vue к элементу html, вызывается метод
mounted (), и после этого шаблон считается прикрепленным к DOM, и мы можем с ним работать - Если в процессе работы мы обновляем данные приложения Vue, то происходит еще ряд событий:
- Данные изменяются
- Вызывается метод
beforeUpdate() - Производится повторный рендеринг DOM для его соответствия виртуальному DOM
- Вызывается метод
updated(). DOM на веб-странице обновлен, и мы продолжаем работать с приложением Vue
- При откреплении объекта приложения Vue вызывается метод
beforeUnmount() - После открепления приложения Vue от html-страницы вызывается метод
unmounted()
На каждом из этих этапов срабатывают специальные хуки, которые называют жизненные события. Это функции, которые можно определить внутри компонента, чтобы выполнять нужную логику.
Жизненные хуки
Основные жизненные хуки в компонентах Vue:
beforeCreateвызывается перед инициализацией данных и событийcreatedвызывается непосредственно после инициализации данныхbeforeMountперед тем, как компонент будет смонтированmountedсразу после монтирования в DOM (тема нашей статьи)beforeUpdateперед тем, как компонент будет обновлёнupdatedпосле обновления DOM из-за реактивных измененийbeforeUnmount(Vue 3) илиbeforeDestroy(Vue 2) перед удалением компонентаunmounted(Vue 3) илиdestroyed(Vue 2) после удаления элемента и очистки