Коли викликається mounted?
Хук mounted викликається після того, як компонент:
- був створений,
- відрендерив віртуальний DOM,
- і вставив реальний DOM-елемент у документ.
Простіше кажучи:
mountedвикликається, коли компонент повністю присутній у DOM і з ним можна працювати.
Що доступно в mounted?
У цей момент вже є:
- доступ до реального DOM
- доступ до
refs - реактивні дані та props
- computed
- watchers
- усі дочірні компоненти теж змонтовані
Тобто можна безпечно робити DOM-маніпуляції.
Приклад:
vue
<template>
<input ref="inputEl">
</template>
<script>
export default {
mounted() {
this.$refs.inputEl.focus(); // працює!
}
}
</script>Коли саме викликається mounted?
Фази:
- Виконалися хуки:
beforeCreate→created. - Vue створив віртуальний DOM.
- Виконався
beforeMount. - Vue вставив згенерований DOM на сторінку.
- Тепер викликається
mounted.
Що зазвичай роблять у mounted?
1. Робота з DOM напряму:
js
this.$refs.canvas.getContext('2d')2. Ініціалізація сторонніх бібліотек:
- charts (Chart.js, ECharts)
- carousels
- maps (Leaflet, Google Maps)
- tooltips
- datepickers
3. Робота з setInterval / setTimeout
4. Підключення WebSocket
(іноді це роблять у created, але mounted - безпечніше для UI)
5. Запити API, якщо дані важливі після рендера UI
(хоча зазвичай їх роблять у created)
Коли НЕ варто використовувати mounted?
Не використовувати для важких операцій
Тому що mounted - момент, коли UI стає видимим. Якщо хук гальмує - UI "зависне".
Не мутувати дані нескінченно
Зміна даних одразу після mounted може викликати зайвий рендер.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.