Actualidad FrontEnd JS Programación

¿Qué es React y por qué tiene tanto éxito?

A principios de la década de 2010, Facebook era dolorosamente consciente de que el tradicional sistema de conexiones entre vista y datos no era muy eficiente en webs que, como la suya, recibían miles de peticiones cada día. Esto provocaba cargas más lentas de lo deseable y una cantidad de recursos monstruosa que intentaban paliarlo.

Así que encargó a su equipo de ingenieros que buscaran una solución y, en 2011, Jordan Walke lanzó ReactJs.

Jordan Walke

A partir de entonces Instagram, BBC, Airbnb, Netflix, Dropbox… y prácticamente la mayor parte de los grandes proyetos de FrontEnd, han ido adoptando esta librería que se ha convertido en casi un estándar.

Pero… ¿Qué es lo que la hace tan buena renderizando contenido? ¿Cuáles son sus limitaciones? ¿Qué nos depara el futuro? Estas son sólo algunas de las cuestiones que intentaremos responder en este nuevo artículo de ¡Loopeando.com!

 

[resumen]
  1. ¿Qué es React?
  2. ¿Por qué es tan eficiente? El DOM Virtual
  3. Más novedades: Arquitectura de componentes y flujo unidireccional
  4. El ciclo de vida de los componentes
  5. El ecosistema de React
[/resumen]

 

[titulo]¿Qué es React?[/titulo] [subraya_verde]React, también conocido como ReactJS, es una librería JavaScript diseñada para el desarrolo de UI (Interfaces de Usuario).[/subraya_verde] Con ella podemos realizar desarrollos complejos centrados en webs tipo SPA (Single-Page Application), es decir, webs capaces de ir variando y actualizando la información representada sin necesidad de recargarse ni emplear hipervínculos. Algo similar a lo que hacíamos con las llamadas Ajax.

React cumple por tanto la función “V” de un framework “MVC” (Modelo-Vista-Controlador). Eso quiere decir que, a diferencia de frameworks completos como Angular, React únicamente se centra en la construcción de las “Vistas” (interfaces), y necesita de otras herramientas para poder completar un proyecto completo.

Esto permite mucha flexibilidad a la hora de escoger nuestro propio entorno de trabajo, pudiendo por ejemplo elegir AngularJS o cualquier implementación de Flux (Redux, Fluxxor, Lux.js, Omniscent…) para el Modelo, y React para la Vista.

[titulo]¿Por qué es tan eficiente? El DOM Virtual[/titulo]

Imaginemos que queremos crear una aplicación en JavaScript para ver el pronóstico del tiempo en diversas ciudades. Cada vez que hacemos clic en una, se nos muestra el tiempo que hará en ese lugar durante la próxima semana.

Si realizásemos la API con JavaScript puro, cada vez que pulsásemos en una ciudad todo el DOM de navegador se renderizaría cargando todos los elementos de nuevo. ¿No sería más eficiente cargar únicamente los datos ampliados de la ciudad en la que hemos pulsado, sin tener que renderizar todo lo demás tras cada acción?

Eso es lo que se plantearon los chicos de Facebook, y esa es la razón principal de la existencia de ReactJs: Construir aplicaciones que usan datos que cambian todo el tiempo, y hacerlo eficientemente.

[subraya_verde]Para ello, esta librería utiliza JSX, una representación ficticia de HTML que permite registrar los cambios en un DOM virtual almacenado en memoria. Cada cambio que se realiza en un bloque de contenidos (componente), es almacenado en este DOM Virtual y, cuando debe renderizar, solo lo hará con los componentes alterados.[/subraya_verde] Si debe cambiar sólo la temperatura de una única ciudad, eso hará. Evitando así renders completos.

El DOM Virtual, a diferencia del común o de navegador, pesa muy poco, utiliza escasos recursos y al ser JavaScript se compila y renderiza  rápidamente.

 

[titulo]Más novedades: Arquitectura de componentes y flujo unidireccional[/titulo]

Los componentes son los ladrillos con los que construye React.

Consisten en entidades independientes y reusables que encapsulan código para generar piezas capaces de desarrollar una acción concreta. Cada salida de un componente interacciona con otro, al que nos referimos como componente hijo. Éste a su vez puede tener otros hijos generando así aplicaciones complejas en forma de árbol:

