Budowa elementów GUI za pomocą biblioteki React - szybki start

21
Budowa elementów GUI za pomocą biblioteki React Tomek Sułkowski

Transcript of Budowa elementów GUI za pomocą biblioteki React - szybki start

Page 1: Budowa elementów GUI za pomocą biblioteki React - szybki start

Budowa elementów GUI za pomocą biblioteki React

Tomek Sułkowski

Page 2: Budowa elementów GUI za pomocą biblioteki React - szybki start

about.md

• Prowadzący:

• Tomek SułkowskiFront-end DeveloperTrener IT

Page 3: Budowa elementów GUI za pomocą biblioteki React - szybki start

about.md• Agenda:

• Wprowadzenie / kontekst / narzędzia

• Teoria / demo • Warsztat • Teoria / demo • Warsztat

• …

• Q & A

Page 4: Budowa elementów GUI za pomocą biblioteki React - szybki start

Narzędzia

Page 5: Budowa elementów GUI za pomocą biblioteki React - szybki start

Node Package Manager

• system zarządzania zależnościami dla server-side js i client-side js • zależności opisywane z dokładnością do wersji w pliku package.json

(nowy projekt tworzymy przez npm init) • npm install

- instaluje pakiety, których jeszcze nie ma w projekcie • npm update

- sprawdza, czy istnieją nowsze wersje pakietówinstaluje • npm install nazwa-pakietu --save lub --save-dev

- instaluje pakiet, dodaje go do package.json

przydatne skróty: npm init -y , npm i -S , npm i -D

Page 6: Budowa elementów GUI za pomocą biblioteki React - szybki start

webpacknpm install webpack -g npm install webpack --save-dev

module.exports = { entry: [ './js/index.js' ], output: { path: __dirname + '/static/', filename: 'bundle.js' }, plugins: [], module: { loaders: [ { test: /\.js$/, loaders: ['babel'], exclude: /node_modules/ } ] }, resolve: { extensions: ['.js', '.json'] }, devtool: 'source-map'};

Page 7: Budowa elementów GUI za pomocą biblioteki React - szybki start

hello React!

<body> <div id="app"></div> <script src="react/0.14/react.js"></script> <script src="react/0.14/react-dom.js"></script> <script> var root = React.createElement('div', null, 'Hello React!'); ReactDOM.render(root, document.getElementById('app')); </script></body>

Page 8: Budowa elementów GUI za pomocą biblioteki React - szybki start

hello React!

var root = React.createElement('section', null, React.createElement('h1', null, 'Lista zakupów'), React.createElement('h2', {id: 'food', className: 'subcaption'}, 'Spożywcze'), React.createElement('ul', null, ['Mleko', 'Jajka', 'Chleb'].map(function (item) { React.createElement('li', null, i), }) ));

Page 9: Budowa elementów GUI za pomocą biblioteki React - szybki start

hello React!

var root = React.DOM.section(null, React.DOM.h1(null, 'Lista zakupów'), React.DOM.h2({id: 'food', className: 'subcaption'}, 'Spożywcze'), React.DOM.ul(null, ['Mleko', 'Jajka', 'Chleb'].map(function (item) { React.DOM.li(null, item) }); ));

Page 10: Budowa elementów GUI za pomocą biblioteki React - szybki start

hello JSX

var root = <section> <h1>Lista zakupów</h1> <h2 id="food" className="subcaption"></h2> <ul> {['Mleko', 'Jajka', 'Chleb'].map(function (item) { return <li>{item}</li> })} </ul></section>;

Page 11: Budowa elementów GUI za pomocą biblioteki React - szybki start

React: componentvar Paragraph = React.createClass({ render: function () { return <p>{this.props.content}</p>; }});

class Paragraph extends React.Component { render() { return <p>{this.props.content}</p>; }}

const Paragraph = (props) => <p>{props.content}</p>;

ES5

ES6 React 0.13

ES6 React 0.14

Page 12: Budowa elementów GUI za pomocą biblioteki React - szybki start

React: component

class CommentBox extends React.Component { render() { return ( <div className="commentBox"> Hello, world! I am a CommentBox. </div> ); }}

Page 13: Budowa elementów GUI za pomocą biblioteki React - szybki start

ECMAScript 2015: (aka ES6)

aktualna wersja języka JavaScript

Page 14: Budowa elementów GUI za pomocą biblioteki React - szybki start

ES2015: przydatne konstrukcje

• Destructuring

• Spread operator

• Rest parameters

• Default values

• Arrow funcSons

• Template literals

• Object literals

• Classes

• Let, Const

• Modules ...

wypróbuj: https://babeljs.io/repl/ , http://jsbin.com, ...zobacz: https://babeljs.io/docs/learn-es2015/

Page 15: Budowa elementów GUI za pomocą biblioteki React - szybki start

ECMAScript 2015: (aka ES6)Wsparcie w przeglądarkach…

Page 16: Budowa elementów GUI za pomocą biblioteki React - szybki start

ES2015: narzędzia

• Pisząc kod aplikacji przeglądarkowych w ECMAScript 2015 musimy go transpilować

• Do wyboru: Traceur, TypeScript, Babel

… ale warto* *szybki rozwój js, więcej możliwości już dziś, mniej boilerplate code, ...

„Transpilers are here to stay”

Page 17: Budowa elementów GUI za pomocą biblioteki React - szybki start

what the flux ?ogólny opis architektury

Page 18: Budowa elementów GUI za pomocą biblioteki React - szybki start

what the flux ?

Facebook Flux, Fluxible by Yahoo, Reflux, Alt, Flummox, Marty.js, McFly, Lux, Material Flux, Redux,

Flambeau, Nuclear.js, Fluxette, Fluxxor, Freezer

ogólny opis architektury

implementacje:

Page 19: Budowa elementów GUI za pomocą biblioteki React - szybki start

Redux

• Niekoniecznie dla aplikacji React

• Niewielki kod źródłowy

• Niecałkiem flux

• Lepsze możliwości hot reloading

• Dynamiczny ekosystem

Page 20: Budowa elementów GUI za pomocą biblioteki React - szybki start

czas na kod

Page 21: Budowa elementów GUI za pomocą biblioteki React - szybki start

Dzięki za uwagę i zapraszam nahKp://www.sages.com.pl/Budowanie-wydajnych-i-

nowoczesnych-aplikacji-webowych-w-oparciu-o-React