React js + ES6

27
Introduzione a React.js + ES6 DevDay Napoli 16 novembre 2015 - Davide Cerbo

Transcript of React js + ES6

Page 1: React js + ES6

Introduzione aReact.js + ES6

DevDay Napoli 16 novembre 2015 - Davide Cerbo

Page 2: React js + ES6

Davide

Davide Cerbo

10+ anni di esperienza

Full stack (o quasi)

Page 3: React js + ES6

Cosa è React?

React è una libreria per la UI, in MVC è la V

Page 4: React js + ES6

+

Page 5: React js + ES6
Page 6: React js + ES6

Disclaimer

Questa presentazione non contiene tutto lo scibile su REACT e ES6, ma solo quello che

ritengo sia utile per iniziare.

Page 7: React js + ES6

Ancora meglio!

Page 8: React js + ES6

Introduzione a ES6

● Arrows● Classes● Modules

Page 9: React js + ES6

Arrows

● var f = (a,b) => a + b; // f(1,2) = 3

● [“a”, ”b”, “c”].map(v => v.toUpperCase()); // [“A”, “B”, “C”]

● Lexical this

Page 10: React js + ES6

Classes

Page 11: React js + ES6

Modules

Page 12: React js + ES6

Ed ancora...

● Promises● Text template● Destructuring● etc…

https://github.com/lukehoban/es6features

Page 13: React js + ES6
Page 14: React js + ES6

Sbam!

Page 15: React js + ES6

Components + JSX

Metodoobbligatorio

JSX

Componente

Page 16: React js + ES6

State & props

Le proprietà sono opzioni del componente che vengono passate dal padre al figlio e sono immutabili

Lo stato rappresenta la situazione attuale dell’oggeto ed è mutabile.

Page 17: React js + ES6

Virtual DOM

● React utilizza una rappresentazione virtuale del DOM

● Usa un algoritmo di differenza tra alberi ed una euristica O(n^3) => O(n)

● Questo garantisce elevate prestazioni

Page 18: React js + ES6

One-way data binding

<ComponentA />

<ComponentB />

<ComponentC />

<ComponentB />

Page 19: React js + ES6

Hello Component!

Page 20: React js + ES6

Demo

Page 21: React js + ES6

Demo

https://github.com/gesposito/bare-webpack

unzip bare-webpack-master.zip

cd bare-webpack-master

npm install

npm run dev

http://localhost:3000

Page 22: React js + ES6

Hello Component! (+ sorpresa)

Page 23: React js + ES6

REFS

Page 24: React js + ES6

Non è tutto

Page 25: React js + ES6

Time travelhttps://github.com/gaearon/redux-devtools

Page 26: React js + ES6

Link e risorse

● https://egghead.io/series/react-flux-architecture● https://facebook.github.io/react/● https://www.youtube.com/watch?v=bEI06xF_xxE (Video in italiano)● https://www.youtube.com/watch?v=-A90OnLeWfA (Video in italiano)● https://www.youtube.com/watch?v=ET0KWjoRMao (Video in italiano)● https://code-cartoons.com/a-cartoon-intro-to-redux-3afb775501a6● https://code-cartoons.com/a-cartoon-guide-to-flux-6157355ab207