En resumen, son bibliotecas muy diferentes para propósitos muy diferentes, pero sí hay algunas similitudes vagas.
Redux es una herramienta para administrar el estado en toda la aplicación. Por lo general, se usa como arquitectura para interfaces de usuario. Piense en ello como una alternativa a (la mitad de) Angular.
RxJS es una biblioteca de programación reactiva. Suele utilizarse como herramienta para realizar tareas asincrónicas en JavaScript. Piense en ello como una alternativa a Promesas.
La programación reactiva es un paradigma (forma de trabajar y pensar) donde los cambios en los datos se observan a distancia . Los datos no se cambian a distancia .
Aquí hay un ejemplo de cambio a distancia :
// In the controller.js file
model.set('name', 'George');
El modelo se cambia del controlador.
Aquí hay un ejemplo de observado desde la distancia :
// logger.js
store.subscribe(function (data) {
console.log(data);
});
En el Logger, observamos los cambios de datos que ocurren en Store (desde la distancia) y escribimos en la consola.
Redux usa el paradigma reactivo solo un poco: la tienda es reactiva. No configuras su contenido a distancia. Por eso no hay store.set()
en Redux. La Tienda observa las acciones a distancia y se cambia a sí misma. Y la Tienda permite que otros observen sus datos a distancia.
RxJS también usa el paradigma reactivo, pero en lugar de ser una arquitectura, le brinda bloques de construcción básicos, Observables , para lograr este patrón de "observación desde la distancia".
Para concluir, cosas muy diferentes para diferentes propósitos, pero comparta algunas ideas.