Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
React first impressions
Search
Takashi Kanemoto
January 15, 2016
Programming
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
React first impressions
カルテット開発部社内勉強会 LT 資料
Takashi Kanemoto
January 15, 2016
More Decks by Takashi Kanemoto
See All by Takashi Kanemoto
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
2
310
30分でDoctrineの仕組みと使い方を完全にマスターする / phpconkagawa 2025 Doctrine
ttskch
5
1.6k
いりゃあせ、PHPカンファレンス名古屋2025 / Welcome to PHP Conference Nagoya 2025
ttskch
1
610
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
1.4k
今年書いた技術記事で伸びたやつの自慢と自分の中では力作なのにさっぱり伸びなかったやつの供養 / My Tech Articles 2024
ttskch
2
240
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
48
45k
データベース/SQL超入門!完全初心者向けに世界一分かりやすく解説します
ttskch
2
8.7k
Symfony UX Autocompleteとかいう 顧客が本当に必要だったもの
ttskch
0
2.4k
就活生あるいは新人エンジニアさんへのお節介なアドバイス
ttskch
0
1.7k
Other Decks in Programming
See All in Programming
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
200
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
110
VueプロジェクトをTypeScript7に対応させる- Side-by-Side戦略による一部高速化 -
koukimiura
0
110
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
120
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
0
270
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
160
AHC070解法紹介
eijirou
0
120
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
7.1k
スマート反転とウェブアクセシビリティ
camiha
0
210
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
150
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
550
Featured
See All Featured
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
Making the Leap to Tech Lead
cromwellryan
135
10k
Balancing Empowerment & Direction
lara
6
1.3k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
HDC tutorial
michielstock
2
870
Evolving SEO for Evolving Search Engines
ryanjones
0
290
KATA
mclloyd
PRO
35
15k
A designer walks into a library…
pauljervisheath
211
25k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
560
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Building Adaptive Systems
keathley
44
3.2k
Transcript
React first impressions 2016.01.15 @qckanemoto 1 / 45
(1) What's that? 2 / 45
3 / 45
4 / 45
5 / 45
A JavaScript Library for Building User Interfaces 6 / 45
7 / 45
8 / 45
9 / 45
(2) Features? 10 / 45
11 / 45
12 / 45
13 / 45
14 / 45
15 / 45
16 / 45
17 / 45
(3) Example 18 / 45
var Hello = React.createClass({ render: function () { return <p>Hello,
React!</p>; } }); ReactDOM.render( <Hello />, document.getElementById('app') ); <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>React Example</title> <script src="//some/cdn/react.js"></script> <script src="//some/cdn/react-dom.js"></script> <script src="//some/cdn/babel-core/browser.min.js"></script> </head> <body> <div id="app"></div> <script type="text/babel" src="app.js"></script> </body> </html> 19 / 45
var Hello = React.createClass({ // It's called 'Component' render: function
() { return <p>Hello, React!</p>; } }); ReactDOM.render( <Hello />, document.getElementById('app') ); <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>React Example</title> <script src="//some/cdn/react.js"></script> <script src="//some/cdn/react-dom.js"></script> <script src="//some/cdn/babel-core/browser.min.js"></script> </head> <body> <div id="app"></div> <script type="text/babel" src="app.js"></script> </body> </html> 20 / 45
var Hello = React.createClass({ render: function () { return <p>Hello,
React!</p>; } }); ReactDOM.render( <Hello />, // Set the Component... document.getElementById('app') ); <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>React Example</title> <script src="//some/cdn/react.js"></script> <script src="//some/cdn/react-dom.js"></script> <script src="//some/cdn/babel-core/browser.min.js"></script> </head> <body> <div id="app"></div> <script type="text/babel" src="app.js"></script> </body> </html> 21 / 45
var Hello = React.createClass({ render: function () { return <p>Hello,
React!</p>; } }); ReactDOM.render( <Hello />, // Set the Component document.getElementById('app') // to the element '#app' ); <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>React Example</title> <script src="//some/cdn/react.js"></script> <script src="//some/cdn/react-dom.js"></script> <script src="//some/cdn/babel-core/browser.min.js"></script> </head> <body> <div id="app"></div> <!-- Here --> <script type="text/babel" src="app.js"></script> </body> </html> 22 / 45
23 / 45
Next step (2/5) 24 / 45
Use props var Hello = React.createClass({ render: function () {
return <p>Hello, React!</p>; } }); var Hello = React.createClass({ render: function () { return <p>Hello, <World name="React props" />!</p>; } }); var World = React.createClass({ render: function () { return <span>{this.props.name}</span>; } }); 25 / 45
26 / 45
props is that passed from parent. 27 / 45
Next step (3/5) 28 / 45
Use state var Hello = React.createClass({ render: function () {
return <p>Hello, <World name="React props" />!</p>; } }); var Hello = React.createClass({ getInitialState: function () { return { worldName: 'React state' }; }, render: function () { return <p>Hello, <World name={this.state.worldName} />!</p>; } }); 29 / 45
30 / 45
state is that held by itself. 31 / 45
Next step (4/5) 32 / 45
Change state var Hello = React.createClass({ getInitialState: function () {
return { worldName: 'React state' }; }, + // just change state after 1 sec + componentDidMount: function () { + var that = this; + setTimeout(function () { + that.setState({ worldName: 'Changed state' }); + }, 1000); + }, render: function () { return <p>Hello, <World name={this.state.worldName} />!</p>; } }); 33 / 45
34 / 45
35 / 45
When state updated component re-rendere whole tree under itself. 36
/ 45
Final step (5/5) 37 / 45
Make child stateful var World = React.createClass({ render: function ()
{ return <span>{this.props.name}</span>; } }); var World = React.createClass({ getInitialState: function () { return { name: this.props.name }; }, render: function () { return <span>{this.state.name}</span>; } }); 38 / 45
39 / 45
Not changed 40 / 45
props is immutable. state is mutable. 41 / 45
Conclusion 42 / 45
React is a JavaScript FW Component Oriented powered by One-way
Reactive Data Flow Virtual DOM Immutable props & Mutable state 43 / 45
Also has Two-way Binding And It's Necessary for some complicated
apps (I think) Similar to Angular2 ? 44 / 45
Thanks :) 45 / 45