react

Es una forma fácil y práctica de organizar el código evitando así el código spaguetti.

Los componentes pueden compartirse y, de hecho, en la comunidad de React tenemos miles de ellos, todos Open Source y descargables a golpe de clic.

¿Que necesitamos un buscador? ¿Un sistema de login o un contador? Buscamos el componente en la galería y lo descargamos.

Al ser los componentes piezas encapsuladas, podemos sustituirlos fácilmente, inhabilitarlos, editarlos… y sabemos que cualquier error que se genere en ellos quedará limitado a ese componente y las salidas que genere, siendo así muy sencillo el debugging.

Esto nos lleva a otra de las características de React: Funciona con un flujo de datos unidireccional. ¿Qué significa? Cada componente pasa la información a sus componentes hijos y no al revés. Esto hace fácil el seguimiento de la información y la detección de errores en aplicaciones complejas.

 

[titulo]El ciclo de vida de los componentes[/titulo]

En ReactJs hay 2 tipos de componentes:

  • Los Functional Components o Stateless: Son similares a las funciones de toda la vida.
  • Los Class component o Statefull Component.

Un Class Component ha de contener, al menos, un state y un método render:

import React from "react";
class ComponentExample extends React.Component {
  state = {
    data = ""
  }
  render () {
    return (
      <h1>Hello World!</h1>
    )
  }
}
export default ComponentExample;

El state (estado) son los datos con los que queremos trabajar e incluso mostrar cuando el componente se renderiza. El método “render”, por otro lado, es responsable de describir cómo se tiene que ver dicho componente.

Pero los Class Component pueden tener muchos otros métodos conformando lo que se conoce como “El Ciclo de Vida” de los componentes.

Este ciclo de vida es vital para entender cuándo deben solicitarse datos a un servidor y cuándo los cargará. Así como cuándo es la manera más óptima de realizar determinadas acciones.

Los pasos esenciales del ciclo de vida de un componente son:

 

  • Montaje

    • Constructor: Se establece la configuración inicial del componente.
    • Render: Genera la interfaz gráfica.
    • componentDidMount: Final de la etapa de montado. El componente ya ha sido renderizado en el DOM. Este es el punto donde deben realizarse las peticiones al servidor.
  • Actualización

    • Render: Cuando se realiza cualquier cambio en el DOM virtual, se llama de nuevo al Render para mostrar esos cambios.
    • componentDidUpdated: Análogo al componentDidMount de la etapa de montaje. Se le llama tras terminar de renderizar y es cuando se vuelven a realizar las peticiones de cambio al servidor. Si las hubiese, vuelve a ejecutarse este ciclo: Render -> componentDidUpdated.
  • Desmontaje

    • componentWillUnmount: Si algún componente ya no debe mostrarse, se llama a este método.

 

*Existen otros métodos más avanzados que pueden incluirse en el ciclo de vida, pero por ser este un artículo introductorio, se ha decidido omitirlos.

 

[titulo]El ecosistema de React[/titulo]

Como decíamos, React es una librería, no un framework. Esto quiere decir que en comparación con Angular o Ember, se queda a medio camino al no incluir la parte “M” de la arqutectura “MVC”. Y, dependiendo de cómo trabajemos, puede que tampoco la “C”.

Sin embargo, React puede crear aplicaciones completas si seguimos la arquitectura Flux (Ej: Redux.js), pues ésta puede encargarse del flujo de datos haciendo así que React, ahora ya sí, sea equiparable a un framework.

Pero no únicamente eso, las miles de librerías y aplicaciones disponibles para React, lo convierten en una herramienta tremendamente flexible y poderosa.

Especial mención merece React Native, otra herramienta del ecosistema que permite desarrollar aplicaciones en JavaScript que se compilan como nativas tanto en Android como en iOs.

Cristian Sarabia Martínez

Desde que a principios de los 90 mi padre desempolvó su Spectrum, no he dejado de probar y experimentar con la tecnología.

Enamorado del mundo web, Full Stack Developer de profesión y diseñador por devoción.

Ahora hago mis pinitos en esto del blogging para compartir con vosotros un poquito de todo lo que la comunidad me ha dado.

1 Comentario

Haz clic aquí para dejar tu comentario

  • A person essentially help to make seriously articles I would state. This is the first time I frequented your website page and thus far? I surprised with the research you made to create this particular publish amazing. Excellent job!

