vue 3 lifecycle hook | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: vue 3 lifecycle hook

Wednesday, April 29, 2026

vue 3 lifecycle hook

๐Ÿ“š SERI BELAJAR VUE — ARTIKEL 9 DARI 16

Lifecycle Hooks di Vue 3
Kapan Komponen Lahir, Hidup,
dan Mati

Pahami onMounted, onUpdated, onUnmounted, dan seluruh siklus hidup komponen Vue 3 — supaya aplikasimu bekerja tepat di waktu yang tepat.

#LifecycleHooksVue3 #onMountedVue3 #BelajarVue #VueFrontEnd
⏱️
Estimasi Baca
9 Menit
๐ŸŽฏ
Level
Pemula → Menengah
๐Ÿ“…
Tahun
2026

Pernahkah kamu penasaran: "Kapan tepatnya sih komponen Vue mulai berjalan? Kapan saya bisa mulai ambil data dari API?" Kalau pernah, kamu nggak sendirian. Banyak developer pemula kesulitan di sini — mereka sudah nulis kode fetch data, tapi datanya selalu telat muncul, atau malah error. Jawabannya ada di konsep yang disebut lifecycle hooks Vue 3. Lifecycle hooks adalah sekumpulan fungsi khusus yang Vue sediakan agar kamu bisa "masuk" dan menjalankan kode tepat di momen tertentu dalam perjalanan hidup komponen — mulai dari kelahirannya, perbaruan data, sampai saat komponen itu dihancurkan. Di artikel ke-9 dari seri Vue from Zero to Zorro ini, kita akan kupas tuntas semua hook, terutama onMounted Vue 3, lewat analogi yang mudah dicerna.

๐Ÿ“Œ Definisi Inti
"Lifecycle Hooks adalah fungsi-fungsi yang dipanggil otomatis oleh Vue di titik-titik tertentu dalam siklus hidup sebuah komponen."
Dengan lifecycle hooks, kamu bisa menjalankan kode saat komponen dibuat, diperbarui, atau dihancurkan — memberikan kontrol penuh atas perilaku komponen di setiap fase.

๐ŸŒฑ Lifecycle Hooks Vue 3: Seperti Siklus Hidup Manusia

Bayangkan sebuah komponen Vue itu seperti manusia. Ada fase-fasenya:

  • Lahir (Creation) — komponen baru dibuat, data disiapkan
  • Tumbuh & hidup (Mounting + Updating) — komponen muncul di layar, merespons perubahan data
  • Mati (Unmounting) — komponen dihapus dari halaman, sumber daya dibersihkan

Lifecycle hooks Vue 3 ibarat alarm pengingat di setiap fase — kamu bisa set kode tertentu untuk dijalankan tepat saat alarm berbunyi. Analogi sederhananya: waktu kamu bangun pagi (mounting), kamu langsung cek HP (fetch data API). Waktu kamu mau tidur malam (unmounting), kamu matiin lampu (cleanup event listener). Itulah inti dari lifecycle hooks!

๐Ÿ”ฅ Fakta Menarik
Di Vue 2, lifecycle hooks ditulis sebagai method biasa dalam Options API (mounted, created, dll). Di Vue 3 dengan Composition API, semuanya berubah menjadi fungsi on-prefix — onMounted, onUpdated, dst. Lebih rapi dan modular!

๐Ÿ“‹ Tabel Lengkap Lifecycle Hooks Vue 3

Hook Kapan Dipanggil Kegunaan Umum
onBeforeMount Sebelum komponen dipasang ke DOM Jarang dipakai — setup terakhir sebelum render
onMounted Setelah komponen muncul di DOM Fetch API, akses DOM, inisialisasi library
onBeforeUpdate Sebelum DOM diperbarui karena perubahan data Baca nilai DOM sebelum berubah
onUpdated Setelah DOM selesai diperbarui Operasi setelah render ulang
onBeforeUnmount Sebelum komponen dihapus dari DOM Terakhir kali bisa akses komponen
onUnmounted Setelah komponen dihapus dari DOM Cleanup: hapus timer, event listener

