В чем разница между onBeforeMount и onMounted

«В чем разница между onBeforeMount и onMounted» — вопрос из категории Vue, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

onBeforeMount и onMounted — хуки жизненного цикла Vue 3 (Composition API), которые выполняются на разных этапах монтирования компонента.

  • onBeforeMount:
    Вызывается перед монтированием компонента в DOM. На этом этапе шаблон уже скомпилирован, но элементы ещё не вставлены в DOM. Полезен для предварительных действий, не требующих доступа к DOM.

  • onMounted:
    Вызывается после монтирования компонента. DOM уже доступен, можно работать с элементами, подписываться на события или выполнять API-запросы.

import { onBeforeMount, onMounted } from 'vue';

setup() {
  onBeforeMount(() => {
    console.log('DOM ещё не создан');
  });

  onMounted(() => {
    console.log('DOM готов, можно использовать document.querySelector()');
  });
}