SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
La librería react.js y su ecosistema
React.js Joaquin Salvachua
joaquin.salvachua@upm.es
Un poco de historia
❖ “just the UI”. Ataca la V del MVC.
❖ Desarrollado en Facebook para solventar sus problemas
internos.
❖ Liberada y usada por multiples proyectos-Compañias-
StartUPs.
http://conf.reactjs.com/schedule.html
Usado actualmente en …
❖ No en experimentos, sino en despliegue
final.
❖ Facebook e Instagram.
❖ Yahoo mail.
❖ Netflix.
❖ Airbn.
❖ Khan Academy
❖ Flipboard
❖ Github Atom ide
❖ Taobao
❖ Muchisismos más ….
Enfoque “funcional”
❖ Si al construir el interfaz todo es aceptable :
❖ ¿Por que complicarlo al recibir modificaciones de
diversas partes de la página?
❖ Regenerarlo todo de cero.
❖ ¿No va entonces muy lento?
❖ (( Conceptualmente funcional))
DOM virtual
❖ Puede que realicemos más
cambios en el DOM.
❖ Para no penalizar la velocidad
se hacen en un DOM virtual.
❖ Una vez acabados todos los
cambios se comparan las
diferencias con el DOM actual.
❖ Se actualiza el DOM
❖ Sorprendentemente es rápido.
Aplicaciones isomorfas
❖ El mismo código puede
ejecutarse en el cliente y en
navegador.
❖ Podemos modificar el arbol
DOM (navegador) ó enviar
html como “string” con los
cambios.
❖ Flexibilidad y menor coste
computacional.
Encapsulación
❖ Los componentes no son
mutables. Son autocontenidos.
❖ El estado está solo en los datos.
❖ No tenemos cambio de estado
(se regeneran desde cero).
❖ Ventajas:
❖ Reutilizables.
❖ Componibles.
❖ Unit Testing
❖ Velocidad.
❖ Flipboard app utilizando el
canvas. (60 fps)
❖ Netflix modificando Gibbon.js
❖ Copiado por ember 2.0 y
angular 2.0.
JSX
❖ Puesto que es orientado a vistas tengo un lenguaje de
renderizado.
❖ JSX mezcla javascript y html (menos raro de lo que
parece).
❖ traducible a JavaScript Puro (online - offline).
❖ No altera la semantica de JavaScript.
http://jsfiddle.net/uctrnnbk/
Herramientas
❖ React Developer tools.
❖ Extensión de chrome para inspeccionar los
componentes de React durante la ejecución.
Gulp
❖ Sustituye a GRUNT
❖ Utiliza el concepto unix de
tuberias para hacer las
transformaciones de datos.
❖ Más limpio y eficiente que
GRUNT.
Browserify
React IDE : Nuclide
❖ Ongoing
❖ Basado en atom
❖ (escrito usando
❖ react.js).
https://github.com/mikechau/
react-primer-draft
Patrones de USO: FLUX
En este libro los ejemplos están en smaltalk y
C++
MVC
El patrón MVC se usa en multiples
niveles.
A veces se abusa de él.
Complica a veces cuando evolucionamos
y modificamos desde múltiples sitios.
FLUX Patrón de uso que sustituye el
MVC
FLUX Patrón de uso que sustituye el
MVC
https://facebook.github.io/flux/
Lo importante es el flujo unidireccional de los datos.
Flux y React Ya hay modificaciones
(ReFLUX y otras)
MVC
http://fluxxor.com/what-is-flux.html
Aplicaciones nativas o html5
React Native
Learn Once,
Written everywhere.
(no existe lenguaje universal)
Otras Mezclas
❖ React se une, naturalemente,
con Bootstrap.
❖ Puede unirse con, entre otros :
❖ Backbone.js
❖ Angular.js
❖ Meteor.js
❖ la más afín
conceptualmente.
https://github.com/reactjs/react-meteor
Ecosistema
¿Preguntas?

Más contenido relacionado

La actualidad más candente

Capitulo 2 enrutamiento estatico
Capitulo 2 enrutamiento estaticoCapitulo 2 enrutamiento estatico
Capitulo 2 enrutamiento estatico
TeleredUSM
 
Cuda introduction
Cuda introductionCuda introduction
Cuda introduction
Hanibei
 

La actualidad más candente (20)

Power-up services with gRPC
Power-up services with gRPCPower-up services with gRPC
Power-up services with gRPC
 
Node ppt
Node pptNode ppt
Node ppt
 
