¿Hay alguna razón para volver a hacer aplicaciones React sin Redux cuando Redux maneja claramente el estado mucho mejor?

“Redux maneja claramente el estado mucho mejor”

Cita necesaria.

Redux es un enfoque para manejar el estado. Echemos un breve vistazo bajo el capó de cómo funciona la reducción de una acción:

  1. Despachar un objeto que contiene una cadena (y, posiblemente, datos suplementarios)
  2. Ese objeto pasa a varias funciones
  3. Cada función pasa el objeto a través de un interruptor y devuelve su propia actualización local; en muchos casos, devuelve los mismos datos que ya estaban en el estado, ya que los datos rara vez se actualizan en múltiples reductores a la vez
  4. La tienda de aplicaciones emite un evento que es recogido por al menos un suscriptor, generalmente el nodo raíz
  5. Esto desencadena una nueva representación de todo debajo de los nodos suscritos

Hay muchas partes de este proceso que son extremadamente derrochadoras :

  • Redux trata todas las actualizaciones como cambios globales donde hay muchas veces que solo necesita realizar cambios locales : React maneja esto con gracia con this.state y setState
  • Redux pasa cada acción a través de cada reductor en una tienda: si no está aprovechando esto, entonces es probable que esté mejor servido con un paradigma global de getter / setter
  • Redux es mediocre para el manejo nativo de llamadas asincrónicas y delega mucho de esto a dependencias externas (Thunk, Saga). React se encarga de esto perfectamente con componentDidMount y muchas otras bibliotecas incorporan esta funcionalidad en su historia (Relay, Apollo, etc. )

Hay muchos enfoques para manejar el estado y lo que necesita a menudo diferirá de una aplicación a otra. Su trabajo no es solo unir el código en función de las tendencias, sino conocer los diferentes paradigmas que existen, comprender el contexto del problema que está tratando de resolver y desarrollar una solución que aproveche ese conocimiento .

Seguro. A menudo, cuando solo construyo aplicaciones a pequeña escala, me siento aliviado cuando puedo evitar las implementaciones adicionales que vienen con Redux. Si la aplicación sigue siendo simple, puede hacerlo solo con React simple usando todas sus funciones. Por lo tanto, el razonamiento sobre la aplicación a menudo también es más simple. Incluso en aplicaciones de mayor escala, es aconsejable aplicar el estado local de React tan a menudo como sea posible en lugar de usar solo Redux.

Bueno, esa es una gran pregunta.

Redux es el rey de la gestión del estado, es impresionante para rastrear el comportamiento del usuario, ya que puede iniciar sesión y analizar cada acción que realiza cada usuario mediante un middleware simple. Redux también es increíblemente poderoso para funciones como recarga en caliente y viajes en el tiempo.

Redux no es una solución única para la gestión del estado, puede probar Mobx, que también es genial.

En mi experiencia, Redux solo es necesario para aplicaciones medianas y grandes o aplicaciones que tienen un árbol de estado complejo que debe compartirse entre múltiples pantallas y componentes.

Con Redux hay mucho código repetitivo. Descubrirá que para cualquier cambio en el árbol de estado debe implementar una acción y un reductor.

Sí, y puedo dar un ejemplo. Tuve que crear un sitio que mostrara diez gráficos. Me alimentaron los datos detrás de los gráficos (valores x / y) usando un websocket y tuve que generarlos a medida que los datos se actualizaban cada 10 segundos más o menos.

Tenía quizás una docena de componentes, pero no usé redux. No lo necesitaba El estado solo se transmitía a través de los componentes. En este caso, redux habría sido excesivo. El estado del componente fue capaz de almacenar lo que necesitaba perfectamente. Redux habría agregado una tonelada de código, aumentando el tamaño del paquete y agregando complejidad.

Muchas aplicaciones complejas son mucho mejores con redux, pero hay algunas que no obtienen mucho de ellas.

Mira esto No podrías necesitar Redux – Dan Abramov – Medio

Christopher Mark Hayden

More Interesting

¿Cómo crean sus aplicaciones los creadores profesionales de aplicaciones?

¿Cuál es una buena idea para una aplicación móvil simple?

¿Cuánto debería pedir mi aplicación móvil a un proveedor de servicios importante?

¿Podemos encontrar estadísticas de sistemas operativos móviles en Europa?

Cómo crear una aplicación móvil para comenzar a ganar dinero

Cómo transmitir mis ideas a un equipo de desarrollo móvil

¿Qué haría para comenzar mi propia empresa en la venta de aplicaciones móviles?

Parece que libGDX es mejor que Android SDK para el desarrollo de aplicaciones. ¿Por qué no está derrotando el SDK en el mercado de desarrollo?

Estoy comenzando a programar y quiero hacer una aplicación usando el lenguaje Swift. ¿Es la nueva MacBook Pro una buena opción?

¿Necesita actualizar las publicaciones cada vez en una aplicación de noticias de Android (por ejemplo, Times of India) al igual que actualiza publicaciones o páginas en el back-end del sitio web?

Cómo desarrollar una aplicación como Uber sin antecedentes de programación

¿Por qué Telegram desarrolló su propio algoritmo criptográfico si ya hay TLS?

Con Android e iOS agregando demasiado a su SDK nativo, ¿qué puede agregar JavaFX para que los desarrolladores elijan JavaFX en lugar de SDK móvil nativo?

¿Qué empresas líderes de desarrollo de aplicaciones han creado aplicaciones móviles para restaurantes?

¿Cuánto costaría construir una aplicación para la protección de contraseña móvil?