Donc, fondamentalement, j'ai une application avec un seul arbre composant. J'étudie React-Redux et je viens de curieux si je dois toujours utiliser Je suis venu d'un fond de Vue-Vuex (bien que mon expérience de VUEX soit limitée) et React-ReDux est juste une cire à billes entièrement différente, sinon beaucoup plus compliquée imo. P> app code> en tant que parent, puis il descend de là. Initialement, tous les états sont évidemment centralisés à partir du composant parent
app code>, comme il est normalement, puis l'état est passé par composant via des accessoires. Nous savons tous que ceci est un problème car l'arbre composant est plus grand et plus grand. P>
Connect () code>, puis chacun crée un
MapStaStatetoprops code> et
MapDisPatchToprops code > Pour chaque et tous mes composants, y compris les sous-composants? Y a-t-il un moyen unique de faire cela? N'est-il pas possible que mes nombreux composants accèdent à l'ensemble du magasin sans cartographier chaque état / envoi aux accessoires d'un seul par un, que je trouve répétitif et consommateur de temps? P>
3 Réponses :
Votre état dans Vous pouvez en lire ici ici p>
J'espère que cela vous aide. P> REDUX code> Store ne change pas, mais pour l'utiliser, vous devez utiliser
connecter code> et vous connecter à votre magasin.
Si vous ne voulez pas utiliser Connect,
Vous pouvez simplement transmettre vos états à un composant enfant par des accessoires comme
avec ReDux, vous n'avez pas à connecter tous les composants à son magasin. Vous ne connectez que les composants qui en ont vraiment besoin. Par exemple, si un composant connecté a des enfants, il pourrait être plus simple de ne pas connecter le Childen à Redux, mais laissez plutôt laisser le parent connecté à la mise à jour de ses enfants. Les petits-enfants peuvent être coonectés mais pas leurs enfants immédiats et ainsi de suite. Il peut y avoir de nombreuses approches et chaque composant peut toujours avoir son propre État privé en plus de Redux Store. P>
Actuellement réact.functionComponent code> s sont en mode et vous pouvez utiliser
usereceducer code>
à la place de connectez code> si vous auriez moins de possibilités à affiner les performances avec le crochet. P>
par Entrée de la FAQ Redux sur" Dois-je connecter tous mes composants, ou juste un? ": P>
Documentation anticipée de Redux indiquait que vous ne devez avoir que quelques composants connectés à proximité du haut de votre arborescence des composants. Cependant, le temps et l'expérience ont montré qu'une telle architecture de composants nécessite généralement quelques composants pour en savoir trop sur les exigences de données de tous leurs descendants et les oblige à transmettre un nombre déroutant des accessoires. P>
Souligner "Un composant conteneur en haut" dans Redux Exemples était une erreur. Ne prenez pas cela comme une maxime. Essayez de garder vos composants de présentation séparés. Créez des composants de conteneur en les connectant quand il est pratique. Chaque fois que vous avez l'impression d'être duplication du code dans les composants parents pour fournir des données pour les mêmes types d'enfants, le temps d'extraire un conteneur. Généralement dès que vous estimez qu'un parent sait trop de données «personnelles» ou des actions de ses enfants, le temps d'extraire un conteneur. P> blockQuote>
En fait, des points de repère ont montré que des composants plus connectés conduisent généralement à de meilleures performances que de moins de composants connectés. P>
En général, essayez de trouver un équilibre entre le flux de données compréhensible et les domaines de responsabilité avec vos composants. P> blockQuote>
Oui, mais je ne pense pas qu'il y ait un problème de création de MapSTeTétoprops et de MapDisPatchToprops pour chaque composant, car chaque composant peut avoir besoin d'actions différentes et d'indiquer, il est donc logique de les créer pour chaque composant. Comme indiquer que vous avez deux réducteurs employés et projet, et pour leurs composants, vous emmènerez des États et des actions qui ne sont nécessaires que dans cette composante.