GPU Virtualization on VMware's Hosted I/O Architecture
GPU Virtualization on VMware's Hosted I/O ArchitectureGPU Virtualization on VMware's Hosted I/O Architecture
GPU Virtualization on VMware's Hosted I/O Architecture
 
Capitulo 2 enrutamiento estatico
Capitulo 2 enrutamiento estaticoCapitulo 2 enrutamiento estatico
Capitulo 2 enrutamiento estatico
 
Cuda introduction
Cuda introductionCuda introduction
Cuda introduction
 
Presentacion i c m p
Presentacion i c m pPresentacion i c m p
Presentacion i c m p
 
The TCP/IP Stack in the Linux Kernel
The TCP/IP Stack in the Linux KernelThe TCP/IP Stack in the Linux Kernel
The TCP/IP Stack in the Linux Kernel
 
Embedded Linux/ Debian with ARM64 Platform
Embedded Linux/ Debian with ARM64 PlatformEmbedded Linux/ Debian with ARM64 Platform
Embedded Linux/ Debian with ARM64 Platform
 
Ceph Day Taipei - Accelerate Ceph via SPDK
Ceph Day Taipei - Accelerate Ceph via SPDK Ceph Day Taipei - Accelerate Ceph via SPDK
Ceph Day Taipei - Accelerate Ceph via SPDK
 
Proyecto arduino "discoteca"
Proyecto arduino "discoteca"Proyecto arduino "discoteca"
Proyecto arduino "discoteca"
 
CUDA
CUDACUDA
CUDA
 
Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD
 
Introduction to GPU Programming
Introduction to GPU ProgrammingIntroduction to GPU Programming
Introduction to GPU Programming
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network Interfaces
 
BPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLabBPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLab
 
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) 모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
 
Tutorial de XML en PDF
Tutorial de XML en PDFTutorial de XML en PDF
Tutorial de XML en PDF
 
Physical Memory Management.pdf
Physical Memory Management.pdfPhysical Memory Management.pdf
Physical Memory Management.pdf
 
Git vs svn
Git vs svnGit vs svn
Git vs svn
 
TRex Realistic Traffic Generator - Stateless support
TRex  Realistic Traffic Generator  - Stateless support TRex  Realistic Traffic Generator  - Stateless support
TRex Realistic Traffic Generator - Stateless support
 

Destacado

Manual Tutorial Javascript Con Ejemplos
Manual Tutorial Javascript Con EjemplosManual Tutorial Javascript Con Ejemplos
Manual Tutorial Javascript Con Ejemplos
Steven Gomez
 
JavaScript Avanzado
JavaScript AvanzadoJavaScript Avanzado
JavaScript Avanzado
Adolfo Sanz De Diego
 
Ejercicios resueltos
Ejercicios resueltosEjercicios resueltos
Ejercicios resueltos
fermodcor
 

Destacado (20)

Game of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCCGame of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCC
 
React, Flux y React native
React, Flux y React nativeReact, Flux y React native
React, Flux y React native
 
React.js in real world apps.
React.js in real world apps. React.js in real world apps.
React.js in real world apps.
 
Testing of React JS app
Testing of React JS appTesting of React JS app
Testing of React JS app
 
Workshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testingWorkshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testing
 
ECMAScript 6, o cómo usar el JavaScript del futuro hoy
ECMAScript 6, o cómo usar el JavaScript del futuro hoyECMAScript 6, o cómo usar el JavaScript del futuro hoy
ECMAScript 6, o cómo usar el JavaScript del futuro hoy
 
React – ¿Qué es React.js?
React – ¿Qué es React.js?React – ¿Qué es React.js?
React – ¿Qué es React.js?
 
Integrando React.js en aplicaciones Symfony (deSymfony 2016)
Integrando React.js en aplicaciones Symfony (deSymfony 2016)Integrando React.js en aplicaciones Symfony (deSymfony 2016)
Integrando React.js en aplicaciones Symfony (deSymfony 2016)
 
Robust web apps with React.js
Robust web apps with React.jsRobust web apps with React.js
Robust web apps with React.js
 
Aprende JavaScript
Aprende JavaScriptAprende JavaScript
Aprende JavaScript
 
React & Redux
React & ReduxReact & Redux
React & Redux
 
Manual Tutorial Javascript Con Ejemplos
Manual Tutorial Javascript Con EjemplosManual Tutorial Javascript Con Ejemplos
Manual Tutorial Javascript Con Ejemplos
 
