web-dev-qa-db-fra.com

Angular 2 formulaires réactifs vs formulaires modèles

Nous commençons un nouveau projet Angular 2 et envisageons d'utiliser des formulaires réactifs ou des formulaires modèles. Lecture de fond ici: https://angular.io/guide/reactive-forms

Pour autant que je sache, le plus grand avantage des formulaires réactifs est qu'ils sont synchrones, mais nous avons des formulaires simples et je ne pense pas que l'asynchronicité nous causera des problèmes. Il semble y avoir beaucoup plus de frais généraux avec Reactive, en surface plus de code pour faire les mêmes choses.

Quelqu'un peut-il fournir un cas d'utilisation solide où j'utiliserais Reactive sur les formulaires de modèle plus simples?

15
bwobbones

Template-driven vs Reactive Forms

Ceci est une diapositive de mon cours sur les formulaires dans Pluralsight. Certains de ces points peuvent être discutés, mais j'ai travaillé avec la personne de l'équipe Angular qui a développé des formulaires pour dresser cette liste.

56
DeborahK

L'avantage de la conception basée sur des modèles est sa simplicité. Il n'y aura pas beaucoup de code dans le contrôleur. La plupart des logiques se produisent dans le modèle. Cela convient aux formulaires simples qui n'ont pas besoin de beaucoup de logique derrière le code html.

Mais chaque formulaire a un état qui peut être mis à jour par de nombreuses interactions différentes et c'est au développeur de l'application de gérer cet état et d'éviter qu'il ne soit corrompu. Cela peut devenir difficile à faire pour les très gros formulaires et peut introduire des bogues.

D'un autre côté, si plus de logique est nécessaire, il y a souvent aussi un besoin de test. Ensuite, la conception axée sur les modèles réactifs offre plus. Nous pouvons tester de manière unitaire la logique de validation du formulaire. Nous pouvons le faire en instanciant la classe, en définissant certaines valeurs dans les contrôles de formulaire et en effectuant des tests. Pour les logiciels complexes, cela est absolument nécessaire pour la conception et la maintenabilité. L'inconvénient de la conception pilotée par modèle réactif est sa complexité.

Il existe également un moyen de mélanger les deux types de conception, mais cela présenterait les inconvénients des deux types.

Vous pouvez trouver cela expliqué avec un exemple de code simple dans les deux sens ici: Introduction à Angular - Modèles pilotés vs modèles pilotés ou modèles réactifs

3
Bert Verhees