with modern reactjs react-native redux graphql relayjs

reactjs - modern - Relay vs Redux vs Apollo con GraphQL y React-Native



relay vs apollo (2)

Tengo que comenzar un nuevo proyecto (web + nativo) (aplicación de tamaño medio) desde cero. Debido a la gran cantidad de marcos de trabajo de JS y su implementación, especialmente en los últimos años, he tenido una segunda duda sobre mi pila habitual.

He estado usando react + redux en el front-end junto con Node y MongoDB en el backend que se comunican a través de las API de REST.

Para este nuevo proyecto, he decidido ir con React-Native + React Native para Web + Node + PostgreSQL. Sin embargo, me pregunto qué marco debería usar para la obtención de datos y la administración del estado / tienda.

Hasta ahora, Redux funcionó muy bien para mí. Sin embargo, debido a la naturaleza de la evolución de JS. Soy un poco escéptico con la misma pila que he estado usando en el pasado.

¿Cuáles son los pros y los contras si voy con la siguiente pila?

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

He leído muchos artículos que indican los beneficios de usar cada marco, pero la cantidad de contenido y artículos son un poco atemorizantes. Entiendo que no hay una respuesta correcta o incorrecta. Sin embargo, sería bueno saber qué pila mencionada va bien combinada teniendo en cuenta: menos curva de aprendizaje, buena documentación, capacidad de mantenimiento, menos soluciones.


Aprender Apollo fue muy factible con este curso que hice en Udemy, GraphQL con React y Apollo

No tengo experiencia con Relay, pero he oído que es más difícil de aprender, por lo que si el tiempo es un factor, Apollo podría ser una buena solución :) Buena suerte


Creo que si vienes de un fondo React + Redux, ¡Apollo debería ser el camino a seguir para ti!

Nota: Si eres un recién llegado completo a GraphQL, te recomiendo que consultes Cómo GraphQL, donde encontrarás tutoriales tanto en Relay como en Apollo.

Algunas informaciones:

  • El relé es muy poderoso pero también extremadamente complejo y viene con una curva de aprendizaje notable.
  • Apollo se basa en Redux, aunque eso no es realmente relevante para ti como desarrollador, porque la tienda está oculta para ti. Sin embargo, se utilizan conceptos similares a los de Redux, por ejemplo, para actualizar la tienda con updateQueries .
  • También es bastante sencillo combinar la tienda Apollo con su propia tienda Redux si desea administrar un estado que no sea los datos almacenados en caché del servidor
  • Con Apollo, también puedes utilizar suscripciones en tiempo real.
  • Definitivamente, recomendaría no usar Apollo o Relay e ir solo con Redux, ya que ambos frameworks le quitarán un trabajo notable cuando se trata de enviar consultas, mutaciones, almacenamiento en caché y actualizaciones de IU. Sin embargo, es posible que desee echar un vistazo a Lokka si está buscando un cliente GraphQL más ligero.

Eche un vistazo a este artículo detallado que compara Relay y Apollo para obtener más información de fondo.

Si desea obtener más información sobre Relay y Apollo, consulte el sitio web del tutorial Cómo hacer GraphQL .

Por cierto, otra opción para el backend si no quieres construirlo por ti mismo sería Graphcool (descargo de responsabilidad: trabajo para ellos :)).