Lifecycle Hooks
ngOnInit runs once after inputs are set — load marks here, not in the constructor. ngOnDestroy — stop timers, unsubscribe. ngOnChanges — when @Input changes.
Board: constructor only assigns. ngOnInit calls marksService.list(). ngOnDestroy clears a setInterval. Trap: HTTP in constructor — inputs may still be undefined.
Exam tip
Init vs constructor. Destroy cleanup.