๐Ÿš€ onMounted Vue 3: Hook yang Paling Sering Kamu Pakai

onMounted adalah hook yang paling populer dan paling sering digunakan. Hook ini dijalankan tepat setelah komponen berhasil "dipasang" ke dalam DOM — artinya elemen HTML sudah ada di halaman dan bisa kamu akses.

Gunakan onMounted Vue 3 untuk:

  • Mengambil data dari API (fetch/axios)
  • Mengakses elemen DOM langsung (via template ref)
  • Menginisialisasi plugin atau library pihak ketiga (chart.js, leaflet, dll)
  • Memasang event listener pada window atau document

๐Ÿ“ Cara Memakai onMounted — Step by Step

1
Import onMounted dari Vue
Pastikan kamu import onMounted dari package vue di bagian atas file komponen kamu.
๐Ÿ“„ MyComponent.vue
<script setup>
import { ref, onMounted } from 'vue'

// Data reaktif
const users = ref([])
const isLoading = ref(true)

// onMounted dipanggil setelah komponen muncul di DOM
onMounted(async () => {
  try {
    const response = await fetch('https://jsonplaceholder.typicode.com/users')
    users.value = await response.json()
  } finally {
    isLoading.value = false
  }
})
</script>

<template>
  <div>
    <p v-if="isLoading">⏳ Memuat data...</p>
    <ul v-else>
      <li v-for="user in users" :key="user.id">{{ user.name }}</li>
    </ul>
  </div>
</template>
2
Akses Elemen DOM dengan Template Ref
Kamu bisa mengakses elemen HTML secara langsung menggunakan ref() + onMounted. Ini berguna untuk fokuskan input, animasi, atau init chart.
๐Ÿ“„ FocusInput.vue
<script setup>
import { ref, onMounted } from 'vue'

const inputRef = ref(null)

onMounted(() => {
  // Fokuskan input otomatis saat halaman muncul
  inputRef.value.focus()
  console.log('Komponen sudah mounted!')
})
</script>

<template>
  <input ref="inputRef" placeholder="Langsung fokus saat muncul!" />
</template>
๐Ÿ’ก Tips Penting
Jangan pernah fetch data di luar lifecycle hook atau langsung di level root <script setup> tanpa dipahami timing-nya. Gunakan onMounted untuk operasi yang bergantung pada DOM. Gunakan setup() atau langsung di atas untuk inisialisasi data murni.

๐Ÿ”„ Lifecycle Hooks Vue 3 Lainnya yang Wajib Kamu Tahu

Selain onMounted, ada hooks lain yang sangat berguna tergantung kebutuhanmu. Mari kita bahas satu per satu dengan contoh nyata.

3
onUpdated — Pantau Setiap Perubahan DOM
Dipanggil setiap kali data reaktif berubah dan DOM selesai diperbarui. Cocok untuk men-scroll ke posisi tertentu atau sinkronisasi visual setelah update.
import { ref, onUpdated } from 'vue'

const count = ref(0)

onUpdated(() => {
  // Setiap kali count berubah dan DOM update
  console.log('DOM diperbarui! Nilai count sekarang:', count.value)
})
4
onUnmounted — Bersihkan Saat Komponen Pergi
Hook ini sangat krusial untuk mencegah memory leak. Hapus semua timer, event listener, atau subscription WebSocket di sini.
import { onMounted, onUnmounted } from 'vue'

let timer

onMounted(() => {
  // Set interval saat komponen muncul
  timer = setInterval(() => {
    console.log('⏰ Tick setiap 1 detik...')
  }, 1000)
})