Flickr

  • Anja
  • Reader
  • très près
  • brève
  • dans un filet
  • Catriona
  • bad weather
  • gun  & shadow
  • Bidule

About Author

ThemeForest

Collaboratively harness market-driven processes whereas resource-leveling internal or "organic" sources. Competently formulate.

Calendar

septiembre 2025
L M X J V S D
1234567
891011121314
15161718192021
22232425262728
2930  

RSS Meks Blog

  • How Adding Slack Bot Boosted Our Culture of Appreciation 3 julio, 2024
    Sweet Kudos is a Slack bot that enhances employee recognition, rewards, and celebrations within your team. It empowers team members to express gratitude and appreciation effortlessly by giving virtual Kudos. The post How Adding Slack Bot Boosted Our Culture of Appreciation appeared first on Meks.
    Dusan Milovanovic
  • 10 Best Knowledge Base & Wiki WordPress Themes 2021 15 septiembre, 2021
    Running a successful online business requires an exceptional WordPress knowledge base theme that organizes documentation and helps customers. Customization options, intuitive navigation, unique layouts, and fast responsiveness are just some of the features you need. The following 10 WordPress wiki themes represent the best options for 2021 and beyond. Explore the full range to determine […]
    Dusan Milovanovic
  • How to increase WordPress Memory Limit (quick fixes) 16 junio, 2021
    Here is a post about how to increase the memory limit in WordPress. Allowed memory size exhausted error message showed up in your WordPress installation? No worries – this is one of the most common errors in WordPress. You can apply an easy fix by increasing the memory limit in your PHP. Table of Contents […]
    Dusan Milovanovic
  • How to use (and why) WordPress sitemap plugin 1 marzo, 2021
    Did you know that by knowing how to use the WordPress sitemap plugin you can significantly improve your site’s visibility and traffic? Although it isn’t mandatory to have a sitemap on your site, having one significantly improves the site’s quality, crawlability and indexing. All this is important for better optimization, which is why we wanted […]
    Ivana Cirkovic
  • 22 free and premium podcast software for your show [2021 edition] 18 enero, 2021
    You’re determined to start or improve your podcast but don’t know which podcast software to use to really make it stand out? We’ve got you! #podcasting Top 22 free and premium podcast software for your show #WordPressTips #podcasting The post 22 free and premium podcast software for your show [2021 edition] appeared first on Meks.
    Ivana Cirkovic
  • Digital storytelling with WordPress – an all-in-one guide to make your web stories pop! 23 noviembre, 2020
    Wondering how to improve digital storytelling with WordPress and build more awareness and exposure of your business? Let our guide lead the way. The post Digital storytelling with WordPress – an all-in-one guide to make your web stories pop! appeared first on Meks.
    Ivana Cirkovic
  • How to use WordPress autoposting plugin to improve your visibility and SEO? 10 septiembre, 2020
    Did you know you can use the WordPress autoposting plugin for your content efforts and improve not only your time management but your business and visibility as well? The post How to use WordPress autoposting plugin to improve your visibility and SEO? appeared first on Meks.
    Ivana Cirkovic
  • How to create a personal branding site? Step-by-step DIY guide 15 agosto, 2020
    Looking for ways and means to create a personal branding site? Well, look no further ’cause we’re giving away all the how-to’s to do it yourselves! The post How to create a personal branding site? Step-by-step DIY guide appeared first on Meks.
    Ivana Cirkovic
  • Top 15 WordPress content plugins and tools to improve your visibility and rankings 16 julio, 2020
    Let’s take a look at some of the must-have WordPress content plugins and tools to use to improve both your UX and rankings. The post Top 15 WordPress content plugins and tools to improve your visibility and rankings appeared first on Meks.
    Ivana Cirkovic
  • WCEU 2020 recap – key takeaways from the biggest online WordPress conference 9 junio, 2020
    Missed WCEU 2020 and all the exciting stuff from there? Here are all the key takeaways and main points to remember so, take notes! The post WCEU 2020 recap – key takeaways from the biggest online WordPress conference appeared first on Meks.
    Ivana Cirkovic

Text

Distinctively utilize long-term high-impact total linkage whereas high-payoff experiences. Appropriately communicate 24/365.

Archives