¿Cuál es la diferencia entre ReactJs y Redux?

ReactJS es una biblioteca orientada a la vista. Redux es una biblioteca de gestión de estado. Se usan muy a menudo en tándem.

Reaccionar con solo lectura deja al desarrollador la libertad de elegir cómo se implementarán el modelo y el controlador. Redux, aunque es compatible con otros frameworks JS, fue desarrollado con React en mente. El creador de Redux ahora está trabajando en Facebook, la compañía que desarrolló React.

La tienda Redux protege el objeto de estado y los reductores sirven para incluir en la lista blanca las formas en que se puede actualizar el estado. Eso significa que los desarrolladores que trabajan en el proyecto tienen que ajustarse a los reductores disponibles que reciben (a través de los tipos de acción).

Esto evita que los miembros del equipo de desarrollo participen en prácticas descuidadas que pueden cambiar el estado de alguna manera accidental, como cambiar accidentalmente el tipo de datos de uno de los campos de datos. Si quisiera poder cambiar el tipo de datos de un campo, escribiría un reductor para permitirlo, y el desarrollador tendría que llamar explícitamente al método de envío con el tipo de acción correspondiente, por lo que tendría que ser deliberado.

En resumen, React proporciona una biblioteca de vista de rendimiento y Redux proporciona un flujo de trabajo de desarrollador de gestión de estado organizado. Muy a menudo se usan juntos.

ReactJS es una biblioteca que permite a los desarrolladores renderizar y actualizar vistas. Cuando entró en escena, su novedad fue su capacidad para comparar eficientemente las diferencias entre dos árboles DOM virtuales. Esto permitió a los desarrolladores volver a representar aplicaciones completas cada vez que se producía una actualización, en lugar de volver a representar manualmente los componentes individuales.

Esta mayor eficiencia hizo posible que grandes aplicaciones almacenen un solo estado de aplicación, actualicen y luego vuelvan a procesar todo según el estado actualizado de la aplicación.

Por ejemplo, el estado completo de una aplicación para una tarea pendiente puede verse así:

const initialState = {
título: ‘¡Mis todos!’,
artículos: [
‘Terminar este artículo’,
‘Hacer otro artículo’,
‘Publica sobre esto en Quora’,
],
};

Representar este estado con ReactJS se vería más o menos así:

La aplicación de clase extiende React.Component {
constructor (accesorios) {
super (accesorios);
this.state = props.initialState;
}

handleTitleUpdate = (evento) => {
this.setState ({
…este estado,
título: event.target.value,
});
};

render () {
const {title, items} = this.state;

regreso (

    {items.map (item => (

  • {item}
  • )}

);
}
}

Reaccionar.
,
document.getElementById (‘aplicación’)
);

Esta nueva forma de escribir aplicaciones Javascript, al tiempo que simplifica algunas complejidades antiguas, también introdujo algunas nuevas: a saber, cómo actualizar el estado compartido entre múltiples componentes. El enfoque ingenuo de los eventos de cambio burbujeante a un antepasado común rápidamente demostró ser insostenible. Después de haber encontrado este problema, Facebook lanzó un enfoque de diseño inicial llamado Flux, que finalmente fue reemplazado por una biblioteca llamada Redux.

Redux almacena y actualiza el estado requerido para representar una aplicación completa. Para ello, calcula el siguiente estado de la aplicación a través de una función que acepta el estado actual y un objeto que representa una acción. Esta función, llamada reductor, podría verse así para nuestra aplicación Tareas pendientes:

const reducer = (state = initialState, action) => {
switch (action.type) {
case ‘update_title’:
return {… estado, título: action.payload};
defecto:
estado de retorno;
}
};

Dado que Redux es un concepto tan simple, podemos recrear una versión simple para fines ilustrativos:

let currentState = initialState;
dejar oyentes = [];

const getState = () => currentState;

despacho const = (acción) => {
currentState = reductor (getState (), acción);

// ¡Deje que todos los componentes sepan que tenemos un nuevo estado!
for (let i = 0; i oyentes [i] ();
}
}

const subscribe = (oyente) => listeners.push (oyente);

const store = {
getState,
envío,
suscribir,
};

Actualizar la aplicación de esta manera nos permite reescribir nuestra aplicación Tareas pendientes de la siguiente manera:

La aplicación de clase extiende React.Component {
constructor (accesorios) {
super (accesorios);

this.state = props.store.getState ();
}

componentDidMount () {
this.props.store.subscribe (() => {
this.setState (this.props.store.getState ());
});
}

handleTitleUpdate = (evento) => {
this.props.store.dispatch ({
tipo: ‘update_title’,
carga útil: event.target.value,
});
};

render () {
const {title, items} = this.state;

regreso (

    {items.map (item => (

  • {item}
  • )}

);
}
}

Reaccionar.
,
document.getElementById (‘aplicación’)
);

Este cambio aparentemente pequeño en nuestra aplicación esencialmente mueve el almacenamiento de estado fuera del componente React. Una vez que hacemos esto, es posible compartir el estado de la aplicación con otros componentes, y es posible que otros componentes actualicen el estado de la aplicación (enviando una acción).

