web-dev-qa-db-fra.com

Qu'est-ce que la gestion de l'état en angulaire? et pourquoi devrais-je l'utiliser?

Je suis nouveau sur Angular et cette question pourrait être très large. Mais je suis intéressé à en savoir plus sur l'utilisation de la gestion d'état. Récemment, un de nos projets a implémenté la gestion d'état à l'aide de la bibliothèque NGXS. Cependant, j'essaie pour comprendre quels sont tous les avantages qu'il a apportés à l'application?

L'implémentation est très profonde et à un niveau élevé, il existe des actions qui transportent des données d'application (telles que définies par l'utilisateur) et des écouteurs pour ces actions qui traitent la demande et les envoient à l'étape suivante selon les besoins. En quoi cela diffère en termes d'utilisation ou de performances des applications, etc., par rapport à l'application générale angular application. Je suis au début de la compréhension de la gestion des états et j'ai donc l'impression d'écrire tellement de code qui peut-être pas vraiment nécessaire. Exemple - juste pour router vers une autre page, j'ai dû implémenter un état modal pour contenir l'objet et déclarer une action et un écouteur pour implémenter cette action.

Je passe en revue plusieurs documentations et j'obtiens des détails sur la façon dont la gestion de l'État peut être mise en œuvre, mais je n'obtiens pas la bonne réponse pour expliquer pourquoi la gestion de l'État devrait être mise en œuvre.

Merci d'avance!

12
ac184

Tout d'abord, pour répondre à votre question, vous devez savoir que la gestion d'état n'est pas un terme angulaire, et vous n'avez pas à l'utiliser. La gestion des états est un modèle pour implémenter le principe CQRS , et je cite Wikipedia:

Il indique que chaque méthode doit être soit une commande qui exécute une action, soit une requête qui renvoie des données à l'appelant, mais pas les deux.

State Management agit comme une source unique de vérité pour votre application.

Vous pouvez créer une application sans State Management. Vous ne pouvez utiliser que des services et vous êtes prêt à partir. L'ajout de la gestion de l'état à votre application ajouterait de la complexité et du passe-partout, mais vous aurez alors les avantages de (cité de https://stackoverflow.com/a/8820998/186054 ):

  1. Grande équipe - Vous pouvez facilement répartir les tâches de développement entre des personnes si vous avez choisi l'architecture CQRS. Vos meilleurs employés peuvent travailler sur la logique du domaine en laissant des tâches régulières aux développeurs moins qualifiés.
  2. Logique métier difficile - Le CQRS vous oblige à éviter de mélanger la logique du domaine et les opérations d'infrastructure.
  3. L'évolutivité est importante - Avec CQRS, vous pouvez obtenir d'excellentes performances de lecture et d'écriture, la gestion des commandes peut être mise à l'échelle sur plusieurs nœuds et comme les requêtes sont des opérations en lecture seule, elles peut être optimisé pour effectuer des opérations de lecture rapide.

Les bibliothèques de gestion d'état les plus populaires d'Angular sont NGRX et NGXS .

Je ne m'étendrai pas sur NGRX, mais en bref - il a fait ses preuves dans de vraies applications de production.

Cependant, NGXS est une bibliothèque de gestion d'état plus jeune pour angular qui a adopté certaines idées de NGRX et l'a "habilitée" en utilisant les outils que Angular fournit (tels que DI). La principale différence entre NGRX et NGXS est que votre passe-partout est nettement moins sur NGXS. Si vous êtes intéressé, vous pouvez lire la raison principale Pourquoi une autre gestion d'état pour Angular .

Donc, pour résumer - Si vous prévoyez de créer une application à grande échelle, vous devriez envisager d'utiliser la gestion des états, bien que - vous n'ayez pas à le faire.

15
Eliya Cohen