React.js and Flux in details

arttrityak 2,544 views 32 slides Apr 26, 2015
Slide 1
Slide 1 of 32
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32

About This Presentation

React.js, Flux and React router in details + bonus React Native


Slide Content

React.js
и FLUX
Artyom Trityak
React.js and Flux
Artyom Trityak
Electric Cloud

Skype: art.trityak
E-mail: [email protected]

•Build complex UI without pain
•That’s easy - re-render whole page on change
•React.js will make a diff and apply only changes to
DOM
React? What’s React? Why React?

React elements composition

Nested elements

Nested elements

Nested elements
this.props.children

•SEO - no need phantom.js renderer for SPA
•Increase first load speed
•JS-bindings «on flight»
Server Side Rendering

Server Side Rendering: Node.js

Server Side Rendering: Node.js
https://github.com/artyomtrityak/react-server-render-node

Flux

Flux: one directional data flow

onClick
onSelect
onChange

Actions.actionName(params)
!
UserActions.createUser(…)
UserActions.selectGroup(…) 1
2
3
Flux: Who is owner? React is owner

1
2
3
4

Flux: Action -> WebUtils -> Dispatcher
1
2
3

Сервер
Fetch.js
Superagent
jQuery.ajax

EventEmitter
EventEmitter Events
1
2
3

ES6 Store

Immutable.js
http://facebook.github.io/immutable-js
•Immutable state
•One directional data flow

Flux: «умные» и «глупые» компоненты
Smart component
(state)
STORE
ACTIONS

Flux: «умные» и «глупые» компоненты
Smart component
(state)
STORE
ACTIONS
Dumb
component
(props)
Dumb
component
(props)
Dumb
component
(props)
props
ФЫВ
callbacks

Flux: examples
https://github.com/facebook/flux/tree/master/examples
https://github.com/gaearon/flux-react-router-example

React Router

React Router

React Router

React Router

React Router

+Bonus
React Native
end 2015 - beg 2016
https://github.com/facebook/react-native

Facebook groups app

•JavaScript
•NO WebView
•NO browser
•JavaScript logic in separated thread does not block Native UI
•JSX HTML -> Native platform elements
•Learn once, write everywhere
•Example: http://www.facebookgroups.com/
React Native

iOS / Android devs: «But…»