Вопрос проверяет понимание управления ресурсами, жизненного цикла компонентов и предотвращения утечек памяти.
Если не очищать подписки и события, компонент может продолжать работать после своего уничтожения. Это приводит к утечкам памяти и неожиданному поведению приложения. Обработчики событий могут вызываться для уже несуществующего компонента. Со временем такие ошибки накапливаются. Поэтому очистка ресурсов — обязательная часть жизненного цикла.
Компоненты во Vue часто подписываются на внешние источники событий, которые живут дольше самого компонента.
Подписками могут быть:
обработчики событий браузера
таймеры и интервалы
подписки на store или event bus
WebSocket и SSE соединения
Если компонент уничтожается, но подписка остаётся:
Утечки памяти
ссылки на компонент сохраняются
сборщик мусора не может освободить память
Ошибки выполнения
код пытается обновить уничтоженный компонент
возможны ошибки доступа к состоянию
Неожиданное поведение
события обрабатываются несколько раз
данные обновляются в «невидимых» компонентах
mounted() {
window.addEventListener('resize', this.onResize);
}
Без очистки обработчик останется активным даже после удаления компонента.
Очистка подписок и событий предотвращает утечки памяти и гарантирует корректное поведение приложения при смене компонентов.