reactjs - react - Diferencia entre: Redux y Relay
render prop react (1)
He leído un número de artículos / documentos basados en redux y retransmisión, pero todavía estoy confundido sobre cómo estas dos bibliotecas son diferentes.
¿Cuáles son las ventajas y desventajas de estas dos bibliotecas?
¿Cuál es el rol exacto de GraphQL en el relevo?
¿Cuál es la biblioteca más adecuada para aplicaciones basadas en datos empresariales como CRM / ERP?
Ambas son implementaciones de Flux, un marco de Facebook para administrar el estado de la aplicación.
Redux : biblioteca javascript general que ayuda a manejar la administración del estado en su aplicación. Redux no es dependiente de la reacción y puede usarse con cualquier biblioteca. La biblioteca
react-redux
se utiliza para integrar fácilmente reaccionar con redux. En redux, el estado de la aplicación se encuentra en una sola tienda, cada componente puede acceder al estado y también puede cambiar el estado mediante acciones de despacho. Redux no controla la extracción de datos de la caja, aunque puede hacerse manualmente: simplemente cree una acción que obtenga los datos del servidor en la tienda.Relé : creado por Facebook para reaccionar, y también utilizado internamente allí. El relé es similar al redux, ya que ambos usan una sola tienda. La principal diferencia es que la retransmisión solo administra el estado originado en el servidor, y todo el acceso al estado se utiliza a través de consultas GraphQL (para leer datos) y mutaciones (para cambiar datos). Relay almacena en caché los datos para usted y optimiza la obtención de datos para usted, obteniendo solo los datos modificados y nada más. Relay también admite actualizaciones optimistas, es decir, cambiar el estado antes de que llegue el resultado del servidor.
GraphQL es un marco y protocolo de servicio web que utiliza consultas declarativas y compositivas, y resuelve problemas como sobre búsqueda y bajo captura, se cree que es un candidato válido para reemplazar REST.
GraphQL no es dependiente del relé, al contrario, el relé depende de graphql. Graphql se puede usar en redux de la misma manera que se realiza cualquier otra búsqueda de datos.
Como se puede ver, la principal ventaja de la retransmisión sobre el redux es que la obtención de datos ya está resuelta, y está muy optimizada para eso.
Por otro lado, no puede administrar el estado específico del cliente, pero eso rara vez es necesario.
Además, IMO Relay es más difícil de aprender e implementar, pero el resultado final es mejor y más optimizado, pero para aplicaciones pequeñas, me gustaría ir con redux.