easyFrontend

What is the purpose of ngOnChanges and how does it capture changes in @Input properties?

428 views
01

Understand the problem

Explain the ngOnChanges hook, SimpleChanges parameter, and its execution order.

lifecycleinputs
02

Attempt it yourself

Sketch your approach before reading the solution — that's what interviews test.

Stuck? AI Nudge Available

Get a conceptual hint to guide your logic without spoiling the final implementation.

03

Study the solution

The solution is waiting

Give it an honest attempt first — then compare your thinking with the full walkthrough.

04

Read the code

Capturing input changes with ngOnChanges
import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';

@Component({
  selector: 'app-user-detail',
  standalone: true,
  template: '<p>User: {{ userId }} (Total changes: {{ changeCount }})</p>'
})
export class UserDetailComponent implements OnChanges {
  @Input() userId!: number;
  changeCount = 0;

  ngOnChanges(changes: SimpleChanges) {
    if (changes['userId']) {
      const current = changes['userId'].currentValue;
      const previous = changes['userId'].previousValue;
      
      console.log('userId changed from ' + previous + ' to ' + current);
      this.changeCount++;
    }
  }
}
05

Join the discussion

Discussion (0)

Sign in to join the discussion.

No responses yet. Be the first to share what you think.