Porqué aprender ReactJS y por dónde empezar

Porqué aprender ReactJS y por dónde empezar

Javascript es el lenguaje de la web.

Y alrededor de Javascript siempre han crecido librerías y frameworks para ayudar a implementar Javascript en nuestros proyectos webs: jQuery, Angular, Ember, etc.
Muchas de estas herramientas se ponen de moda hasta que una nueva herramienta las reemplaza.
Quizás por eso siempre he sido un poco escéptico a la hora de dedicar tiempo a aprender estas herramientas.

Hasta que llegó ReactJS.

La primera vez que oí hablar de ReactJS fue hace unos 4 años, cuando Fernando Rodríguez, con quien tuve el honor de aprender iOS y Objective-C, nos comentaba tras volver de dar un curso de iOS en las oficinas de Facebook que estaban usando una librería, con un lenguaje propio que parecía mezclar HTML y javascript.

Al tiempo, la librería se hizo pública, y desde el primer momento me llamó la atención por todas las ventajas que ofrecía como diseñador y desarrollador. Así que decidí aprender y gracias a la genial documentación que tiene Facebook y a la comunidad que comenzó a crecer a su alrededor no fue un proceso demasiado frustrante.

¿Pero, qué es ReactJS?

Qué es ReactJS

ReactJS es una librería de Javascript que se utiliza para renderizar interfaces de usuario y está orientado a componentes.
Esta librería desarrollada por Facebook es utilizada por la propia compañía para desarrollar sus productos, tanto Facebook como Instagram, por lo que podemos considerarlas como una herramienta estable, madura y en continua mejora.

Ventajas de usar ReactJS

Aprender a usar ReactJS tiene muchas ventajas. A continuación te comento las que más me gustan a mí, y las que me hacen preferir usar esta librería de Javascript.

No se recarga la página, solo se actualiza el elemento:

Una de las principales propiedades de ReactJS es que permite actualizar los elementos que componen un interfaz actualizando el componente que ha cambiado su estado, en lugar de actualizar toda la página. Esto permite interfaces para aplicaciones web realmente ágiles y con una experiencia de usuario excelente ya que no hay tiempos de espera para el usuario.

Esto hace que por fin una aplicación web sea una opción viable desde el punto de vista de la usabilidad, ya que crea aplicaciones rápidas, ágiles de usar de cara al usuario y que no están interrumpiéndose cada vez que hay algún cambio en los datos.

La comunidad:

El repositorio de ReactJS tiene más de 50.000 estrellas en Github. Se trata de una comunidad enorme y muy activa, que genera muchos recursos para aprender a utilizar la librería y mejorarla.
Es una de las librerías que más ha crecido en los últimos meses y cada vez se encuentra en más aplicaciones como AirBnB, Netflix, Instagram, e incluso para el panel de administración de WordPress.com y Jetpack.

Multiplataforma:

Es el propio claim de la librería: learn once, write anywhere. Y es que ReactJS te abre la puerta a cualquier plataforma: aprender ReactJS no solo te va a permitir la posibilidad de crear aplicaciones web o sitios web brutales. Además gracias a React Native te va a permitir crear aplicaciones nativas para iOS y Android a la vez, esto es, podrás crear aplicaciones nativas para móvil, tabletas, televisores, relojes, etc.

Escalabilidad:

Gracias al sistema de componentes puedes crear aplicaciones muy escalables y sencillas de mantener. El sistema de componentes se basa en que la aplicación es un componente formado por otros componentes más pequeños, como por ejemplo un botón.
En ReactJS cada uno de los componentes que forman la aplicación son totalmente independientes, incluso pueden tener su módulo de estilos exclusivos para él.
Este sistema además viene muy bien para trabajar en equipo, ya cada uno de los miembros puede desarrollar componentes independientes.

Es reactiva:

No tienes que estar actualizando todos los elementos cuyo valor estado ha cambiado, es el sistema el que automáticamente actualiza los elementos que tienen que actualizarse. No hay que utilizar listeners, ni delegados, ni observers. Es una forma muy cómoda de programar, y muy eficiente para evitar bugs. Cuando hay un cambio en el estado, todos los elementos que se tienen que actualizar son actualizados automáticamente sin que nosotros explícitamente tengamos que indicarlo.

Programación declarativa:

A diferencia de otros entornos, en ReactJS utilizamos programación declarativa en lugar de imperativa.
En la programación imperativa tu le dices a tu programa cómo hacer algo paso a paso, en ReactJS decimos qué es lo que queremos hacer o qué esperamos gracias a cierta capa de abstracción de la librería.

Abre la puerta al flujo de datos unidireccionales:

Esto quiere decir los datos de nuestra aplicación sigue siempre el mismo ciclo de vida, lo que permite tener aplicaciones más predecibles y sencillas.

Por dónde empezar a aprender ReactJS

Hay muchas formas y lugares donde aprender ReactJS. De todos los que he visto, yo te recomiendo éstos en el orden que te indico:

  1. Tutorial de la página de Facebook: Este ejemplo es el primero que deberías de hacer. Se trata de un tutorial actualizado y paso a paso donde irás describiendo todo lo que necesitas saber para empezar a utilizar la librería y donde se detallan muy bien los aspectos clave como propiedades, el estado, etc. Puedes comenzar el tutorial aquí, y en menos de una hora ya estarás deseando comenzar a hacer cosas en ReactJS. La mejor forma de asimilar lo que has aprendido en este tutorial es intentar ir un poco más allá del ejemplo, o incluso intentar hacerlo desde cero, consultando en el tutorial dónde te vas equivocando.
  2. Start using React to build web applications de Egghead. Puedes acceder aquí, y es un curso gratuito aunque requiere registro. Es un curso fantástico y que acaban de actualizar. Es muy rápido de ver, dura apenas una hora, y se compone de vídeos cortos que van al grano. Sin duda te va a permitir avanzar y tener un nuevo nivel de comprensión de la librería. Te recomiendo que primero veas el curso y luego lo implementes poco a poco por tu cuenta. En una tarde estarás totalmente preparada para comenzar a usar ReactJS en tus proyectos.
  3. Simon Swiss, tiene en su canal de YouTube una serie de videos donde hace una pequeña aplicación para elegir nombres que te permite seguir sumergiéndote de una forma muy sencilla en ReactJS. Aquí puedes ver stateless components, bind de inputs y más opciones de formulario. Son una serie de videos en inglés, pero bastante neutro y muy fácil de seguir. Son vídeos muy cortos y sencillos que te permitirán continuar con tu aprendizaje.
  4. Curso en castellano de ReactJS de Carlos Azaustre: es un curso de pago pero totalmente recomendado, donde Carlos repasa desde lo más básico hasta la integración con Firebase para realizar una aplicación completa. Totalmente recomendable y más sino te manejas en exceso con el inglés. Puedes tener acceso al curso aquí.
  5. Por último te recomiendo este genial curso de Wes Bos, titulado React for beginners, una auténtica joya. En este curso, Wes hace una aplicación desde el principio incluyendo animaciones y te permitirá crear una base muy segura para tu aprendizaje de la librería. Un curso muy recomendable para aprender ReactJS y al que puedes acceder desde aquí.

Conclusión

Así que ya no tienes excusa para no empezar a aprender ReactJS hoy mismo. Una librería que no sólo te va a permitir crear grander productos multiplataforma. También te preparará para un futuro muy brillante.