40 votes

Différence entre : Redux et Relay

J'ai lu un certain nombre d'articles/docs basés sur redux et relais mais je ne comprends toujours pas comment ces deux bibliothèques sont différentes ?
Quels sont les avantages et les inconvénients de ces deux bibliothèques ?
Quel est le rôle exact de GraphQL dans le relais ?
Quelle est la bibliothèque qui convient le mieux aux applications orientées données d'entreprise comme CRM/ERP ?

74voto

Gershon Papi Points 1894

Tous deux sont des implémentations de Flux, un cadre de Facebook pour la gestion de l'état des applications.

  • Redux Redux est une bibliothèque javascript générale qui permet de gérer l'état de votre application. Redux n'est pas dépendant de react et peut être utilisé avec n'importe quelle bibliothèque. Le site react-redux La bibliothèque est utilisée pour intégrer facilement react avec redux. Dans redux, l'état de l'application est situé dans un magasin unique, chaque composant peut accéder à cet état, et peut aussi changer l'état en envoyant des actions. Redux ne gère pas ne gère pas la récupération des données, bien que cela puisse être fait manuellement : Il suffit de créer une action qui récupère les données du serveur dans le magasin. le magasin.

  • Relais : Créé par facebook pour react, et également utilisé en interne chez eux. Relay est similaire à redux en ce qu'ils utilisent tous deux un seul et unique magasin. La principale différence est que relay ne gère que l'état provenant du serveur, et tout accès à l'état est utilisé via des requêtes GraphQL (pour lire les données) et des mutations (pour modifier les données). Relay met en cache les données pour vous et optimise la récupération des données pour vous, en en ne récupérant que les données modifiées et rien de plus. Relay prend également en charge optimiste, c'est-à-dire la modification de l'état avant que le résultat du serveur n'arrive. résultat du serveur n'arrive.

GraphQL est un cadre et un protocole de services web qui utilise des requêtes déclaratives et composables, et qui résout des problèmes tels que la surcharge et la souscharge, il est considéré comme un candidat valable pour remplacer REST.
GraphQL n'est pas dépendant du relais, c'est l'inverse, le relais dépend de GraphQL. Graphql peut être utilisé dans redux de la même manière que toute autre récupération de données.

Comme vous pouvez le constater, le principal avantage de relay par rapport à redux est que la récupération des données est déjà prise en charge, et très optimisée pour cela.
En revanche, il ne peut pas gérer l'état spécifique du client, mais cela est rarement nécessaire.

De plus, Relay est plus difficile à apprendre et à mettre en œuvre, mais le résultat final est meilleur et plus optimisé, mais pour les petites applications, j'opterais pour Redux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X