Lección 1 . 1 : ¿Qué es React y por qué usarlo?

En esta lección, presentamos React, una potente biblioteca de JavaScript desarrollada por Facebook para construir interfaces de usuario dinámicas. Hablamos sobre su eficiencia gracias al uso del DOM virtual, su estructura basada en componentes y la robusta comunidad que respalda su ecosistema. Exploramos las razones para usar React, desde su flexibilidad y capacidad para manejar aplicaciones a gran escala hasta el gran número de oportunidades de trabajo para los desarrolladores de React.

EDUCACIÓN

Jorge Escoto

5/21/20238 min read

text
text

Antes de comenzar, es importante mencionar que este curso asume que ya tienes conocimientos básicos de HTML y CSS. Es decir, deberías estar familiarizado con estos dos "lenguajes" sigueme la corriente y tener al menos una idea vaga de cómo usarlos.

Tambien agrego que cada punto lo tratare de xplicar a detalle pero si no lo quieres leer todo pondre un TLDR antes de cada explicacion detallada para que si tengas una idea basica de lo que explico

Lección 1: ¿Qué es React y por qué usarlo?

React es una biblioteca de JavaScript creada por Facebook que se utiliza para desarrollar interfaces de usuario, específicamente para aplicaciones de una sola página (SPA). Es importante mencionar que React no es un marco completo (como Angular o Vue), sino que se centra principalmente en la vista en el modelo MVC (Modelo-Vista-Controlador).

¿Cómo funciona React?

React hace uso de algo llamado DOM virtual (Document Object Model), que es una representación del DOM real. Cada vez que hay un cambio en el estado de nuestra aplicación, React crea un nuevo DOM virtual. Luego, compara este nuevo DOM virtual con el anterior y hace los cambios mínimos necesarios en el DOM real. Este proceso se llama "reconciliación" y es lo que hace que React sea tan rápido y eficiente.

Solo por si te preguntas de que rayos me habla Jorge con este llamado DOM y porque react usa un Dom Virtual y no el real!! rapidamente te aclaro la duda asi

El DOM, o Modelo de Objeto de Documento, es una representación en árbol de todos los elementos de una página web. Permite a los lenguajes de programación interactuar con la estructura, el contenido y el estilo de un sitio web, principalmente a través de JavaScript. El DOM convierte cada elemento HTML, sus atributos y contenido en objetos que los desarrolladores pueden manipular para crear experiencias web dinámicas e interactivas.

¿Por qué usar React?

1. Eficiencia:

El TLDR es que Gracias al DOM virtual y al proceso de reconciliación, React puede manejar actualizaciones y renderizados de manera muy eficiente, lo que significa que las aplicaciones de React son generalmente rápidas y responsivas.

React se ha ganado una reputación por su alta eficiencia en el manejo de interfaces de usuario interactivas y dinámicas. Esto es en gran parte gracias a su innovador enfoque de utilizar un DOM virtual, que es esencialmente una copia ligera del DOM real.

Para entender cómo esto mejora la eficiencia, es útil entender que en el desarrollo web, interactuar con el DOM puede ser un proceso costoso en términos de rendimiento. En el enfoque tradicional, cada vez que se realiza un cambio en la interfaz de usuario, todo el DOM debe ser actualizado y redibujado. En aplicaciones complejas y de gran escala, esto puede llevar a una degradación significativa del rendimiento y a una mala experiencia de usuario.

Aquí es donde entra el DOM virtual de React. En lugar de interactuar directamente con el costoso DOM real, React realiza todas las operaciones en el DOM virtual. Cuando se realiza un cambio en el estado de la aplicación, React crea una nueva versión del DOM virtual y la compara con la versión anterior, un proceso llamado "difusión". Luego, utilizando un algoritmo inteligente de "reconciliación", React es capaz de determinar cuál es la manera más eficiente de actualizar el DOM real para reflejar estos cambios. Solo los nodos que necesitan ser cambiados en el DOM real son redibujados, minimizando así el costo de actualización y maximizando la eficiencia.

