Redux no esta muerto

September 24, 2018

...

Ha existido una suerte de ruido a través del tiempo en internet donde se dice que redux puede ser reemplazado por otras alternativas como la implementación de context por parte del equipo de React o clientes como GraphQL. Acá hablaremos un poco sobre esos temas.

TL;DR

Redux está muerto?

No, tiene para mucho rato más, redux implementa el patrón publish/subscribe en el cliente pero con unas pequeñas adaptaciones para que el código sea más fácil de mantener.

Pero otros desarrolladores no lo usan

Cierto, hay muchas alternativas para redux. Su filosofía es tener un único árbol con el estado de la aplicación y que sea predecible, pero si lo utilizas para casos sencillos puede ser que no necesites redux.

Entramos en detalle

La solución por defecto que la mayoría de los desarrolladores toma es utilizar redux con React, es importante mencionar que redux es solo un contenedor de estado que permite la actualización de este mediante funciones puras. Las funciones puras son aquellas que no generan efectos (llamar a una API, escribir en base de datos, generar una fecha, entre otros) por lo que hace su mantención y extensión algo predecible y fácil de mantener. Pero sin embargo siempre existirán alternativas dependiendo del caso que se quiera abordar.

Redux está siendo sobreutilizado

En este primer punto lo más probable es que se tenga razón. Es la solución por defecto, existen muchos boilerplate en internet que ya vienen con redux, además de muchos tutoriales que te explican como hacer un todolist con redux por lo que se tiende a crear un proyecto e inmediatamente agregar redux como dependencia. Acá hay un punto importante a aclarar, si es que vas a utilizar redux para hacer un hola mundo, dejame decirte que no necesitas redux. Si es que vas a crear una aplicación sencilla con un objetivo acotado donde no seró muy grande lo más probable es que tampoco necesites redux. Per para un caso más amplio y tal vez el más recurrente, si vas a construir una aplicación donde no se tiene un norte definido, donde deberemos construir funcionalidades que iremos botando para luego ir creando otras y cada vez más código, es muy probable que para tu caso redux te venga muy bien.

La nueva API de Context puede reemplazar redux

La nueva API permite pasarle datos a los componentes de manera lateral y no de arriba hacia abajo como se construyen los componentes, esto es muy util cuando quieres utilizar internacionalización. Si solo vas a utilizar redux para pasar las props de arriba hacia abajo lo más probable es que nunca lo necesitaste en un comienzo. Recordemos que redux además de contener el estado nos da los reducers que son muy fáciles de testear, middlewares para centralizar lógica que usamos una y otra vez en nuestra app. También tiene redux devtools, action creators que son formas de ayudarnos a construir un código más conciso.

GraphQL puede reemplazar redux

A ver... detengamos un poco acá, la comunidad creo que hace más referencia a utilizar apollo para traer la data desde el servidor (el cual tiene cache, subscripciones entre otros) y si solo usas redux para traer datos y actualizar el estado la verdad es que no tiene sentido usarlo a menos que implementemos unos middlewares custom para así darle un cache con un mayor control. Pero si solo vas a traer datos, olvidate de todas esas librerías! Yo personalmente puedo comentarte de que redux anda muy bien con apollo, pueden funcionar en conjunto y entregarte un mundo de posibilidades para mejorar desempeño y mantenibilidad de tu aplicación. Pero si solo vas a hacer fetch... mejor usar fetch o axios no?

Quieres aprender redux?

Si estas interesado en aprender redux puedes darte una vuelta por su documentación pero si crees que necesitas un curso sin grasa para ser productivo de forma inmediata puedes ver este curso en udemy con un cupón de descuento a 9.99 USD donde se aborda React, React Router, Redux, Redux-Form y optimizaciones para ahorrar hasta un 90% del código que se escribe.


Suscríbete

Suscríbete a la lista para más cursos, posts y videos tutoriales. Prometo no enviarte más de un correo semanal 🙏

Creado por Nicolás Schürmann ingeniero e instructor de software. Cuando no está programando, esta frente a una cámara dictando cursos, creyéndose youtuber o apoyando a sus alumnos. Puedes seguirlo en twitter o también suscribirte a su canal de youtube. Considera comprar sus cursos por este medio y así apoyas al instructor.