• JavaScript Library
• Facebook Engineering
• Open Sourced May 2013
• Internal use since 2011
• The "V" in MVC
Slide 4
Slide 4 text
Router
Controller
Model
View
Server-side Rendering
Slide 5
Slide 5 text
Router
Controller
Model
View
DHTML Rendering
jQuery
Slide 6
Slide 6 text
Router
Controller
Model
View
DHTML+Ajax Rendering
jQuery
Slide 7
Slide 7 text
Router
Controller
Model
Template
&
Interac:on
Angular.js Rendering
Model
Template
&
Interac:on
$scope
$scope
Slide 8
Slide 8 text
Router
Controller
Model
View
Server-side Rendering
Slide 9
Slide 9 text
Router
&
Interac:on
Controller
Model
React
React Rendering
Slide 10
Slide 10 text
React
React Rendering
Slide 11
Slide 11 text
Separation of Concerns
vs
Separation of Languages
Slide 12
Slide 12 text
HTML
JavaScript
CSS
Slide 13
Slide 13 text
Component
HTML
JavaScript
CSS
Slide 14
Slide 14 text
Component
HTML
JavaScript
CSS
Component
HTML
JavaScript
CSS
Component
HTML
JavaScript
CSS
Component
HTML
JavaScript
CSS
Component
HTML
JavaScript
CSS
Component
HTML
JavaScript
CSS
Slide 15
Slide 15 text
The Component Tree
Slide 16
Slide 16 text
App
Gallery
Slideshow
Menu
Menu
Item
Photo
Slide 17
Slide 17 text
Claim:
State changing over
time is the root
of all evil
Battle-tested in
production on
facebook.com and
instagram.com
Slide 54
Slide 54 text
Evolved & extracted
from real code,
not designed in
a vacuum
Slide 55
Slide 55 text
Active and
growing community
Slide 56
Slide 56 text
Extremely simple
to get started
stays out of
your way
Slide 57
Slide 57 text
Can be used ad-hoc
in an existing
application
Slide 58
Slide 58 text
Can be used to
render on the
server with Node.js
Slide 59
Slide 59 text
In dev mode you gets
loads of handy hints
Slide 60
Slide 60 text
Downsides?
Slide 61
Slide 61 text
You have to bring your
own models / controllers
Slide 62
Slide 62 text
Having to be explicit
about data flow can lead
to boilerplate
Slide 63
Slide 63 text
Flux is still in flux,
many implementations
exist
Slide 64
Slide 64 text
It's very different,
which can be off-putting
Slide 65
Slide 65 text
Give it 5
minutes
Slide 66
Slide 66 text
Further Reading
• Facebook's React docs
http://facebook.github.io/react/docs/why-
react.html
• The original React announcement talk
http://www.youtube.com/watch?v=x7cQ3mrcKaY
• Flux introduction with more about React's thinking
http://www.youtube.com/watch?v=nYkdrAPrdcw
• The React github repo
https://github.com/facebook/react