Este enfoque permite que React maneje cambios de estado frecuentes y grandes cantidades de datos sin ralentizar la aplicación. Permite a las aplicaciones de React ser altamente responsivas y rápidas, proporcionando una excelente experiencia de usuario, incluso en aplicaciones web de gran escala con interacciones de usuario intensivas y dinámicas. Es uno de los factores clave que han hecho de React una opción tan popular para el desarrollo de interfaces de usuario modernas.

2. Componentización:

El TLDR es: React se basa en componentes, lo que significa que puedes dividir tu interfaz de usuario en piezas aisladas, reutilizables y manejables, cada una de las cuales maneja su propio estado. Esta estructura de componentes facilita la escritura, mantenimiento y prueba de tu código.

React adopta un enfoque de componentes para construir interfaces de usuario. Un componente en React es una unidad de código independiente que devuelve elementos de React que forman parte de la interfaz de usuario. Cada componente tiene su propio estado y lógica, facilitando la encapsulación y la separación de responsabilidades.

Los beneficios de este enfoque basado en componentes incluyen:

2.1. Reutilización de código: Los componentes son reutilizables, lo que significa que puedes usar el mismo componente en diferentes partes de tu aplicación. Esto evita la repetición innecesaria de código.

2.2. Mantenibilidad: Cada componente es una unidad independiente de código, por lo que es más fácil de mantener y depurar. Si hay un problema, es más fácil de identificar ya que suele estar limitado a un componente específico.

2.3. Separación de responsabilidades: Cada componente tiene su propio estado y lógica, permitiendo que cada componente se ocupe de su propia funcionalidad. Esto facilita la comprensión de cómo funciona la aplicación.

2.4. Fácil prueba: Los componentes son más fáciles de probar, ya que pueden probarse de manera aislada. Puedes configurar diferentes estados para el componente y verificar que se comporta como se espera en cada uno.

2.5. Mayor coherencia: Cuando utilizas componentes reutilizables en toda tu aplicación, puedes lograr una mayor coherencia en la interfaz de usuario. Esto puede mejorar la experiencia del usuario y dar a tu aplicación una apariencia más profesional.

La componentización en React permite construir aplicaciones de una manera más modular y mantenible, facilitando la creación de interfaces de usuario complejas y dinámicas.

3. Ecosistema y comunidad fuertes:

EL TLDR es React tiene un ecosistema muy fuerte y una comunidad activa, lo que significa que hay muchas bibliotecas de terceros disponibles y mucho soporte si te encuentras con problemas. También hay muchos recursos de aprendizaje y oportunidades de trabajo para desarrolladores de React.

React es ampliamente reconocido no solo por sus capacidades técnicas, sino también por su fuerte ecosistema y comunidad. Estos son elementos vitales que respaldan y nutren el desarrollo continuo y la adopción de esta tecnología.

3.1. Bibliotecas de terceros: El ecosistema de React está lleno de bibliotecas de terceros que puedes usar para añadir funcionalidades a tu aplicación sin tener que programarlas desde cero. Estas bibliotecas pueden cubrir una amplia gama de necesidades, desde la gestión del estado (como Redux o MobX), pasando por el enrutamiento (como React Router), hasta soluciones de interfaz de usuario (como Material-UI o Ant Design). Esta gran cantidad de bibliotecas disponibles ayuda a los desarrolladores a ahorrar tiempo y esfuerzo, ya que pueden reutilizar código existente en lugar de tener que escribir todo desde cero.

3.2. Comunidad activa: La comunidad de React es vibrante y altamente activa. Hay una gran cantidad de desarrolladores, tanto profesionales como aficionados, que contribuyen constantemente al ecosistema de React. Esto significa que puedes encontrar mucha ayuda y soporte si te encuentras con problemas o dificultades. Los lugares para interactuar con la comunidad incluyen foros, grupos de discusión, sitios de preguntas y respuestas como Stack Overflow, y plataformas de código abierto como GitHub.

3.3. Recursos de aprendizaje: Dada la popularidad de React, hay una gran cantidad de recursos de aprendizaje disponibles. Estos incluyen tutoriales en línea, blogs, cursos de video, libros, documentación oficial, etc. Estos recursos hacen que aprender React sea accesible para cualquier persona interesada, independientemente de su nivel de experiencia.

