SlideShare a Scribd company logo
図とコード例で多分わかる
React と Flux (工事中)
開発部
てるー
アジェンダ
1. React
2. Flux
アジェンダ
1. React
2. Flux
React の特徴
● JUST THE UI
● VIRTUAL DOM
● DATA FLOW
Backbone
● View
● Routing
● HTTP Client
● Model
AngularJS
● View
● Routing
● HTTP Client
● Model (?)
React
● View
● Routing
● HTTP Client
● Model
JUST THE UI
var ToDoApp = React.createClass({
render: function() {
return (
<div>
<Header />
<MainSection />
<Footer />
</div>
);
}
});
React.render(<ToDoApp/>, document.
getElementById(‘todoapp’);
var Header = React.createClass({...});
var MainSection = React.createClass({
render: function() {
return (
<section>
<input type=”checkbox”/>
<label>Mark all as complete</label>
<ul>{todos}</ul>
</section>
);
}
});
var Footer = React.createClass({...});
VIRTUAL DOM (1 / 4)
A
B C
D E F
REAL DOM VIRTUAL DOM
A
B C
D E F
VIRTUAL DOM (2 / 4)
A
B C
D E F
REAL DOM VIRTUAL DOM
A
B C’
D E F’ G
VIRTUAL DOM (3 / 4)
A
B C
D E F
REAL DOM VIRTUAL DOM
A
B C’
D E F’ G
VIRTUAL DOM (4 / 4)
A
B C’
D E F’
REAL DOM VIRTUAL DOM
A
B C’
D E F’ G
G
DATA FLOW
コンポーネントのプロパティ
● props
○ 入力データ(不変)
● state
○ 内部データ(可変)
A
B C
D E F
props props props
propsprops
DATA FLOW
var ToDoApp = React.createClass({
render: function() {
return (
<div>
<Header />
<MainSection
todos={this.state.allTodos}/>
<Footer />
</div>
);
}
});
var MainSection = React.createClass({
render: function() {
return (
<section>
<ul>
{this.props.todos.map(function(todo) {
return (<TodoItem key={todo.key}
todo={todo}/>);
)}
</ul>
</section>
);
}
});
アジェンダ
1. React
2. Flux
Flux (データの流れ)
Dispatcher
ActionCreator Views
Stores
Flux (データの流れ)
Dispatcher
ActionCreator Views
StoresSingleton
Singleton
各ストア毎は
Singleton
Flux (オブジェクトの参照)
Dispatcher
ActionCreator Views
Stores
メソッドを実行
メソッドを実行
コールバックを登録
コールバックを登録
データの取得
Flux の例 (1 / 8)
Dispatcher
ToDoAction TodoListView
TodoStore
TODO_DESTROY
メッセージがきたら教えて!
データが変わったら
教えて!
Flux の例 (2 / 8)
Dispatcher
ToDoAction
TodoListView
TodoStore
ToDo を
削除してください!
Flux の例 (3 / 8)
Dispatcher
ToDoAction
TodoListView
TodoStore
ToDo を
削除してください!サーバーから
ToDo を消した!
Flux の例 (4 / 8)
Dispatcher
ToDoAction
TodoListView
TodoStore
ToDo を
削除してください!
ToDo を削除しました!
TODO_DESTROY
メッセージを発行して
ください!
サーバーから
ToDo を消した!
Flux の例 (5 / 8)
Dispatcher
ToDoAction
TodoListView
TodoStore
ToDo を
削除してください!
ToDo を削除しました!
TODO_DESTROY
メッセージを発行して
ください!
TODO_DESTROY
メッセージが来たよ!
サーバーから
ToDo を消した!
Flux の例 (6 / 8)
Dispatcher
ToDoAction
TodoListView
TodoStore
ToDo を
削除してください!
ToDo を削除しました!
TODO_DESTROY
メッセージを発行して
ください!
TODO_DESTROY
メッセージが来たよ!
サーバーから
ToDo を消した!
自身から該当の
ToDo を消した!
Flux の例 (7 / 8)
Dispatcher
ToDoAction
TodoListView
TodoStore
ToDo を
削除してください!
ToDo を削除しました!
TODO_DESTROY
メッセージを発行して
ください!
TODO_DESTROY
メッセージが来たよ!
サーバーから
ToDo を消した!
自身から該当の
ToDo を消した!
データ変わったよ!
Flux の例 (8 / 8)
Dispatcher
ToDoAction
TodoListView
TodoStore
ToDo を
削除してください!
ToDo を削除しました!
TODO_DESTROY
メッセージを発行して
ください!
TODO_DESTROY
メッセージが来たよ!
サーバーから
ToDo を消した!
自身から該当の
ToDo を消した!
データ変わったよ!
画面から該当の
ToDo を消した!
お わ り

More Related Content

PDF
Scene BuilderでFXML
Yuichi Sakuraba
 
PDF
Unit testing JavaScript with JUnit/JavaFX
Shinya Mochida
 
PDF
JavaFX 2.0 - リッチクライアントのためのUI基盤
Yuichi Sakuraba
 
PDF
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
Yuichi Sakuraba
 
PDF
React入門-JSONを取得して表示する
regret raym
 
PPTX
まだDOM操作で消耗してるの?
IRI MO
 
PDF
React.jsでクライアントサイドなWebアプリ入門
spring_raining
 
PDF
Node.js勉強会 Framework Koa
kamiyam .
 
Scene BuilderでFXML
Yuichi Sakuraba
 
Unit testing JavaScript with JUnit/JavaFX
Shinya Mochida
 
JavaFX 2.0 - リッチクライアントのためのUI基盤
Yuichi Sakuraba
 
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
Yuichi Sakuraba
 
React入門-JSONを取得して表示する
regret raym
 
まだDOM操作で消耗してるの?
IRI MO
 
React.jsでクライアントサイドなWebアプリ入門
spring_raining
 
Node.js勉強会 Framework Koa
kamiyam .
 

Viewers also liked (20)

PDF
JavaScript Static Analysis Tools and Techniques - STP Online Session 2013
Noah Sussman
 
PDF
NodeJSでCLI開発を楽しくするライブラリの紹介
Ryo Iinuma
 
PDF
Salesforce Agile 事例
Yoshi Oikawa
 
PPTX
Tokyo Salesforce Developer Group Meetup #11
Shingo Yamazaki
 
PDF
SWTT2016 ミニハックをふりかえる
Shingo Yamazaki
 
PDF
Advanced designs for reusable lightning components
thomaswaud
 
PDF
Portfolio for JIRA で"全体計画にコミット"し続けるべし
Hiromasa Oka
 
PDF
Circle ciで結果をslackに通知してみる
ynakahira
 
PDF
サンプルTodoから見るreact,flux,redux(古川)
hisakatsu furukawa
 
PDF
Amazon Dash ButtonをハックしてSalesforceに登録してみた
Hiroyuki Miyaji
 
PDF
Spring '17開発者向け新機能
Salesforce Developers Japan
 
PDF
Production optimization with React and Webpack
k88hudson
 
PDF
ReactとSeleniumの幸せな関係
Akira Kuratani
 
PDF
Community Cloud & Force.com Sites
Taiki Yoshikawa
 
PDF
React Lightning Design System
Taiki Yoshikawa
 
PDF
レビュー目的・観点設定の効果と課題
Adachi Kenji
 
PDF
テストマネージャ試験対策勉強会
Kosuke Fujisawa
 
PDF
良きモノの提供に向けた協働 - 開発とテストが一体となったソフトウェア開発 -
teyamagu
 
PDF
Javaでつくる技術ドキュメントのバリデーション環境
Recruit Technologies
 
PDF
AppExchange Growth Hacks - Aiming for the world -
Akira Kuratani
 
JavaScript Static Analysis Tools and Techniques - STP Online Session 2013
Noah Sussman
 
NodeJSでCLI開発を楽しくするライブラリの紹介
Ryo Iinuma
 
Salesforce Agile 事例
Yoshi Oikawa
 
Tokyo Salesforce Developer Group Meetup #11
Shingo Yamazaki
 
SWTT2016 ミニハックをふりかえる
Shingo Yamazaki
 
Advanced designs for reusable lightning components
thomaswaud
 
Portfolio for JIRA で"全体計画にコミット"し続けるべし
Hiromasa Oka
 
Circle ciで結果をslackに通知してみる
ynakahira
 
サンプルTodoから見るreact,flux,redux(古川)
hisakatsu furukawa
 
Amazon Dash ButtonをハックしてSalesforceに登録してみた
Hiroyuki Miyaji
 
Spring '17開発者向け新機能
Salesforce Developers Japan
 
Production optimization with React and Webpack
k88hudson
 
ReactとSeleniumの幸せな関係
Akira Kuratani
 
Community Cloud & Force.com Sites
Taiki Yoshikawa
 
React Lightning Design System
Taiki Yoshikawa
 
レビュー目的・観点設定の効果と課題
Adachi Kenji
 
テストマネージャ試験対策勉強会
Kosuke Fujisawa
 
良きモノの提供に向けた協働 - 開発とテストが一体となったソフトウェア開発 -
teyamagu
 
Javaでつくる技術ドキュメントのバリデーション環境
Recruit Technologies
 
AppExchange Growth Hacks - Aiming for the world -
Akira Kuratani
 
Ad

Similar to 図とコード例で多分わかる React と flux (工事中) (20)

PDF
React + Flux
_yukikayuki
 
PDF
Reduxについて
Kengo Shibayama
 
PDF
React.js + Flux入門 #scripty02
Yahoo!デベロッパーネットワーク
 
PPTX
Reactつかってみた
Minori Tokuda
 
PDF
Flux react現状確認会
VOYAGE GROUP
 
PDF
React+fluxを導入した話
Yuki Ishikawa
 
PDF
FluxのDispatcherとAction周りのことでもやもやしていることを晒してみる
Yuta Shimakawa
 
PDF
Reactとbabelで簡易タスク管理ツール作ってみた
Tsuyoshi Maeda
 
PPTX
SYSTEMI勉強会まとめ資料(React基礎まとめ)
YoshikiWatanabe1
 
PPTX
React + Reduxで作る対話AI
Kentaro Tada
 
PPTX
React入門
GIG inc.
 
PPTX
今からでも遅くない! React事始め
ynaruta
 
PPTX
React+redux+saga 01
TIS Inc
 
PPTX
Flux with RxSwift
Yuji Hato
 
PDF
( ゚∀゚)o彡° Flux! Flux!
Yuki Ishikawa
 
PPTX
Reactのおさらい
iPride Co., Ltd.
 
PPTX
Reactにflowtypeを組み合わせることで、我々は何を楽にできたか
LINE Corporation
 
PPTX
React and-rx
Taketoshi 青野健利
 
PDF
Start React with Browserify
Muyuu Fujita
 
PPTX
MVCになぞらえて理解するReact
iPride Co., Ltd.
 
React + Flux
_yukikayuki
 
Reduxについて
Kengo Shibayama
 
React.js + Flux入門 #scripty02
Yahoo!デベロッパーネットワーク
 
Reactつかってみた
Minori Tokuda
 
Flux react現状確認会
VOYAGE GROUP
 
React+fluxを導入した話
Yuki Ishikawa
 
FluxのDispatcherとAction周りのことでもやもやしていることを晒してみる
Yuta Shimakawa
 
Reactとbabelで簡易タスク管理ツール作ってみた
Tsuyoshi Maeda
 
SYSTEMI勉強会まとめ資料(React基礎まとめ)
YoshikiWatanabe1
 
React + Reduxで作る対話AI
Kentaro Tada
 
React入門
GIG inc.
 
今からでも遅くない! React事始め
ynaruta
 
React+redux+saga 01
TIS Inc
 
Flux with RxSwift
Yuji Hato
 
( ゚∀゚)o彡° Flux! Flux!
Yuki Ishikawa
 
Reactのおさらい
iPride Co., Ltd.
 
Reactにflowtypeを組み合わせることで、我々は何を楽にできたか
LINE Corporation
 
Start React with Browserify
Muyuu Fujita
 
MVCになぞらえて理解するReact
iPride Co., Ltd.
 
Ad

More from Teloo (6)

PDF
Gitを理解するためにおさえておきたい3つの図(工事中)
Teloo
 
PDF
図でわかるGit
Teloo
 
PDF
JS 6th edition reading circle part 3
Teloo
 
PDF
JS 6th edition reading circle part 2
Teloo
 
PDF
(工事中) Git の仕組み
Teloo
 
PDF
(工事中) Git の仕組み
Teloo
 
Gitを理解するためにおさえておきたい3つの図(工事中)
Teloo
 
図でわかるGit
Teloo
 
JS 6th edition reading circle part 3
Teloo
 
JS 6th edition reading circle part 2
Teloo
 
(工事中) Git の仕組み
Teloo
 
(工事中) Git の仕組み
Teloo
 

Recently uploaded (11)

PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PDF
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 

図とコード例で多分わかる React と flux (工事中)