Angular 19 se profile à l’horizon et apporte une multitude de nouvelles fonctionnalités intéressantes. L'un des ajouts les plus notables est la primitive linkedSignal, qui promet de révolutionner la façon dont nous gérons la programmation réactive dans les applications Angular.
Traditionnellement, l'implémentation de modèles de réinitialisation dans Angular impliquait l'utilisation de signaux calculés(). Bien qu’efficace, cette approche présente des limites. Lorsque vous devez définir explicitement la valeur d'un signal, celui-ci devient un signal en lecture seule, ce qui entrave la flexibilité.
linkedSignal résout cette limitation en fournissant un signal inscriptible qui met automatiquement à jour sa valeur en fonction des modifications apportées à un signal source. Cela nous permet de créer une synchronisation transparente entre les deux, garantissant une expérience utilisateur sans problème.
Bien que linkedSignal ait plusieurs surcharges, deux d'entre elles méritent d'être mentionnées :
Cette surcharge vous permet de créer un linkedSignal qui calcule sa valeur en fonction de la valeur d'un signal source. Voici un exemple :
import { signal, linkedSignal } from '@angular/core'; const sourceSignal = signal(0); const linkedSignal = linkedSignal({ source: this.sourceSignal, computation: () => this.sourceSignal() * 5, });
Dans cet exemple, linkedSignal sera toujours le double de la valeur de sourceSignal. Chaque fois que sourceSignal change, linkedSignal recalculera automatiquement sa valeur. Voici un exemple plus concret de linkedSignal :
Le composant CourseDetailComponent accepte un courseId en entrée et affiche le nombre d'étudiants inscrits. Notre objectif est de réinitialiser le nombre d’étudiants chaque fois que le courseId sélectionné change. Cela nécessite un mécanisme pour synchroniser deux signaux : le courseId et le studentCount.
Bien que l'utilisation de Computed() puisse être efficace pour dériver des valeurs à partir d'autres signaux, elles sont en lecture seule. Pour mettre à jour dynamiquement le studentCount en fonction des modifications apportées au coursId, nous exploitons la primitive linkedSignal. En créant un signal inscriptible lié au courseId, nous pouvons à la fois définir explicitement le studentCount et le mettre à jour automatiquement chaque fois que le courseId change. Cette approche fournit une solution robuste et flexible pour gérer les dépendances des signaux et garantir la cohérence des données.
Pour des scénarios plus simples, vous pouvez utiliser une syntaxe abrégée pour créer linkedSignal :
const sourceSignal = signal(10); const linkedSignal = linkedSignal(() => sourceSignal() * 2);
Cette syntaxe abrégée est équivalente à la première surcharge, mais elle est plus concise et plus facile à lire.
linkedSignal est un nouvel outil puissant dans la boîte à outils réactive d'Angular. En comprenant ses concepts fondamentaux et ses modèles d'utilisation, vous pouvez créer des applications Angular plus robustes, réactives et conviviales. Avec sa capacité à combiner les meilleurs aspects des signaux calculés() et inscriptibles, linkedSignal est sur le point de devenir un outil indispensable pour les développeurs Angular. Vous pouvez en savoir plus sur linkedSignals à partir de ce stackblitz.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!