Comprendre le but du projet ngrx router-store par rapport à l'utilisation du seul routeur angulaire 2

je suis en référence à l' routeur-magasin ngrx projet (https://github.com/ngrx/router-store).

Je ne sais pas comment utiliser ce projet...

par exemple, prenons l'exemple suivant de la documentation du projet:

store.dispatch(go(['/path', { routeParam: 1 }], { query: 'string' }));

est-ce que ceci est destiné à être utilisé en remplacement du routeur angulaire 2: router.navigate(['/path...?

...ou devrais-je utiliser le routeur ngrx-store uniquement dans certaines circonstances? (si oui, lequel ?)

Qu'arrive-t-il aussi au routeur ngrx-store lorsqu'un lien html de routeur 2 angulaires p. ex. <a routerLink="/heroes" clique?

plus généralement, quelqu'un peut-il expliquer ce qui est réalisé par le projet ngrx router-store par rapport à l'utilisation du routeur simple angular 2?

Ou pour reformuler, ce qui ne ngrx-routeur-magasin apporte en outre à l'angle de 2 routeur?

Modifier: une source intéressante d'informations et d'échantillons sur ngrx cours de la ngrx exemple-app (https://github.com/ngrx/example-app).

j'y ai trouvé une dépendance au routeur-store mais je n'ai pas pu trouver où le routeur-store est utilisé dans l'application...

pour votre information, voici le commentaire à trouver dans l'application exemple sur le routeur store:

@ngrx/routeur-magasin conserve routeur etat à jour dans le magasin et utilise le magasin comme source unique de la vérité pour le routeur état.

31
demandé sur balteo 2017-02-03 19:24:21

1 réponses

@ngrx/router-store existe de sorte qu'il est possible pour le magasin à l' source unique de la vérité pour l'état de routage d'une application.

Sans elle, il serait l'état de l'application - l'itinéraire actuel - ne sont pas représentés dans le magasin. Cela signifie voyager dans le temps de débogage à l'aide de la DevTools ne serait pas possible, car il n'y aurait pas d'état dans le magasin de représentant de la route et il n'y aurait pas d'actions représentant l'itinéraire changement.

router-store ne remplace pas le routeur angulaire; il ne fait que hausser les écouteurs pour les actions de routage et pour le routeur lui-même.

lorsque vous émettez une action de routage en utilisant le go créateur, un "[Router] Go" l'action contenant le chemin spécifié est entendue par le router-store qui appelle alors la méthode de routeur correspondante. Lorsque l' router-store entend-depuis le routeur - que la route a changé elle émet un "[Router] Update Location" action représentant l'itinéraire changer et cette action voit l'état du routeur dans le store mis à jour.

Si, au lieu d'utiliser le go action créateur, un routerLink est utilisé pour effectuer un changement d'itinéraire, router-store entendrez le changement et émettent une "[Router] Update Location" action qui verra l'état du routeur du magasin mis à jour.

ainsi, que la route soit modifiée par des actions ou des liens plus traditionnels, le magasin contient toujours l'état du routeur.

"[Router] Update Location" actions représentant des changements de route, vous pouvez annuler ces changements de route via les DevTools - ce qui ne serait pas possible si l'état du routeur n'était pas représenté dans le store.

si vous n'avez pas utilisé les DevTools Redux, je vous recommande de les vérifier:

54
répondu cartant 2017-02-04 03:26:09