An introduction to React.js
An introduction to React.jsAn introduction to React.js
An introduction to React.js
 
JavaScript Avanzado
JavaScript AvanzadoJavaScript Avanzado
JavaScript Avanzado
 
ejercicios php rfo
ejercicios php rfoejercicios php rfo
ejercicios php rfo
 
Php basico y avanzado
Php basico y avanzadoPhp basico y avanzado
Php basico y avanzado
 
JavaScript desde Cero
JavaScript desde CeroJavaScript desde Cero
JavaScript desde Cero
 
Curso Php
Curso PhpCurso Php
Curso Php
 
Php desde cero
Php desde ceroPhp desde cero
Php desde cero
 
Ejercicios resueltos
Ejercicios resueltosEjercicios resueltos
Ejercicios resueltos
 

Similar a Introducción al ecosistema de React.js

Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrasco
Manuel Carrasco Moñino
 
09. Java desde Cero autor UNAM_1.111.pdf
09. Java desde Cero autor UNAM_1.111.pdf09. Java desde Cero autor UNAM_1.111.pdf
09. Java desde Cero autor UNAM_1.111.pdf
Irene619127
 

Similar a Introducción al ecosistema de React.js (20)

Atica Dev Ops II
Atica Dev Ops IIAtica Dev Ops II
Atica Dev Ops II
 
202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy
 
Aprendiendo GWT
Aprendiendo GWTAprendiendo GWT
Aprendiendo GWT
 
20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript
 
Introducción a CoffeeScript
Introducción a CoffeeScriptIntroducción a CoffeeScript
Introducción a CoffeeScript
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrasco
 
Mi lenguaje de Programación de Preferencia: Javascript
Mi lenguaje de Programación de Preferencia: JavascriptMi lenguaje de Programación de Preferencia: Javascript
Mi lenguaje de Programación de Preferencia: Javascript
 
Gwt I - entendiendo gwt
Gwt I - entendiendo gwtGwt I - entendiendo gwt
Gwt I - entendiendo gwt
 
Rompiendo paradigmas
Rompiendo paradigmasRompiendo paradigmas
Rompiendo paradigmas
 
003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdf003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdf
 
Exposicion GWT
Exposicion GWTExposicion GWT
Exposicion GWT
 
Angular 6
Angular 6Angular 6
Angular 6
 
Aprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScriptAprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScript
 
Java Scripts
Java ScriptsJava Scripts
Java Scripts
 
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
 
09. Java desde Cero autor UNAM_1.111.pdf
09. Java desde Cero autor UNAM_1.111.pdf09. Java desde Cero autor UNAM_1.111.pdf
09. Java desde Cero autor UNAM_1.111.pdf
 
Java desde cero
Java desde ceroJava desde cero
Java desde cero
 
Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019
 
Blazor, un nuevo framework .NET
Blazor, un nuevo framework .NETBlazor, un nuevo framework .NET
Blazor, un nuevo framework .NET
 

Más de Joaquín Salvachúa

Big data Jornada Fundación Ramón Areces
Big data Jornada Fundación Ramón ArecesBig data Jornada Fundación Ramón Areces
Big data Jornada Fundación Ramón Areces
Joaquín Salvachúa
 

Más de Joaquín Salvachúa (20)

Eemov data
Eemov dataEemov data
Eemov data
 
Etica big data
Etica big dataEtica big data
Etica big data
 
FIWARE Data usage control
FIWARE Data usage controlFIWARE Data usage control
FIWARE Data usage control
 
Fiware overview3
Fiware overview3Fiware overview3
Fiware overview3
 
Fiware overview
Fiware overviewFiware overview
Fiware overview
 
Kubernetes2
Kubernetes2Kubernetes2
Kubernetes2
 
FIWARE Identity Manager Exercises
FIWARE Identity Manager ExercisesFIWARE Identity Manager Exercises
FIWARE Identity Manager Exercises
 
FIware Identity Manager
FIware Identity ManagerFIware Identity Manager
FIware Identity Manager
 
