Skip to content

Comment utiliser ngDoCheck ?

ngDoCheck est une méthode de cycle de vie dans les composants Angular qui est appelée à chaque itération de la boucle de vérification de l'état du composant. Cette méthode est appelée avant que le change detector ne détermine si des modifications sont apportées aux propriétés du composant.

Voici un exemple de code qui montre comment utiliser ngDoCheck :

ts
import { Component, DoCheck } from '@angular/core';

@Component({
  selector: 'app-my-component',
  templateUrl: './my-component.component.html',
  styleUrls: ['./my-component.component.css']
})
export class MyComponentComponent implements DoCheck {
  value: string;

  ngDoCheck() {
    console.log('La valeur est', this.value);
  }
}

Dans cet exemple, la méthode ngDoCheck est déclarée dans l'interface DoCheck et est appelée à chaque itération de la boucle de vérification de l'état du composant. Elle affiche un message dans la console avec la valeur de la propriété value du composant.

Vous pouvez utiliser ngDoCheck pour implémenter votre propre logique de vérification de l'état du composant, par exemple pour détecter les changements dans les objets immuables ou dans les objets qui ne sont pas surveillés par le change detector par défaut d'Angular. Cependant, vous devriez éviter d'utiliser cette méthode si possible, car elle peut être coûteuse en termes de performance si elle est utilisée de manière excessive.

INFO

Notez que ngDoCheck ne doit être utilisé que si vous avez besoin de détecter des modifications dans des objets qui ne sont pas surveillés par le change detector par défaut d'Angular, et non pour détecter les modifications dans les propriétés du composant qui sont déclarées dans l'annotation @Input(). Pour détecter les modifications dans les propriétés d'entrée du composant, vous devriez utiliser la méthode ngOnChanges plutôt que ngDoCheck.

Abonnez-vous à la newsletter

En juillet, recevez en avant-première notre newsletter avec les dernières actualités, tutoriels, astuces et ressources Angular directement par email !