Redux: Où est le «juste milieu» entre les composants intelligents et les composants stupides?

Créé le 19 avr. 2016  ·  3Commentaires  ·  Source: reduxjs/redux

J'ai regardé les tutoriels Redux de Dan sur egghead et je me souviens d'un conseil que si le composant parent n'utilise pas certaines données mais en a juste besoin pour les transmettre aux enfants - ne le faites pas. Utilisez connect sur le composant enfant qui a besoin de ces données.

J'aime ce conseil car je déteste passer des tonnes de données à travers des accessoires. Je pensais que c'était une approche couramment utilisée mais récemment j'ai implémenté un projet "mini twitter" comme mission de test à l'entreprise qui utilise redux dans son projet et c'est pourquoi je veux y travailler.

Mais mon code a été rejeté car "React-way a trop de composants stupides". Est-ce vrai?
Voici mon code si quelqu'un veut jeter un oeil https://bitbucket.org/amorphius/minitwitter/overview
Donc, la raison pour laquelle il a été reconnu comme mauvais code est qu'il y a trop de connect dans le code.

Où est le juste milieu?

question

Commentaire le plus utile

Nous avions l'habitude de dire qu'il était préférable d'avoir moins de composants connectés dans les versions antérieures de la documentation, mais je n'avais pas prévu à quel point cela deviendrait un culte du fret. 😞 Oui, connecter tous les composants est souvent exagéré, mais tout mettre au sommet l'est aussi! Se connecter juste pour obtenir dispatch est particulièrement inoffensif, vous ne devriez donc pas vous sentir mal à l'idée de le faire souvent.

Votre code me convient parfaitement. 👍

Tous les 3 commentaires

Nous avions l'habitude de dire qu'il était préférable d'avoir moins de composants connectés dans les versions antérieures de la documentation, mais je n'avais pas prévu à quel point cela deviendrait un culte du fret. 😞 Oui, connecter tous les composants est souvent exagéré, mais tout mettre au sommet l'est aussi! Se connecter juste pour obtenir dispatch est particulièrement inoffensif, vous ne devriez donc pas vous sentir mal à l'idée de le faire souvent.

Votre code me convient parfaitement. 👍

Je vous remercie. Au moins, j'ai maintenant de solides arguments pour dire que mon code est bon et que je trouverai probablement un emploi en meilleure compagnie :)

Mais je ne peux toujours pas imaginer un scénario où connect est excessif. Comment développer cette compétence pour savoir quelle règle je dois briser, soit transmettre des données du contrôle parent qui n'utilise pas ces données au contrôle enfant, soit avoir un autre connect dans le code (surtout s'il lit un petit morceau de données du magasin)?

Quels types de problèmes surviendront avec de nombreux connect dans l'application?

Le processus de notification des abonnés de Redux est une simple boucle qui exécute chaque rappel d'abonné, donc c'est évidemment O (n). En théorie, si les rappels d'abonnés font quelque chose de complexe, ou si le nombre d'abonnés augmente très bien, cela pourrait devenir un problème de performances.

En pratique, ce n'est probablement pas très préoccupant. Je suppose que vous devrez avoir plusieurs milliers d'abonnements actifs, avec de nombreuses actions en une seconde, avant que cela ne devienne un problème. Je ne connais pas de benchmarks spécifiques pour le moment que je pourrais pointer pour vérifier cela, cependant (à moins que peut-être la récente comparaison MobX / Redux se rapporte).

Dans l'ensemble, je pense que vous devriez être prudent en suivant l'approche classique «faites-le fonctionner, faites-le bien, faites-le vite». Écrivez du code qui permet aux fonctionnalités de votre application de fonctionner correctement. Regardez ce que vous avez écrit et ajustez la structure si nécessaire pour qu'elle ait plus de sens. Si cela semble lent, mesurez et comparez, et réparez les pièces qui sont réellement lentes.

Cette page vous a été utile?
0 / 5 - 0 notes