Lifecycle hooks memungkinkan kamu menjalankan kode pada tahap tertentu dari kehidupan komponen.
Hooks Utama
export class MyComponent implements OnInit, OnDestroy, OnChanges {
@Input() data = ""
ngOnChanges(changes: SimpleChanges) {
// Dipanggil saat @Input berubah
console.log("Input berubah:", changes)
}
ngOnInit() {
// Dipanggil sekali setelah konstruktor
// Tempat fetch data, setup subscriptions
}
ngOnDestroy() {
// Dipanggil saat komponen dihapus
// Tempat cleanup (unsubscribe, clearInterval)
}
}
Urutan Lifecycle dan Kapan Setiap Hook Dipanggil
constructor— Class komponen dibuat. Dependency injection terjadi di sini. Jangan pakai@Input()di constructor — nilainya belum ada.ngOnChanges— Dipanggil sebelumngOnInit, dan setiap kali@Input()berubah. Berguna untuk react ke perubahan input dari parent.ngOnInit— Dipanggil sekali setelahngOnChangespertama. Tempat ideal untuk fetch data, setup subscription, baca route param.ngAfterViewInit— View dan child component sudah siap di DOM. Tempat aman untuk akses@ViewChild, integrasi library third-party yang butuh elemen DOM.ngOnDestroy— Tepat sebelum komponen dihapus. Tempat cleanup: unsubscribe Observable, clear interval, lepas event listener.
💡 Aturan praktis: fetch data di
ngOnInit, akses DOM dingAfterViewInit, cleanup dingOnDestroy. Constructor hanya untuk DI dan field initialization.