Relay vs Redux vs Apollo avec GraphQL et React-Native

je dois démarrer un nouveau projet (Web + natif) (application de taille moyenne) à partir de zéro. En raison de la pléthore de cadres JS et de la mise en œuvre là-bas, surtout au cours des deux dernières années, j'ai eu un deuxième doute sur ma pile habituelle.

j'ai utilisé react + redux sur le front-end avec Node et MongoDB sur le backend communiquer à travers les API REST.

Pour ce nouveau projet, j'ai décidé d'aller avec Réagissent-Native + Réagir Natif pour le Web + Noeud + PostgreSQL. Cependant, je me demande quel cadre je devrais utiliser pour la collecte de données et la gestion état/magasin.

<!-Jusqu'à présent, redux a bien fonctionné pour moi. Cependant, en raison de la nature de JS evolution. Je suis un peu sceptique avec le même tapis que j'ai utilisé dans le passé.

Quels sont les avantages et les inconvénients, si je vais avec la pile suivante

React-Native + React-Native-For-Web + Redux + GraphQL + Node + PostgreSQL


React-Native + React-Native-For-Web + Relay + GraphQL + Node + PostgreSQL


React-Native + React-Native-For-Web + Apollo + GraphQL + Node + PostgreSQL

j'ai lu beaucoup d'articles énonçant les avantages de l'utilisation de chaque cadre, mais la quantité de contenu et les articles sont un peu effrayant. Je comprends qu'il n'y a pas de bonne ou de mauvaise réponse. Cependant, il serait bon de savoir quelle pile mentionnée ci - dessus va bien ensemble en gardant à l'esprit-moins de courbe d'apprentissage, une bonne documentation, maintenabilité, moins de solutions de rechange.

21
demandé sur JCM 2017-04-09 16:03:15

2 réponses

je pense que si vous êtes en provenance d'un Réagir + Redux arrière-plan, puis Apollon doit être le chemin à parcourir pour vous!

Note: Si vous êtes un nouveau venu au GraphQL, je vous recommande de vérifier comment GraphQL où vous trouverez des tutoriels sur Relay et Apollo.

quelques informations:

  • Relais est très puissant mais aussi extrêmement complexe et s'accompagne d'une courbe d'apprentissage remarquable.
  • Apollo s'appuie sur Redux si ce n'est pas vraiment pertinent pour vous en tant que développeur, car le magasin est caché. Cependant, des concepts similaires à ceux de Redux sont utilisés par exemple pour mettre à jour le store avec updateQueries.
  • il est aussi assez straightfoward à combinez le magasin Apollo avec votre propre magasin Redux si vous voulez gérer un État autre que les données mises en cache du serveur
  • avec Apollo, vous pouvez aussi utiliser en temps réel abonnements
  • je recommanderais certainement de ne pas utiliser Apollo ou Relay et d'aller avec seulement Redux puisque les deux cadres prennent du travail notable sur vos épaules quand il s'agit d'envoyer des requêtes, des mutations, de la mise en cache et des mises à jour D'UI. Cependant, vous pourriez vouloir jeter un coup d'oeil à Lokka si vous recherchez un client GraphQL plus léger.

jetez un oeil à cette article détaillé comparer relais et Apollo pour plus informations de fond.

si vous voulez en savoir plus sur Relay et Apollo, consultez le comment GraphQL tutoriel site.

en passant, une autre option pour le backend si vous ne voulez pas le construire vous-même serait Graphcool (disclaimer: je travaille pour eux :)).

28
répondu nburk 2017-11-24 11:09:34

apprendre Apollo était très faisable avec ce cours que j'ai fait sur Udemy, GraphQL avec React et Apollo

Je n'ai aucune expérience avec le relais, mais j'ai entendu dire que c'est plus difficile à apprendre, donc si le temps est un facteur, Apollo pourrait être une bonne solution :) bonne chance

0
répondu Michiel Nuyts 2017-04-09 20:00:33