Ana içeriğe geç

Vue.js Yaşam Döngüsü (Lifecycle Hooks): Kodunuz Ne Zaman Çalışmalı?

Bu Rehberde Ne Öğreneceksiniz?

Bu rehber Vue.js bileşenlerinin yaşam döngüsünü açıklar.
Kodunuzun ne zaman ve neden çalıştığını netleştirir.
Yanlış hook kullanımından kaynaklanan hataları önlersiniz.


Teknik Özet

  • Konu: Vue.js Lifecycle Hooks
  • Problem: Kodun yanlış zamanda çalışması
  • Çözüm: Doğru hook’u doğru yerde kullanmak
  • Evreler: Oluşturma → Yerleştirme → Güncelleme → Yok Etme

Lifecycle Hooks Nedir?

Lifecycle hooks, bileşenin yaşam evrelerini temsil eder.
Her evrede çalışan özel fonksiyonlar vardır.
Bu sayede Vue’nun iç işleyişini kontrol edersiniz.


1️⃣ Oluşturma Kancaları (Initialization)

Bu kancalar DOM oluşmadan önce çalışır.
SSR (Nuxt.js) sırasında çalışan tek aşamadır.
this.$el erişimi yoktur.

beforeCreate

export default {
beforeCreate() {
console.log('Bileşen başlatılıyor.')
}
}
  • Reaktif veri henüz hazır değildir.

created


export default {
data() {
return { mesaj: 'Merhaba' }
},
created() {
this.mesaj = 'Güncellendi'
}
}
  • API istekleri için en uygun aşamadır.

2️⃣ Yerleştirme Kancaları (DOM Insertion)

  1. Bu kancalar ilk render öncesi ve sonrası çalışır.
  2. SSR ortamında çalışmaz.

beforeMount


export default {
beforeMount() {
console.log('DOM henüz oluşturulmadı.')
}
}
  • HTML ekrana basılmadan önceki son adımdır.

mounted


export default {
mounted() {
console.log(this.$el.textContent)
}
}
  • DOM manipülasyonu için en doğru aşamadır.

3️⃣ Güncelleme Kancaları (Re-render)

  1. Reaktif veri değiştiğinde tetiklenir.
  2. Debug ve performans ölçümü için kullanılır.

⚠️ İpucu:

  1. Veri izlemek için watch veya computed tercih edin.

beforeUpdate


export default {
beforeUpdate() {
console.log('DOM henüz güncellenmedi.')
}
}
  • Yeni veri var, ekran eski.

updated


export default {
updated() {
console.log('DOM güncellendi.')
}
}
  • Ekran artık yeni veriyi yansıtır.

⚠️ Dikkat:

updated içinde state değiştirmek sonsuz döngü yaratabilir.


4️⃣ Yok Etme Kancaları (Teardown)

  1. Bileşen kaldırılırken çalışır.
  2. Bellek sızıntılarını önlemek için kritiktir.

beforeDestroy


export default {
beforeDestroy() {
console.log('Temizlik başlıyor.')
}
}
  • Event ve timer’ları burada temizleyin.

destroyed


export default {
destroyed() {
console.log('Bileşen tamamen silindi.')
}
}
  • Analitik veya log işlemleri için uygundur.

❓ Sıkça Sorulan Sorular

1. API isteği nerede yapılmalı? → created

2. DOM ölçümü nerede yapılmalı? → mounted

3. SSR’da hangi hook’lar çalışır? → beforeCreate, created

4. updated içinde state değiştirebilir miyim? → Önerilmez, sonsuz döngü oluşabilir.


Sonuç

Lifecycle hooks’u doğru kullanmak performansı artırır. Hataları azaltır, kodu öngörülebilir yapar.

Vue.js projelerinizi Rabisu Bulut altyapısında yayınlayarak maksimum performans elde edebilirsiniz.