onUnmounted(() => {
  // WAJIB: hapus timer saat komponen dihancurkan
  clearInterval(timer)
  console.log('๐Ÿงน Timer dibersihkan, komponen unmounted!')
})
⚠️ Perhatian
Lupa cleanup di onUnmounted adalah penyebab utama memory leak di aplikasi Vue. Setiap kali kamu pakai setInterval, addEventListener, atau subscribe ke stream — selalu pasangkan dengan cleanup di onUnmounted!
⚡ Analisis: Urutan Eksekusi Lifecycle
Ini urutan lengkap yang terjadi ketika komponen Vue 3 muncul hingga hilang:
⚙️ setup() ↗ Pertama, selalu
๐Ÿ”จ onBeforeMount() DOM belum ada
๐ŸŒŸ onMounted() ⭐ DOM siap! Fetch di sini
๐Ÿ”„ onBeforeUpdate() / onUpdated() Setiap ada perubahan data
๐Ÿ’€ onBeforeUnmount() / onUnmounted() Cleanup wajib

๐Ÿ† Tips Praktis Menggunakan Lifecycle Hooks Vue 3

Setelah paham konsep dasar lifecycle hooks Vue 3, berikut adalah tips dari developer berpengalaman agar kamu tidak jatuh ke jebakan yang sama:

5
Komposisikan Hooks dalam Composable
Kalau kamu menggunakan lifecycle hook yang sama di banyak komponen, ekstrak ke dalam composable function. Ini membuat kode lebih bersih dan mudah di-reuse.
๐Ÿ“„ composables/useWindowSize.js
import { ref, onMounted, onUnmounted } from 'vue'

export function useWindowSize() {
  const width = ref(window.innerWidth)

  const handleResize = () => {
    width.value = window.innerWidth
  }

  onMounted(() => window.addEventListener('resize', handleResize))
  onUnmounted(() => window.removeEventListener('resize', handleResize))

  return { width }
}
⚡ Insight Penting
Di Vue 3 dengan Composition API, kamu bisa memanggil onMounted beberapa kali dalam satu komponen — semua callback-nya akan dijalankan secara berurutan. Ini sangat membantu saat kamu menggunakan beberapa composable yang masing-masing butuh lifecycle hook sendiri!
๐Ÿ“š Bagian dari Seri
Vue from Zero to Zorro
Pelajari Vue 3 dari nol sampai mahir lewat 16 artikel terstruktur yang mudah dipahami oleh pemula sekalipun.
๐Ÿ“– Lihat Semua 16 Artikel →
✅ Kesimpulan

Kamu Sudah Paham Siklus Hidup Komponen Vue!

Hari ini kamu sudah mempelajari hal yang sangat fundamental dalam Vue 3 — lifecycle hooks. Mari kita rangkum poin utamanya:

  • onMounted — hook paling penting, digunakan untuk fetch API, akses DOM, dan inisialisasi library
  • onUpdated — dipanggil setiap DOM selesai diperbarui karena perubahan data reaktif
  • onUnmounted — wajib untuk cleanup agar tidak terjadi memory leak
  • Semua lifecycle hooks Vue 3 bisa digunakan dalam composable untuk kode yang lebih modular
  • onMounted bisa dipanggil beberapa kali dalam satu komponen — semua dieksekusi berurutan
๐Ÿ’ฌ Punya pertanyaan soal lifecycle hooks? Tulis di kolom komentar! Dan kalau artikel ini bermanfaat, share ke teman-teman kamu yang lagi belajar Vue juga ya — biar bermanfaat untuk lebih banyak orang! ๐Ÿš€
#LifecycleHooksVue3 #onMountedVue3 #BelajarVue #VueFrontEnd
๐Ÿ—บ️ Navigasi Seri
← Artikel Sebelumnya
Artikel 8
Computed & Watchers — Kalkulasi Data Otomatis dan Pantau Perubahan Data
→ Baca Artikel Sebelumnya
→ Artikel Selanjutnya
Artikel 10
Vue Router — Bikin Aplikasi Multi-Halaman
→ Baca Artikel Selanjutnya

No comments:

Post a Comment

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux