[Vidéo] Utilisez les signaux, c'est le futur d'Angular !

Dans cette vidéo de 3 minute, découvrez pourquoi les signaux sont essentiels pour l'avenir du développement web et apprenez les 3 fonctions: signal / computed / effect

Skip to content

Faire du double data-binding.

Le double data-binding consiste à mettre à jour une variable peu importe où l'information a été modifiée.

Par exemple, si nous avons le nom de l'utilisateur affiché sur les deux composants A et B. Si on modifie le nom sur A, il le sera aussi sur B et réciproquement.

En fait, nous avons une entrée et une sortie.

ts
import { Component, EventEmitter, Input, Output } from '@angular/core';

@Component({
  selector: 'app-count',
  standalone: true,
  template: `
    <p>{{n}}</p>
    <button (click)="up()">Up Counter</button>
  `
})
export class CountComponent {
  @Input() n = 0;
  @Output() nChange: EventEmitter<number> = new EventEmitter();

  up() {
    this.n++;
    this.nChange.emit(this.n);
  }
}

Le composant du compteur ne change pas vraiment. Nous avons juste ajouté le décorateur Input pour récupérer la valeur en entrée.

Lorsque vous faites du data-binding, la propriété de sortie est le même nom que la propriété d'entrée suffixée de Change. Par exemple, ici :

  • Propriété d'entrée : n
  • Propriété de sortie : nChange

Pourquoi ? Car nous n'indiquerons pas l'attribut nChange dans le template. Cela se fera automatiquement par Angular. Voyez sur le composant parent :

ts
import { Component } from '@angular/core';
import { CountComponent } from './count.component';

@Component({
  selector: 'app',
  imports: [CountComponent],
  template: `
    <div>
      <p>{{val}}</p>
      <button (click)="up()">Up Parent</button>
      <app-count [(n)]="val"></app-count>
    </div>
  `
})
export class AppComponent {
  val: number = 0;

  up() {
    this.val++;
  }
}

Remarquez que nous retrouvons le bouton qui incrémente la propriété val. Cette dernière est propre au composant AppComponent. Regardez que nous faisons du data-binding en combinant l'entrée et la sortie : [(n)]. Ainsi, si vous cliquez sur l'un des boutons, la valeur se synchronise.

Cela revient à faire :

html
  <app-count (n)="val" [nChange]="up()"></app-count>

En août, Recevez des nouvelles libraries Angular 🌟 qui peuvent vous être utiles pour booster vos projets. Inscrivez-vous maintenant et découvrez les dernières tendances et outils Angular directement dans votre boîte mail !