Si imagina que pasamos “almacenar” a todos los componentes de nuestra aplicación, entonces todos los componentes pueden simplemente llamar a “store.dispatch (…)” para actualizar todos los demás componentes de la aplicación. Básicamente, hemos creado e integrado una versión cruda de Redux en nuestra aplicación React. Las versiones reales de Redux y React-Redux ocultan gran parte del código adicional que tuvimos que escribir, como pasar la tienda a cada componente.

En resumen:

  • React eficientemente renderiza y actualiza grandes vistas HTML.
  • Redux almacena y actualiza el estado utilizado para representar una aplicación.

(Descargo de responsabilidad: no he probado ninguno de este código. El código falso de Redux tampoco limpia a los oyentes, así que por favor no lo use. Utilice la biblioteca real de Redux en su lugar. Es mucho mejor).

React es una herramienta para construir interfaces de usuario. Redux es una herramienta para manejar una gestión de estado compleja (que es necesaria para construir interfaces de usuario complejas). Redux se puede aplicar a diferentes herramientas, como angular, reaccionar, etc.

Las aplicaciones web interactivas requieren administración de estado, ya que permiten que su aplicación tenga múltiples escenarios para mostrar datos, dependiendo de la entrada del usuario. Básicamente, React le permite manejar el estado local para cada componente de su interfaz de usuario. Si tiene muchos componentes (léase: aplicaciones grandes y complejas), se vuelve bastante engorroso compartir el estado entre los componentes. ahí es donde ayuda Redux. tiene un concepto de ‘tienda’ que es esencialmente un árbol de estado global que se conecta a un solo componente que necesita acceso a alguna parte de ese árbol de estado global.

Como nota al margen, el creador de Redux (que ahora trabaja para el equipo principal de React), tuiteó esto:

Conclusión: si lo que buscas es interactividad, usaría React simple y usaría el estado local hasta que se volviera demasiado complicado de manejar. solo entonces consideraría Redux. (pero eventualmente elegiría mobx 🙂

También recomendaría visitar egghead.io – Aprenda herramientas profesionales de JavaScript con videos tutoriales y capacitación

React es una biblioteca front-end desarrollada por Facebook. Se utiliza para manejar la capa de vista para aplicaciones web y móviles. ReactJS nos permite crear componentes de interfaz de usuario reutilizables. Actualmente es una de las bibliotecas de JavaScript más populares y tiene una base sólida y una gran comunidad detrás.

Redux es como “una base de datos de backend en el lado del cliente donde almacena toda la información requerida para generar la vista”. Le ayuda a consultar SELECCIONAR, INSERTAR y ACTUALIZAR los datos (un registro) en la base de datos de JSON (denominado también árbol de estado único).

Saludos,

Entrenador ReactJS

Hay una gran diferencia.

React es una biblioteca para convertir la sintaxis HTML declarativa (JSX) en JavaScript, y luego usarla para renderizar selectivamente la página, ya sea como una página en vivo, ejecutándose en el navegador o en el servidor como un documento HTML.

Redux es una biblioteca para convertir todos los estados en un árbol y usar una puerta de enlace para obligarlo a separar el comportamiento de su aplicación de cómo cambia su estado, a través de acciones.

Ambas son solo dos bibliotecas diferentes que se complementan bien. Reaccionar si se usa con redux hará que la aplicación sea realmente escalable y bien mantenible. Aunque redux es más detallado, ofrece muchas ventajas en términos de mantener las interacciones y la única fuente de verdad.

Redux hace cumplir el “Estado no mutante”. Esto, cuando se combina con la “filosofía unidireccional” de reacción, ofrece muchos buenos beneficios.

Estaba desarrollando una aplicación 1 año antes que tenía muchas interacciones de usuario con el navegador DOM. Esas interacciones estaban vinculadas entre sí. Por ejemplo, el usuario actualizará el carrito y los detalles del carrito se actualizarán en función de eso. Además, cuando el usuario verifica más artículos, el carrito se actualizará en consecuencia.
Utilizamos Redux para resolver muchos problemas relacionados con las interacciones del usuario y los datos derivados.

Entonces mi respuesta sería Usar redux o flux
1. Muchas interacciones que en realidad no se necesitan enviar al servidor
2. Datos comunes sobre diferentes vistas recuperados una vez y mantenidos en el estado de la aplicación.
3. cuando su aplicación tiene algunos datos de API en función de los cuales muchos componentes van a cambiar según la interacción del usuario

No uses Redux cuando
1. Los datos serán estáticos y serán una representación directa en la vista.

2. No es realmente una aplicación de una sola página. Cuando sus puntos de vista son completamente independientes entre sí.

3. Interacción muy mínima entre componentes.

Confía en mí, no todas las aplicaciones necesitan Redux. De las 7 aplicaciones que hicimos en los últimos 18 meses, utilizamos redux para solo 3 aplicaciones. También esas 4 aplicaciones tenían muchas dependencias entre componentes. Produjo buenos resultados y eliminó gran cantidad de codificación de spagetti. Para aplicaciones más pequeñas, no preferimos redux principalmente debido al hecho de que es detallado. Tiene mucho código asociado solo para una pequeña tarea.

React se ocupa principalmente de la representación de componentes, y sus mecanismos de gestión de eventos y manejo de eventos existen para cumplir ese propósito. Redux se centra en la gestión centralizada del estado y no se mete en absoluto con la vista.