ReactJS, la biblioteca JavaScript para ‘front-end’ desarrollada por Facebook
Son ya muchas las ocasiones en las que en BBVAOpen4U nos hemos acordado de JavaScript como ese lenguaje de programación que lo está cambiando casi todo. Desde hace dos años, el boom en todo lo referente a esta sintaxis ha sido enorme, con el lanzamiento de infinidad de librerías para la parte de front-end de los proyectos digitales, en concreto para el desarrollo de aplicaciones. Un ejemplo perfecto de este crecimiento es ReactJS, una librería JavaScript para el diseño de aplicaciones de una sola página o SPA (en inglés Single Page Application).
Una de las ventajas de ReactJS con respecto al resto de librerías es que detrás de ella se encuentra una de las compañías más importantes del mundo. Casi no necesita presentación. ReactJS es una librería en JS desarrollada por los ingenieros de Facebook para facilitar a los desarrolladores el diseño de interfaces que cumplan con los mejores estándares de experiencia de usuario. Por ahora es una biblioteca que va por la versión 0.10.7 y tiene una licencia de código abierto.
Algunas características importantes de ReactJS:
● Es una biblioteca JavaScript, no un marco de desarrollo en JavaScript. Por tanto ReactJS no compite en el mismo mercado que otras soluciones como AngularJS, EmberJS o BackboneJS de las que ya hemos hablado aquí más de una vez. Sería una herramienta para interfaces similar a Knockout.js.
● ReactJS se encarga solo de la vista de la aplicación dentro de un paradigma Modelo-Vista-Controlador. Ahora bien, los ingenieros de Facebook recomiendan el uso de ReactJS junto a Flux, la arquitectura que la red social utiliza para crear aplicaciones web por el lado del cliente. En ese caso, se pasa de un modelo MVC a un flujo de datos unidireccional. La idea es bastante sencilla: los datos de la aplicación fluyen en una sola dirección.
● Suele ser habitual la combinación de ReactJS con otro tipo de bibliotecas o marcos de desarrollo en JavaScript como los ya mencionados.
● Actualización parcial del DOM con cada cambio de la vista. Con cada alteración se modifica un DOM virtual, que permite que el DOM real solo cambie en las partes que han experimentado alteraciones. Mejora el consumo de memoria y el rendimiento con respecto a otros frameworks.
● Ya hemos contado que el uso de los componentes se ha convertido en una tendencia interesante dentro del desarrollo de aplicaciones. La gran ventaja es que luego esos componentes se puedan reutilizar en otros desarrollos posteriores. ReactJS es una librería perfecta para ese nuevo enfoque.
● ReactJS ofrece una alternativa llamada JSX, una extensión de la sintaxis JavaScript que tiene una apariencia similar al lenguaje de marcado XML. Es un lenguaje orientado a objetos de tipo estático diseñado para su ejecución en todos los navegadores modernos. La gran ventaja de este lenguaje de programación es que es conciso y sencillo para la definición de las estructuras de árbol mediante los atributos. Además, la compilación del código es rápida, tanto para dispositivos iOS como Android.
● ReactJS funciona con el nuevo estándar ECMAScript v6 para JavaScript.
● Curva de aprendizaje corta para desarrolladores en JavaScript.
Más sobre Flux como arquitectura para ReactJS
Las aplicaciones desarrolladas con Flux tienen tres componentes a partir de las acciones (actions) que se producen en las aplicaciones durante la navegación de los usuarios: selección de items, interacción con botones o menús… Con cada uno de esos movimientos de navegación se genera un evento en JavaScript. ¿Qué hacen cada uno de los elementos de una app con Flux a partir de ese evento?
● Dispatcher. Se encarga de gestionar todos los eventos provocados por la navegación de un usuario y la creación de distintas acciones. De esas acciones se puede desprender una reacción o todo lo contrario.
● Store. Acumulan los datos necesarios que luego provocan una modificación en la vista que ve el usuario en la app. Conectan el Dispatcher y las vistas.
● View. Es el resultado visual del lanzamiento de eventos y cambio de datos.
Cómo empezar a funcionar con ReactJS
Para trabajar con una librería como ReactJS es indispensable tener instalados en la máquina tres elementos: Grunt, una librería JavaScript para configurar tareas automáticas que ahorren tiempo y costes en el desarrollo de apps; Node.js, un entorno en tiempo de ejecución por la capa del servidor; y NPM (Node Package Manager), el sistema de instalación de módulos cuando se está usando Node.js.
● Browserify: un paquete popular dentro de NPM. Es una herramienta que permite al desarrollador gestionar dependencias por el lado del cliente. Facilita la instalación y configuración de módulos a través de un bundle.
● Babel: un compilador de código a código para JavaScript. Lo que permite es transformar ECMAScript 6, la última versión del lenguaje ECMAScript, en ECMAScript 5, que a diferencia de ES6 sí tiene soporte en los navegadores. Es la única forma posible de aprovechar las ventajas de ES6 sin problemas. La instalación de Babel se realiza a través de NPM con este comando:
<div id=”root”>
<p>Aquí cargará ReactJS su propio componente</p>
<p>Si ves esto, es que algo no ha salido bien :(</p>
</div>
<!– jQuery (necessary for Bootstrap’s JavaScript plugins) –>
<script src=”https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js“></script>
<!– Include all compiled plugins (below), or include individual files as needed –>
<script src=”//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js”></script>
<!– Este fichero contiene ReactJS y la definición de nuestro componente –>
<script src=”js/bundle.js”></script>
Banco Bilbao Vizcaya Argentaria, S.A. titular de este portal utiliza cookies y/o tecnologías similares propias y de terceros para fines técnicos, de personalización, analíticos, de publicidad comportamental o publicidad relacionada con tus preferencias sobre la base de un perfil elaborado a partir de tus hábitos de navegación (por ejemplo, páginas visitadas). Si deseas obtener información más detallada, consulta nuestra Política de Cookies.
Panel de configuración de cookies
Este es el configurador avanzado de cookies propias y de terceros. Aquí puedes modificar parámetros que afectarán directamente a tu experiencia de navegación en esta web.
Cookies técnicas (necesarias)
Estas cookies son importantes para darte acceso seguro a zonas con información personal o para reconocerte cuando inicias sesión.
Denominación
Titular
Duración
Finalidad
gobp.lang
BBVA
1 mes
Preferencia de idioma
aceptarCookies
BBVA
1 año
Configuración Cookies aceptadas
_abck
BBVA
1 año
Ayuda a protegerse contra los ataques de sitios web maliciosos
bm_sz
BBVA
4 horas
Ayuda a protegerse contra los ataques de sitios web maliciosos
ADRUM_BTs
Salesforce Marketing Cloud
Sesión
Requerido para la supervisión del servicio, inherente al SFMC
ADRUM_BT1
Salesforce Marketing Cloud
Sesión
Requerido para la supervisión del servicio, inherente al SFMC
ADRUM_BTa
Salesforce Marketing Cloud
Sesión
Requerido para la supervisión del servicio, inherente al SFMC
ADRUM_BT
Salesforce Marketing Cloud
Sesión
Requerido para la supervisión del servicio, inherente al SFMC
xt_0d95e
Salesforce Marketing Cloud
Sesión
Recordar las preferencias del usuario (si las hay)
__s9744cdb192d044faa1bf201d29fafd1e
Salesforce Marketing Cloud
Sesión
Recordar las preferencias del usuario (si las hay)
wpml_browser_redirect_test
WPML
Sesión
Traducción de textos del portal
wp-wpml_current_language
WPML
24 horas
Traducción de textos del portal
Cookies de Analítica
Permiten medir, de forma anónima, el número de visitas o la actividad. Gracias a ellas podemos mejorar constantemente tu experiencia de navegación.
Dispones de una mejora continua en la experiencia de navegación.
Con tu selección no podemos ofrecerte una mejora continua en la experiencia de navegación.
Denominación
Titular
Duración
Finalidad
AMCV_***
Adobe Analytics
Sesión
ID de visitante único que se usan en las soluciones de Marketing Cloud
AMCVS_***
Adobe Analytics
2 años
ID de visitante único que se usan en las soluciones de Marketing Cloud
demdex (safari)
Adobe Analytics
180 días
Crear y almacenar identificadores únicos y persistentes
sessionID
Adobe Analytics
Sesión
Cookie interna de Launch usada para identificar al usuario
gpv_URL
Adobe Analytics
Sesión
plugin Adobe Analytics: getPreviousValue Capturar el valor de una determinada variable en la siguiente vista de página, en este caso la prop1
gpv_level1
Adobe Analytics
Sesión
Cookie utilizada para almacenar el levl1 del DataLayer de la página anterior.
gpv_pageIntent
Adobe Analytics
Sesión
Cookie utilizada para almacenar el pageIntent de la página anterior.
gpv_pageName
Adobe Analytics
Sesión
Cookie utilizada para almacenar el pagename de la página anterior.
aocs
Adobe Analytics
Sesión
Cookie que almacena los primeros valores recogidos al inicio de un proceso.
TTC
Adobe Analytics
Sesión
Cookie usada para almacenar el tiempo transcurrido entre el evento App Page Visit y App Completed.
TTCL
Adobe Analytics
Sesión
Cookie usada para almacenar el tiempo transcurrido entre el evento LogIn y App Completed.
s_cc
Adobe Analytics
Sesión
Determinar si las cookies están activas
s_hc
Adobe Analytics
Sesión
Cookie usada por Adobe con propositos de analítica.
s_ht
Adobe Analytics
Sesión
Cookie usada por Adobe con propositos de analítica.
s_nr
Adobe Analytics
2 años
Determinar el número de visitas de usuario
s_ppv
Adobe Analytics
Persistente
plugin Adobe Analytics: getPercentPageViewed Determinar el procentaje de página que visualiza un usuario
s_sq
Adobe Analytics
Sesión
Funcionalidades ClickMap/ActivityMap
s_tp
Adobe Analytics
Sesión
Cookie usada por Adobe con propositos de analítica.
s_visit
Adobe Analytics
2 años
Cookie usada por Adobe para saber cunado una sesión se ha iniciado.
Cookies de Publicidad
Permiten que la publicidad que te mostramos sea personalizada y relevante para ti. Gracias a estas cookies no verás anuncios que no te interesen.
Dispones de una publicidad adaptada a ti y a tus preferencias.
Con tu selección pierdes la personalización de la publicidad, solo verás anuncios genéricos.
Denominación
Titular
Duración
Finalidad
OT2
VersaTag
90 días
Cookie de VersaTag usada para almacenar un id de usuario y el numero de visitas del usuario.
u2
VersaTag
90 días
Cookie de VersaTag en la que se almacena el ID del usuario
TargetingInfo 2
MediaMind
1 año
Cookie que sirve para asignar un número unico random que genera MediaMind.
Cookies de Personalización
Estas cookies están relacionadas con características generales como, por ejemplo, el navegador que utilizas.
Dispones de una experiencia y contenidos personalizados.
Con tu selección no podemos ofrecerte una navegación y contenidos personalizados.
Denominación
Titular
Duración
Finalidad
mbox
Adobe Target
9 días
Cookie usada por Adobe Target para hacer test de personalizacion de experencia del usuario.
Parece que estás navegando desde MéxicoEspañaArgentinaPerúColombiaBélgicaChileEEUUFranciaHong KongItaliaPortugalReino UnidoTurquíaUruguayVenezuelaAlemania, así que vamos a mostrarte el contenido personalizado para tu localización. Cambiar
Selecciona el país
Para poder acceder al área privada y sandbox correspondiente, selecciona el país de las APIs que quieres utilizar.
Preferencias de Navegación
Elige el país del que quieres que te mostremos su contenido por defecto.