web-dev-qa-db-fra.com

Comment GraphQL et Redux fonctionnent-ils ensemble?

Je m'interroge sur la relation entre les deux. Je suis assez confus car je les vois tous les deux comme des moyens de gérer presque l'état, et il semble y avoir un chevauchement, donc je cherche une distinction conceptuelle que je peux appliquer afin de savoir quelles informations garder où et comment les faire fonctionner ensemble. Aucun conseil?

13
janus

Vous devez faire la distinction entre l'état d'affichage (par exemple champ de recherche, popup, bascule) et l'état des données (par exemple API distante). Alors qu'Apollo est principalement utilisé pour l'état des données, l'état local de Redux/MobX/React est utilisé pour l'état d'affichage lorsqu'il est utilisé en combinaison avec Apollo Client. Si elles ne sont pas utilisées avec Apollo Client, ces solutions peuvent également être utilisées pour l'état des données distantes. Cependant, Apollo Client a introduit apollo-link-state qui peut également être utilisé pour l'état d'affichage local.

  • Si votre application est uniquement pilotée par des données distantes et utilise un backend GraphQL, Apollo Client peut être suffisant pour votre application.

  • Si vous avez quelques états d'affichage dans votre application, mélangez la gestion des états locaux de React.

  • Si vous avez plusieurs à plusieurs états d'affichage, utilisez Redux ou MobX pour votre état d'affichage ou essayez apollo-link-state.

Peut-être que cet article clarifie certaines choses plus en profondeur: Combiner Redux et Apollo .

14
Robin Wieruch

GraphQL est juste un moyen de dire à un point final "ce sont les données que je veux". Redux est le moyen de stocker ces données. Conceptuellement, ils sont entièrement séparés.

En ce qui concerne leur intégration, cependant, nous avons réussi à utiliser Apollo , (avant de supprimer Redux et de lancer leur propre magasin). Jetez un œil à l'article this pour commencer, puis voyez où Apollo est parti de là,

5
Adam Barnes