Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Introduction to React - Triangle.rb May 2015
Search
Nathan Hunzaker
May 12, 2015
Technology
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Introduction to React - Triangle.rb May 2015
The presentation I gave at Triangle.rb introducing React.
Nathan Hunzaker
May 12, 2015
More Decks by Nathan Hunzaker
See All by Nathan Hunzaker
React for Poets
nhunzaker
0
130
What is React?
nhunzaker
7
820
Other Decks in Technology
See All in Technology
組織にどうSREを根付かせるか?〜IVRyの場合〜
abnoumaru
0
330
第3回しろおびセキュリティスポンサーセッション
log0417
0
160
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
620
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
20260801_スクフェス大阪
kgnkhkr
2
1.2k
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
1
360
【CEDEC2026】専門性の高いデフォルメチームが挑んだ人材育成戦略 〜Cygames Academiaの企画から実施まで〜
cygames
PRO
0
530
名古屋の市バスGTFS-JPデータ×スガキヤ 最寄りバス停検索をAmazon ElastiCache Serverless for Valkeyで最適化する
usanchuu
1
490
【Google Cloud Next Tokyo'26】Gemini Enterprise と Oracle AI Database で実現する、業務データ活用を実現する AI エージェント実装
shisyu_gaku
0
230
toio・myCobotでフィジカルAIっぽいことを行うための検討(とりあえず調査) / フィジカルAI LT(IoTLTによる開催)
you
PRO
0
300
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
160
システム思考で問題に対処する
yussak
0
200
Featured
See All Featured
Chasing Engaging Ingredients in Design
codingconduct
0
260
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
590
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
650
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
240
Marketing to machines
jonoalderson
1
5.7k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
360
The Curse of the Amulet
leimatthew05
2
14k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
200
A Modern Web Designer's Workflow
chriscoyier
698
190k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
340
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
30 Presentation Tips
portentint
PRO
1
360
Transcript
React
Nate Hunzaker Front-end Developer, Viget @natehunzaker
We build lots of user interfaces
None
None
None
Every framework has a big idea
They don't just reinvent the wheel
“Backbone.js gives structure to web applications [...]”
“Ember.js is built for productivity. Designed with developer ergonomics in
mind...”
Keep it simple
“We can only hope to make reliable those things in
which we understand.” - Rich Hickey
• Composition • One way data flow • Static mental
model
Compo(sition,nents) "React is all about building reusable components. In fact,
with React the only thing you do is build components." - facebook.github.io/react
Encourage developers to break a user interface into small components.
<Blogs/> <Navigation/> <Posts/> <Post/> <Post/> <Post/> <Post/>
None
None
None
None
None
None
• No templates • Strange syntax
“Templates separate technology, not concerns.” - Pete Hunt (formerly of
Facebook)
None
JSX “The purpose of this specification is to define a
concise and familiar syntax for defining tree structures with attributes.” http://facebook.github.io/jsx/
None
None
None
How does this work?
None
None
npm install babel npm install react-tools
None
<main/> <Menu/> <Inbox/>
Virtual DOM
Build a DOM tree Compare to old state Get cheapest
mutation path (with Levenshtein) Write new DOM (in batches) New state
State changed! So what...
Imperative Programming Describe the transition between state
Declarative Programming Express the logic, not the flow
Define Interface Change State • Each change in state flushes
to the DOM • Properties are sent in one direction • No cascading updates
Let's talk about state
A component is given props A component manages state
A component is given props
A component manages state
That's kind of it
Static Rendering Model
This is fast
Holy Hot Modules! https://github.com/gaearon/react-hot-loader
Really fast
Static Mental Model
When you render to a virtual environment, the DOM becomes
an implementation detail
None
None
What is an isomorphic?
None
React.render() is idempotent Same in, same out
None
None
React.renderToStaticMarkup
None
How do I build real apps with this?
Flux “Flux [...] complements React's composable view components by utilizing
a unidirectional data flow.” http://facebook.github.io/flux/
None
I thought you said this was simple
Job Queue State State State I want to create a
widget Ready a widget! I can totally do that! Ch-ch-ch-ch- changes I love David Bowie!
Flux Formal Capacitor: A demo isomorphic Flux app https://github.com/vigetlabs/capacitor
Flux Fun http://www.natehunzaker.com/yappy-bird/
App State Stimuli New state
Initial State Sound Jump()
None
None
None
None
NuclearJS https://github.com/optimizely/nuclear-js Yahoo Flux https://github.com/yahoo/flux-examples Om (Clojurescript) https://github.com/swannodette/om
On that note...
React injects a few constraints that yield powerful benefits
By focusing on composability and a single direction flow of
data, we can greatly simplify our apps
Hopefully you didn't ignore me after the JSX :)
Thanks! Nate Hunzaker Front-end Developer, Viget @natehunzaker
Iconography: User interface icon by Aziz, the Noun Project http://thenounproject.com/azisher
JavaScript Logo: https://github.com/voodootikigod/logo.js General React Concepts: React Homepage http://facebook.github.io/react/ JSX Specification http://facebook.github.io/jsx/ Rethinking Best Practices, Pete Hunt: https://www.youtube.com/watch?v=x7cQ3mrcKaY Decomplexifying Code with React, Steven Luscher: https://www.youtube.com/watch?v=rI0GQc__0SM An Introduction to ReactJS, James Pierce https://www.youtube.com/watch?v=m2fuO2wl_3c Flux Flux Homepage http://facebook.github.io/flux/ Examples React Fun https://github.com/nhunzaker/react-fun React Animatable https://github.com/nhunzaker/react- animatable An Isomorphic Chart https://github.com/nhunzaker/an- isomorphic-chart Capacitor https://github.com/vigetlabs/capacitor Yappy Bird https://github.com/nhunzaker/yappy-bird
react-router: the best router https://github.com/rackt/react-router