React

De Wikipedia, la enciclopedia libre
Ir a la navegación Ir a la búsqueda
React
reactjs.org
React.svg
Información general
Desarrollador(es) Facebook Inc.
Autor(es) Jordan Walke
Lanzamiento inicial marzo de 2013
Última versión estable 16.4.2
01 de agosto de 2018
Género Biblioteca JavaScript
Programado en JavaScript
Sistema operativo multiplataforma
Plataforma Multiplataforma
Tamaño 143 KiB producción
643 KiB desarrollo
Licencia Licencia MIT

React (también llamada React.js o ReactJS) es una biblioteca Javascript de código abierto diseñada para crear interfaces de usuario con el objetivo de facilitar el desarrollo de aplicaciones en una sola página. Es mantenido por Facebook y la comunidad de software libre, han participado en el proyecto más de mil desarrolladores diferentes. [1]

React intenta ayudar a los desarrolladores a construir aplicaciones que usan datos que cambian todo el tiempo. Su objetivo es ser sencillo, declarativo y fácil de combinar. React sólo maneja la interfaz de usuario en una aplicación; React es la Vista en un contexto en el que se use el patrón MVC (Modelo-Vista-Controlador) o MVVM (Modelo-vista-modelo de vista). También puede ser utilizado con las extensiones de React-based que se encargan de las partes no-UI (que no forman parte de la interfaz de usuario) de una aplicación web.

Según el servicio de análisis Javascript (en inglés "javascript analytics service"), Libscore, React actualmente está siendo utilizado en las páginas principales de Imgur, Bleacher Informe, Feedly, Airbnb, SeatGeek, HelloSign, y otras.[2]

Historia[editar]

React fue creada por Jordan Walke, un ingeniero de software en Facebook, inspirado por los problemas que tenía la compañía con el mantenimiento del código de los anuncios dentro de su plataforma. Enfocado en la experiencia del usuario y la eficiencia para sus programadores, influenciado por XHP (un marco de componentes de HTML para PHP), nace el prototipo ReactJS.

Antecedentes e inicios (2010- 2013) [3][editar]

  • 2010: Facebook introduce XHP a su stack PHP como código abierto.
  • 2011: Walke crea un prototipo para ReactJS
  • Abril, 2012: Facebook adquiere Instagram, Pete Hunt desarrolló React para hacerlo de código abierto.
  • Mayo 2013: Facebook lanza React como un código abierto.
  • Junio, 2013: React está disponible en JSFiddle.
  • Julio, 2013: React y JSX están disponibles en Ruby on Rails
  • Agosto, 2013: React y JSX están disponibles en aplicaciones de Python

Expansión y popularidad (2014- 2016)[editar]

  • Inicios de 2014: Conferencias ReactJS world tour, enfocadas en construir una comunidad y convertir a los 'haters' en aliados.
  • Enero, 2014: React Developer Tools es agregado como una extensión para Google Chrome.
  • Abril 7-9, 2014: React London 2014, una conferencia de 3 días sobre construir aplicaciones responsivas.
  • Enero 2015: Netflix anuncia que usará React para su desarrollo de interfaz de usuario.[4]
  • Inicios de 2015: Airbnb usa React.
  • Enero 28-29, 2015: Se publica la primera versión de React Native
  • Marzo 2015: React Native es público y de libre acceso para iOS, y está disponible en Github.
  • Septiembre 2015: La primera versión de React Native para Android es publicada.
  • Febrero 22-23, 2016: React.js Conf 2016 en San Francisco.
  • Junio 2-3, 2016: ReactEurope 2016.
  • Julio 11, 2016: Se publica el sistema de Códigos de Error para React.[5]

Características[editar]

Virtual DOM[editar]

React mantiene un virtual DOM propio, en lugar de confiar solamente en el DOM del navegador. Esto deja a la biblioteca determinar qué partes del DOM han cambiado comparando contenidos entre la versión nueva y la almacenada en el virtual DOM, y utilizando el resultado para determinar cómo actualizar eficientemente el DOM del navegador.[6][7]​ Propiedades (props) de react.

Las propiedades[editar]

Las propiedades (también conocidas como 'props') pueden definirse como los atributos de configuración para dicho componente. Éstas son recibidas desde un nivel superior, normalmente al realizar la instancia del componente y por definición son inmutables.

El Estado[editar]

El estado de un componente se define como una representación del mismo en un momento concreto, es decir, una instantánea del propio componente. Existen dos tipos de componentes con y sin estado, denominados statefull y stateless.

Ciclos de vida[editar]

El ciclo de vida es serie de estados por los cuales pasan los componentes statefull a lo largo de su existencia. Se pueden clasificar en tres etapas de montaje o inicialización, actualización y destrucción. Dichas etapas tienen correspondencia en diversos métodos.

JSX[editar]

