Jétudie en fait le modèle de flux et il ya quelque chose que je ne peux « pas comprendre concernant le stocke .
Que sont-ils exactement?
Jai lu de nombreux articles, et il semble que cela concerne le domaine.
Cela signifie-t-il quil sagit de la partie « abstraite » liée aux appels API ou aux appels backend?
Ce nest pas très clair pour moi.
Edit: Serait-ce la même chose que lusine angulaire? Récupérer des données distantes, effectuer une tâche professionnelle ou stocker certains états dapplication (utilisateur actuel connecté par exemple)?
Commentaires
- Un lien vers ce que vous ' re parler serait utile. Voulez-vous dire ce " modèle de flux "? fluxxor.com/what-is-flux.html
- facebook.github. io / flux / docs / overview.html # content
- Flux nest rien de plus que le modèle de publication / abonnement avec une contrainte que toutes les données passent dabord par le répartiteur. Cela garantit que les données ne vont pas en arrière (et ne causent pas de confusion). Des choses comme " Stocker ", " Action " etc ne sont quune autre façon de dire les composants du système et les données qui sont transmises.
Réponse
Ok, laissez-moi vous expliquer étape par étape
1 Quest-ce que Flux?
- Un modèle
- Répartiteur centralisé
- Flux de données unidirectionnels
- Élément de liste
Ils lappellent Flux pour une raison également.
Implémentations de flux
- Flux de Facebook
- Alt
- Reflux
- Flummox
- NuclearJS
- Fluxible
Un chat avec Flux
React : Hey Action, quelquun a cliqué sur ce « Save Cour se ”.
Action : Merci Réagissez! Jai enregistré un créateur daction auprès du répartiteur, le répartiteur doit donc prendre soin de notifier tous les magasins concernés.
Dispatcher : Permettez-moi de voir qui se soucie de la sauvegarde dun cours. Ah! Il semble que la boutique ait enregistré un rappel auprès de moi, je vais donc lui en informer.
Store : Salut répartiteur! Merci pour la mise à jour! Je mettrai à jour mes données avec la charge utile que vous avez envoyée. Ensuite, je vais émettre un événement pour les composants React concernés.
React : Ooo! Nouvelles données brillantes du magasin! Je vais mettre à jour linterface utilisateur pour refléter cela!
Flux API
register (fonction de rappel) – « Hey répartiteur, exécutez-moi quand des actions se produisent. -Store «
unregister (string id) – » Hey répartiteur, arrêtez de vous soucier de cette action. -Store «
waitFor (array ids) – » Mettez dabord à jour ce magasin. –Store ”
dispatch (charge utile de lobjet) – » Hey répartiteur, informez les magasins de cette action . -Action «
isDispatching () – » Je suis actuellement occupé à envoyer des rappels. «
donc la question qui se pose dans notre esprit est
Donc Flux est un modèle de publication-abonnement?
Pas tout à fait.
Diffère de deux manières:
1.Chaque charge utile est envoyée à tous les rappels enregistrés.
2.Les rappels peuvent attendre dautres rappels
Résumé
Flux est un modèle pour les flux de données unidirectionnels Les actions encapsulent les événements Dispatcher est un hub central qui contient les rappels. Les magasins maintiennent létat de lapplication. est-ce que cet état permet à lapplication davoir différentes données des entités API distantes: – /
Réponse
Recherche dun exemple simple ( https://github.com/facebook/flux/tree/master/examples/flux-todomvc/ ), « Les magasins gèrent létat de lapplication pour un domaine particulier au sein de lapplication. » Cest-à-dire quils contiennent des données sur létat dun aspect de lapplication et tout le code pour le modifier. Chaque fois quil y a une nouvelle mise à jour du Dispatcher, tous les Stores la voient, ils décident comment mettre à jour leurs données en réponse, puis ils informent les Views que les données ont changé. Dans les exemples, les magasins contiennent des éléments tels que «liste des threads invisibles» (où le répartiteur les informe quun nouveau message est arrivé ou quun ancien a été lu, et les vues affichent les fils de messages à lutilisateur) et «lheure de lecture actuelle et state. ”
Plus techniquement: ils sont la couche intermédiaire du framework qui enregistre les rappels avec le Dispatcher pour recevoir les mises à jour, puis notifie les Views lorsque létat des données change. (Les vues peuvent alors renvoyer des actions au Dispatcher.) Ils implémentent une interface abstraite, dans laquelle chaque magasin enregistre un rappel auprès du Dispatcher et diffuse des événements vers les vues, mais chaque magasin semble représenter un domaine spécifique de manière concrète. (Y a-t-il des contre-exemples?)
Réponse
Les magasins sont des zones du code qui stockent létat de lapplication et la logique complexe. Une raison en est que plusieurs vues utiliseront probablement les mêmes données, mais les afficheront dune manière différente, ou afficheront certaines mais pas toutes les données dun domaine particulier. Par exemple, un utilisateur se connecte et vous recevez son prénom, nom, e-mail, photo, ville, numéro dadresse, numéro de téléphone, etc. Ces informations sont affichées sur des vues séparées. Plutôt que de dupliquer les données entre les vues, nous pouvons utiliser un magasin appelé UserStore qui stocke les données pour lutilisateur. Cela simplifie le système en donnant « un endroit pour faire un changement » chaque fois que la logique ou les données stockées doivent être modifiées. Il y a beaucoup dautres raisons dutiliser un magasin, mais cest la plus évidente à mon avis.