Lewati ke konten utama

๐Ÿ”„ Lifecycle Hooks di Vue.js

Lifecycle Hooks adalah metode bawaan yang disediakan oleh Vue.js yang memungkinkan kamu menyisipkan logika di berbagai tahap kehidupan komponen: mulai dari pembuatan, render, update, hingga penghancuran.


๐Ÿงญ 1. Tahapan Umum Lifecycleโ€‹

Create โ†’ Mount โ†’ Update โ†’ Destroy

Tahapan ini memberi kamu kontrol untuk:

  • Menjalankan kode saat komponen dibuat
  • Mengakses DOM saat sudah dirender
  • Membersihkan data saat komponen dihancurkan

๐Ÿ“ฆ 2. Lifecycle Hooks Utamaโ€‹

HookKapan DipanggilUmumnya Digunakan Untuk
beforeCreateSebelum instance dibuatSetup awal, debugging
createdSetelah data & reaktivitas di-inisialisasiFetch data API, inisialisasi state
beforeMountSebelum render pertama ke DOMPersiapan visual/DOM
mountedSetelah render pertama selesaiManipulasi DOM, akses $refs, plugin
beforeUpdateSebelum data berubah dan re-renderLogging, validasi data lama
updatedSetelah komponen re-renderDebugging, efek UI
beforeDestroySebelum komponen dihancurkanCleanup timer, event listener
destroyedSetelah dihancurkanFinal cleanup

๐Ÿงช 3. Contoh Penggunaanโ€‹

<template>
<div>
<h1>{{ title }}</h1>
</div>
</template>

<script>
export default {
data() {
return {
title: 'Lifecycle Vue'
};
},
created() {
console.log('Komponen dibuat');
},
mounted() {
console.log('Komponen dirender ke DOM');
},
updated() {
console.log('Data atau DOM diperbarui');
},
destroyed() {
console.log('Komponen dihancurkan');
}
}
</script>

๐Ÿ“Œ 4. Kapan Menggunakan Setiap Hook?โ€‹

Kebutuhan Hook yang Cocok Inisialisasi data, fetch API created atau mounted Akses elemen DOM ($refs) mounted Cleanup interval, event listener beforeDestroy / destroyed Menyimpan data lokal sebelum update beforeUpdate

KebutuhanHook yang Cocok
Inisialisasi data, fetch APIcreated atau mounted
Akses elemen DOM ($refs)mounted
Cleanup interval, event listenerbeforeDestroy / destroyed
Menyimpan data lokal sebelum updatebeforeUpdate

๐Ÿ†• 5. Vue 3: Lifecycle dengan Composition APIโ€‹

Jika kamu menggunakan Vue 3 + Composition API:

import { onMounted, onUnmounted } from 'vue';

export default {
setup() {
onMounted(() => {
console.log('Komponen dimount');
});

onUnmounted(() => {
console.log('Komponen dihancurkan');
});
}
}