React utiliza una sintaxis parecida a HTML, llamada JSX. No es necesaria para utilizar React, sin embargo, hace el código más legible, y escribirlo es una experiencia similar a HTML. [8]

Ejemplo de un componente escrito con JSX
Ejemplo de un componente escrito con JSX

React Native[editar]

React Native es un framework te permite construir aplicaciones móviles utilizando solamente JavaScript y React. Utiliza el mismo diseño que React.js, permitiéndote usar elementos de interfaz de usuario móvil. No es para construir una ‘aplicación móvil web’, una ‘aplicación de HTML5’ o una ‘aplicación híbrida’, sino una aplicación móvil real que es indistinguible de otra aplicación que usa construida en un lenguaje nativo. React Native utiliza los mismos bloques fundamentales de interfaz de usuario que las aplicaciones normales de iOS y Android. [9]

A pesar de que React.js y React Native usen la misma estructura de código, no sirven para lo mismo. React.js es utilizado para hacer páginas web y trabaja con elementos del virtual DOM, mientras que por el otro lado React Native utiliza elementos nativos de interfaz de usuario de Android y iOS para crear aplicaciones para ambas plataformas.

Controversia de la licencia[editar]

React al ser publicado en mayo de 2013 utilizaba la licencia de software libre de Apache license 2.0. Con la actualización de React 0.12.0, la anterior licencia fue cambiada por la licencia BSD de 3 cláusulas junto con un texto del uso de las patentes.[10]

Este cambio provocó controversia en la comunidad de React y en la comunidad de código abierto en general, específicamente por las cláusulas en las que permitía a Facebook remover el derecho de uso de la licencia del usuario bajo condiciones que consideran que no ponen como prioridad a la comunidad. Esto provocó que la Apache Software Foundation incluyera la licencia de Facebook en la lista de licencias que no pueden ser utilizadas con productos Apache.[11]

Por su parte, Facebook redactó una publicación en la que explicaba el motivo del uso de sus licencias. En el documento se menciona que el motivo principal es evitar demandas malintencionadas que puedan costarles tiempo y dinero a la compañía.[12]

El 23 de septiembre de 2017 Facebook anunció que cambio la licencia de uso del React.js de BSD de 3 clausulas a la licencia MIT la cual es una licencia más permisiva en cuanto a su uso, en el anuncio Facebook mencionó que el objetivo de React es crear un ecosistema de software de codigo abierto, y no desean retroceder los avances sin ningún motivo aparente.[13]​ El 17 de febrero de 2018 anunciaron que React Native cambiaba su licencia de uso del BSD de 3 clausulas a MIT.[14]

Colaboraciones[editar]

React al ser una librería de código abierto, puede ser modificado por cualquier persona. Esto permite que cualquier usuario con conocimientos sea capaz de sugerir cambios o mejoras a la librería. Sin embargo, en un principio todas estas modificaciones no eran fáciles de encontrar puesto que estas se encontraban dispersas por diversas páginas, por lo que Facebook decidió crear un repositorio en GitHub. De esta forma podría facilitar la organización de la comunidad y los desarrolladores de React y almacenar las modificaciones hechas tanto por la comunidad como por el grupo de desarrollo de Facebook.

Enlaces externos[editar]

Referencias[editar]

  1. «React: Making faster, smoother UIs for data-driven Web apps». InfoWorld. 15 de mayo de 2015. Consultado el 26 de enero de 2016. 
  2. «React». Libscore. Consultado el 26 de enero de 2016. 
  3. Andrea Papp (4 de abril de 2018). «The history of React.js on a timeline» [La historia de React.js en una línea de tiempo]. Consultado el 11 de septiembre de 2018. 
  4. Jordanna Kwok (28 de enero de 2015). «Netflix Likes React». Consultado el 8 de octubre de 2018. 
  5. Keyan Zhang (11 de julio de 2016). «Introducing React's Error Code System» (en inglés). Consultado el 8 de octubre de 2018. 
  6. «An Introduction to React.js». Instrument. 2015. Consultado el 26 de enero de 2016. 
  7. «Working With the Browser». React. Consultado el 26 de enero de 2016. 
  8. Facebook Inc. (27 de junio de 2018). «React» (en inglés). 
  9. Facebook Inc. (Consultado el 30 de Septiembre 2018). «React Native» [Documentación oficial de React Native]. 
  10. «React CHANGELOG». Consultado el 8 de octubre de 2018. 
  11. «Apache legal». Consultado el 8 de octubre de 2018. 
  12. «Explaining React’s license» [Explicando la licencia de React]. Consultado el el 8 de octubre del 2018. 
  13. «Relicensing React, Jest, Flow, and Immutable.js». Consultado el 9 de octubre de 2018. 
  14. «React Native now has MIT Licence». Consultado el 9 de octubre de 2018. 

Véase también[editar]