TGViewer
Frontend | Вопросы собесов Frontend | Вопросы собесов @easy_javascript_ru · 17.6K subscribers
Post #1210 4.77K
🤔 Почему методы жизненного цикла нельзя писать через прилоченную функцию?

В Vue 2 и Vue 3 (Options API) методы жизненного цикла (mounted, created, beforeDestroy и др.) должны быть обычными функциями, а не стрелочными (() => {}).

🟠Как работает `this` в Vue?
Когда Vue вызывает метод жизненного цикла, он автоматически привязывает this к экземпляру компонента.
export default {
data() {
return { message: "Привет!" };
},
mounted() {
console.log(this.message); // ✅ Работает, this = { message: "Привет!" }
}
};


🟠Почему стрелочная функция не работает?
Стрелочные функции не создают свой собственный this, а берут this из внешнего контекста (того, что было при их создании).
export default {
data() {
return { message: "Привет!" };
},
mounted: () => {
console.log(this.message); // ❌ Ошибка: this === undefined
}
};


🟠Как стрелочные функции всё-таки можно использовать?
Хотя стрелочные функции нельзя использовать для методов жизненного цикла, их можно применять внутри обычных методов:
export default {
data() {
return { message: "Привет!" };
},
mounted() {
setTimeout(() => {
console.log(this.message); // ✅ Работает, this берётся из `mounted()`
}, 1000);
}
};


Ставь 👍 и забирай 📚 Базу знаний
  • 👍 9
More from @easy_javascript_ru
  1. Oct 10, 2026Post #3033
  2. Oct 10, 2026🤔 Что такое git-flow? Это рабочая модель ветвления, предложенная Винсентом Дриссеном в 20…
  3. Oct 10, 2026Post #3031
  4. Oct 9, 2026🤔 Зачем нужен eslint? ESLint – это инструмент для автоматического анализа и исправления к…
  5. Oct 8, 2026🤔 Зачем нужен nginx? Nginx — это мощный веб-сервер, который используется для раздачи стат…
  6. Oct 7, 2026🤔 Что такое и как работает CI/CD? CI/CD — это процесс автоматизации: - CI (Continuous Int…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →