Хуки жизненного цикла
Каждый экземпляр компонента Vue при создании проходит ряд шагов инициализации — например, ему необходимо настроить наблюдение за данными, скомпилировать шаблон, подключить экземпляр к DOM и обновить DOM при изменении данных. По пути он также запускает функции, называемые «хуками жизненного цикла», давая пользователям возможность добавлять свой собственный код на определённых этапах.
Регистрация хуков жизненного цикла
Например, хук onMounted
можно использовать для запуска кода после того, как компонент завершит начальную отрисовку и создаст узлы DOM:
vue
<script setup>
import { onMounted } from 'vue'
onMounted(() => {
console.log(`компонент смонтирован.`)
})
</script>
Существуют также другие хуки, которые будут вызываться на разных этапах жизненного цикла экземпляра, наиболее часто используемыми являются onMounted
, onUpdated
и onUnmounted
.
При вызове onMounted
Vue автоматически связывает зарегистрированную функцию обратного вызова с текущим активным экземпляром компонента. Это требует, чтобы эти хуки были зарегистрированы синхронно во время установки компонента. Например, не делайте этого:
js
setTimeout(() => {
onMounted(() => {
// это не сработает.
})
}, 100)
Обратите внимание, что это не означает, что вызов должен быть помещен лексически внутри setup()
или <script setup>
. onMounted()
может быть вызвана во внешней функции, если стек вызовов является синхронным и происходит изнутри setup()
.
Диаграмма жизненного цикла
Ниже приведена диаграмма жизненного цикла экземпляра. Вам не нужно полностью понимать всё, что происходит сейчас, но по мере изучения и создания новых объектов это будет полезным справочником.
Обратитесь к Справочнику по API хуков жизненного цикла для получения подробной информации обо всех хуках жизненного цикла и их соответствующих случаях использования.