В представленном Vue 3 коде используется Composition API с функцией setup и хуками жизненного цикла.
// comp.vue
В представленном Vue 3 коде используется Composition API с функцией setup и хуками жизненного цикла.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
// comp.vue
setup() (выполняется до beforeCreate и created)
onBeforeMount
onMounted
onBeforeUpdate
onUpdated
onBeforeUnmount
onUnmounted
Родитель: setup Родитель: beforeCreate Родитель: created Родитель: beforeMount Дочерний: setup Дочерний: beforeCreate Дочерний: created Дочерний: beforeMount Дочерний: mounted Родитель: mounted
Ответ
В представленном Vue 3 коде используется Composition API с функцией setup и хуками жизненного цикла.
setup()вызывается передbeforeCreateиcreated, инициализирует реактивные данные.onMounted()вызывается после монтирования компонента, здесь происходит асинхронный вызовgetProducts()и обновление реактивной переменнойproducts.
Порядок вызова хуков жизненного цикла при вложенности компонентов:
- Родитель:
setup - Родитель:
beforeCreate - Родитель:
created - Родитель:
beforeMount - Дочерний:
setup - Дочерний:
beforeCreate - Дочерний:
created - Дочерний:
beforeMount - Дочерний:
mounted - Родитель:
mounted
Это означает, что дочерний компонент полностью инициализируется и монтируется до того, как родительский компонент завершит монтирование.
Пример использования хуков в Composition API:
<script setup>
import { ref, onMounted } from 'vue';
const products = ref(null);
onMounted(async () => {
products.value = await getProducts();
});
</script>
<template>
<ul v-if="products">
<li v-for="(pr, i) in products" :key="i">{{ pr }}</li>
</ul>
</template>
Таким образом, setup — это место для инициализации реактивных данных и регистрации хуков, а остальные хуки жизненного цикла позволяют управлять поведением компонента на разных этапах его существования.