Fi ware en Hack for good (#H4G)
Fi ware en Hack for good  (#H4G) Fi ware en Hack for good  (#H4G)
Fi ware en Hack for good (#H4G)
 
Id fiware upm-dit
Id fiware  upm-ditId fiware  upm-dit
Id fiware upm-dit
 
Vagrant
VagrantVagrant
Vagrant
 
Big data Jornada Fundación Ramón Areces
Big data Jornada Fundación Ramón ArecesBig data Jornada Fundación Ramón Areces
Big data Jornada Fundación Ramón Areces
 
Intro20 socioeconomia
Intro20 socioeconomiaIntro20 socioeconomia
Intro20 socioeconomia
 
Master w20 01
Master w20 01Master w20 01
Master w20 01
 
Blogs micro
Blogs microBlogs micro
Blogs micro
 
Social networks upm
Social networks upmSocial networks upm
Social networks upm
 
Nube redes
Nube redesNube redes
Nube redes
 
Identidad2
Identidad2Identidad2
Identidad2
 
Blogs Micro
Blogs MicroBlogs Micro
Blogs Micro
 
Blogs Micro
Blogs MicroBlogs Micro
Blogs Micro
 

Introducción al ecosistema de React.js

  • 1. La librería react.js y su ecosistema React.js Joaquin Salvachua joaquin.salvachua@upm.es
  • 2. Un poco de historia ❖ “just the UI”. Ataca la V del MVC. ❖ Desarrollado en Facebook para solventar sus problemas internos. ❖ Liberada y usada por multiples proyectos-Compañias- StartUPs. http://conf.reactjs.com/schedule.html
  • 3.
  • 4. Usado actualmente en … ❖ No en experimentos, sino en despliegue final. ❖ Facebook e Instagram. ❖ Yahoo mail. ❖ Netflix. ❖ Airbn. ❖ Khan Academy ❖ Flipboard ❖ Github Atom ide ❖ Taobao ❖ Muchisismos más ….
  • 5. Enfoque “funcional” ❖ Si al construir el interfaz todo es aceptable : ❖ ¿Por que complicarlo al recibir modificaciones de diversas partes de la página? ❖ Regenerarlo todo de cero. ❖ ¿No va entonces muy lento? ❖ (( Conceptualmente funcional))
  • 6. DOM virtual ❖ Puede que realicemos más cambios en el DOM. ❖ Para no penalizar la velocidad se hacen en un DOM virtual. ❖ Una vez acabados todos los cambios se comparan las diferencias con el DOM actual. ❖ Se actualiza el DOM ❖ Sorprendentemente es rápido.
  • 7. Aplicaciones isomorfas ❖ El mismo código puede ejecutarse en el cliente y en navegador. ❖ Podemos modificar el arbol DOM (navegador) ó enviar html como “string” con los cambios. ❖ Flexibilidad y menor coste computacional.
  • 8. Encapsulación ❖ Los componentes no son mutables. Son autocontenidos. ❖ El estado está solo en los datos. ❖ No tenemos cambio de estado (se regeneran desde cero). ❖ Ventajas: ❖ Reutilizables. ❖ Componibles. ❖ Unit Testing ❖ Velocidad. ❖ Flipboard app utilizando el canvas. (60 fps) ❖ Netflix modificando Gibbon.js ❖ Copiado por ember 2.0 y angular 2.0.
  • 9. JSX ❖ Puesto que es orientado a vistas tengo un lenguaje de renderizado. ❖ JSX mezcla javascript y html (menos raro de lo que parece). ❖ traducible a JavaScript Puro (online - offline). ❖ No altera la semantica de JavaScript.
  • 11. Herramientas ❖ React Developer tools. ❖ Extensión de chrome para inspeccionar los componentes de React durante la ejecución.
  • 12. Gulp ❖ Sustituye a GRUNT ❖ Utiliza el concepto unix de tuberias para hacer las transformaciones de datos. ❖ Más limpio y eficiente que GRUNT.
  • 14. React IDE : Nuclide ❖ Ongoing ❖ Basado en atom ❖ (escrito usando ❖ react.js).
  • 17. En este libro los ejemplos están en smaltalk y C++ MVC El patrón MVC se usa en multiples niveles. A veces se abusa de él. Complica a veces cuando evolucionamos y modificamos desde múltiples sitios.
  • 18. FLUX Patrón de uso que sustituye el MVC
  • 19. FLUX Patrón de uso que sustituye el MVC https://facebook.github.io/flux/
  • 20. Lo importante es el flujo unidireccional de los datos. Flux y React Ya hay modificaciones (ReFLUX y otras)
  • 22. Aplicaciones nativas o html5 React Native Learn Once, Written everywhere. (no existe lenguaje universal)
  • 23. Otras Mezclas ❖ React se une, naturalemente, con Bootstrap. ❖ Puede unirse con, entre otros : ❖ Backbone.js ❖ Angular.js ❖ Meteor.js ❖ la más afín conceptualmente. https://github.com/reactjs/react-meteor