3.4. Oportunidades de trabajo: Como una de las bibliotecas de JavaScript más populares y demandadas, hay una gran cantidad de oportunidades de trabajo para los desarrolladores de React. Muchas empresas, desde startups hasta corporaciones de Fortune 500, buscan desarrolladores de React para construir y mantener sus aplicaciones web.

En resumen, tener un ecosistema fuerte y una comunidad activa hace que trabajar con React sea una experiencia más gratificante y menos problemática. Te brinda el soporte y los recursos necesarios para construir aplicaciones robustas y de alta calidad.

4. Flexibilidad:

El TLDR es A diferencia de otros frameworks como Angular, React es menos prescriptivo y te da más libertad para decidir cómo quieres estructurar tu aplicación. React también se puede utilizar con otras bibliotecas o marcos, como Redux para la gestión del estado y React Router para el enrutamiento.

React se destaca de otros frameworks de JavaScript como Angular debido a su flexibilidad. Esto se debe a varias razones:

4.1. Menos prescriptivo: Algunos frameworks, como Angular, son muy prescriptivos, es decir, te dan una estructura y metodología específica que debes seguir al crear tu aplicación. Por ejemplo, Angular te proporciona una arquitectura clara y definida basada en TypeScript, un lenguaje de programación de tipado estático, y tiene su propio conjunto de convenciones y prácticas que los desarrolladores deben adoptar. En contraste, React es menos prescriptivo y más centrado en la vista de tu aplicación. Te da más libertad para estructurar y organizar tu código como mejor te parezca, lo que puede ser beneficioso si prefieres tener más control sobre tu código.

4.2. Composición con otras bibliotecas o marcos: React es una biblioteca centrada en la interfaz de usuario y se ocupa principalmente de la vista en una arquitectura MVC (Modelo-Vista-Controlador). Aunque React tiene formas de manejar el estado a nivel de componente, no prescribe una solución única para la gestión del estado a nivel de aplicación, ni ofrece una solución de enrutamiento por defecto. En su lugar, puedes elegir entre varias bibliotecas para manejar estas preocupaciones según tus necesidades. Por ejemplo, puedes usar Redux o MobX para la gestión del estado, y React Router para el enrutamiento. Esto significa que React puede integrarse y trabajar en conjunto con otras bibliotecas o marcos, dándote la flexibilidad para seleccionar las herramientas que mejor se adapten a tus necesidades.

En resumen, la flexibilidad de React radica en su filosofía de dar a los desarrolladores más libertad y control para decidir cómo quieren estructurar y organizar sus aplicaciones. Esta flexibilidad puede ser una ventaja si buscas una solución que se pueda adaptar a tus necesidades específicas, en lugar de tener que adaptarte a las convenciones y restricciones de un framework más prescriptivo.

5. Uso en Facebook y Instagram:

Ambos servicios utilizan React en producción desde su creación, lo que demuestra que la biblioteca puede manejar aplicaciones a gran escala.

React, sin embargo, tiene una curva de aprendizaje. Aunque es posible que te encuentres con desafíos mientras aprendes React, la inversión vale la pena dada la eficiencia, la potencia y la flexibilidad que React ofrece para el desarrollo de interfaces de usuario.

En la próxima lección, configuraremos tu entorno de desarrollo y crearemos tu primer proyecto con React usando Create React App. Esto te proporcionará una plantilla de proyecto para comenzar a desarrollar aplicaciones con React.

Espero que esta lección te haya dado una buena introducción a lo que es React y por qué podrías querer usarlo. Si tienes alguna pregunta, ¡no dudes en preguntar! la pagina de contacto sirve para que me envies un email o puedes hacerlo en la pagina principal de esta pagina!

En resumen

esta primera lección, introducimos React, una biblioteca JavaScript centrada en la creación de interfaces de usuario, especialmente en aplicaciones de una sola página. Destacamos la eficiencia de React gracias al uso del DOM virtual y su estructura basada en componentes que promueve la reutilización y mantenibilidad del código. También mencionamos el sólido ecosistema y la comunidad que respaldan a React, así como su flexibilidad y capacidad para manejar aplicaciones a gran escala.