SlideShare a Scribd company logo
React勉強会
TODOアプリから見るReactのみ、
React+FluxとReact+Reduxの違い
発表者
2017/1/30
Copyright © TeamSpirit Inc. All Rights Reserved.
1
 名前:古川 久勝
 所属:株式会社チームスピリット
 主な仕事:サーバサイド側プログラミング
 つまり
免罪符
2017/1/30
Copyright © TeamSpirit Inc. All Rights Reserved.
2
的な内容もあるかと思います為、ご了承ください
素
人
は
黙
っ
と
れ
ー
ー
画像は省略
react:
https://facebook.github.io/react/
flux:
https://github.com/facebook/flux/tree/master/examples
/flux-todomvc
redux:
http://redux.js.org/docs/basics/ExampleTodoList.html
今回使用したサンプル
2017/1/30
Copyright © TeamSpirit Inc. All Rights Reserved.
3
ReactとFlux、Reduxの違いは
状態(変数みたいなもの)の
格納、保持方法が違うだけ。
描画部分はほぼ一緒です。
それぞれの違い
2017/1/30
Copyright © TeamSpirit Inc. All Rights Reserved.
4
※初心者の意見です
React処理の流れ
2017/1/30
Copyright © TeamSpirit Inc. All Rights Reserved.
5
App
State(状態) Render関数
Stateを使用して描画
React処理の流れ(Todo追加)
2017/1/30
Copyright © TeamSpirit Inc. All Rights Reserved.
6
App
State(状態) Render関数
追加するTodoを
Stateに格納
追加したTodoが含まれている
Stateを使用して描画
React処理の特徴
2017/1/30
Copyright © TeamSpirit Inc. All Rights Reserved.
7
 特徴
とにかく単純である
 メリット
・ソースが少なくてすむ
・ブラックボックス部分が少ないためぱっとみの
流れがわかりやすい
 デメリット
・複雑になるとStateがかなり迷子になりやすい
・Stateを見知らぬ地にて変更されると修正しにくい
・他のソースにStateを渡す場合はRootとなるソースが必要
 こんな時におすすめ
・小規模なアプリケーションを作成する場合
Flux処理の流れ
2017/1/30
Copyright © TeamSpirit Inc. All Rights Reserved.
8
Container
Store
Reduse関数 State
Store
Reduse関数 State
View
Render関数
StateをPropsに変換して描画
Action
動作関数
Dispacther
動作させる処理を持たせて
Reduse関数に投げる 動作関数からDispatcherに
動作させる処理を登録
Reduse関数からStateを更新
Flux処理の流れ
2017/1/30
Copyright © TeamSpirit Inc. All Rights Reserved.
9
Container
Store
Reduse関数 State
Store
Reduse関数 State
View
Render関数
追加したTodoが含まれている
StateをPropsに変換して描画
Action
動作関数
Dispacther
Todo追加処理を持たせて
Reduse関数に投げる Dispatcherに
Todo追加処理を登録
Reduse関数から追加したTodoを
Stateに追加
追加するTodoを
動作関数に投げる
Flux処理の特徴
2017/1/30
Copyright © TeamSpirit Inc. All Rights Reserved.
10
 特徴
状態変換と動作、描画が分離されている
 メリット
・修正箇所がわかりやすい
 デメリット
・複雑になるとStoreが迷子になりやすい
・他のContainerにStoreを渡す場合はRootContainerが必要
 こんな時におすすめ
・描画部分が複雑であるアプリケーションを作る場合
Redux処理の流れ
2017/1/30
Copyright © TeamSpirit Inc. All Rights Reserved.
11
ContainerStore
State
Props変換
View
Render関数
Propsを渡して描画
Action
動作関数
Reducer
Dispatchされた動作関数から
動作させる処理を登録
Reducer
reducerState
reducerState
StateをPropsに変換
Reducerからそれぞれの
reducerStateに格納
Redux処理の流れ
2017/1/30
Copyright © TeamSpirit Inc. All Rights Reserved.
12
ContainerStore
State
Props変換
Component
Render関数
Todo用Propsを渡して描画
Action
動作関数
Reducer
DispatchされたTodo追加関数から
Todo追加処理を登録
Reducer
reducerState
reducerState
Todo用StateをTodo用Propsに変換
Todo用Reducerから追加したTodoを
Todo用Stateに格納
追加するTodoを
動作関数に投げる
Redux処理の特徴
2017/1/30
Copyright © TeamSpirit Inc. All Rights Reserved.
13
 特徴
Stateを格納しているStoreが一元管理されているため、取扱が楽
 メリット
・Stateが迷子にならない
・StateがStoreに一元管理されているため、
State管理用RootContainerが不要
 デメリット
・関数を追加する時のソース修正が3個の中で一番多い
・ブラックボックス部分が多いためぱっとみの
流れがわかりにくい
・どこでもStateを取得ができるため、取得側の管理が必要
 こんな時におすすめ
・処理部分が複雑であるアプリケーションを作る場合
まとめ
2017/1/30
Copyright © TeamSpirit Inc. All Rights Reserved.
14
Reactのみ:
シンプルゆえ無法地帯になりやすい。
簡単な機能や制御系が少ないアプリケーションを作る時におすすめ
React-Flux:
ルールが保たれているがそれでもState管理が大変。
ほどよく制御が含まれているアプリケーションを作る時におすすめ
React-Redux:
State管理が楽だけど理解とソース量がとにかく多い。
それなりに大規模アプリケーションを作る時におすすめ
Thanks!
終わり
2017/1/30
Copyright © TeamSpirit Inc. All Rights Reserved.
15
終制作・著作

More Related Content

PDF
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
PDF
Tokyo Salesforce DG Meetup 2017新年会〜Advent Calendarふりかえり〜
PDF
静的解析、はじまったな
PDF
SWTT2016 ミニハックをふりかえる
PDF
Circle ciで結果をslackに通知してみる
PDF
ReactとSeleniumの幸せな関係
PDF
アイコンがなぜずれるのか?
PPTX
今からでも遅くない! React事始め
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
Tokyo Salesforce DG Meetup 2017新年会〜Advent Calendarふりかえり〜
静的解析、はじまったな
SWTT2016 ミニハックをふりかえる
Circle ciで結果をslackに通知してみる
ReactとSeleniumの幸せな関係
アイコンがなぜずれるのか?
今からでも遅くない! React事始め

Viewers also liked (20)

PDF
Chromeデベロッパーツール
PDF
Mobile + HTML5
PDF
Lightning コンポーネント Deep Dive
PDF
Lightning を利用した開発とケーススタディ
PDF
VOYAGE GROUPの成長する勉強会カルチャー
PDF
Lightningのコンポーネントフレームワークの概要
PPTX
Famo.usはもう試したかい?
PDF
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
PPTX
Sales vs. Marketing: The Original Game of Thrones
PDF
JavaScriptと共に歩いて行く決意をした君へ
PDF
10 Ways to Get More from Your Pardot Solution
PDF
Pardot Basics Bootcamp
PPTX
kintoneフロントエンド開発 モダン化への道
PDF
Salesforce開発プロジェクトの進め方とアプリケーションライフサイクルマネジメント
PDF
SIROK技術勉強会 #1 「Reactってなんだ?」
PPTX
Spring'17リリースノート輪読会 API By フレクト
PDF
フロントエンド初学者がSPAに手を出してみた
PDF
JSON Schema in Web Frontend #insideFE
PPTX
React を導入した フロントエンド開発
Chromeデベロッパーツール
Mobile + HTML5
Lightning コンポーネント Deep Dive
Lightning を利用した開発とケーススタディ
VOYAGE GROUPの成長する勉強会カルチャー
Lightningのコンポーネントフレームワークの概要
Famo.usはもう試したかい?
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
Sales vs. Marketing: The Original Game of Thrones
JavaScriptと共に歩いて行く決意をした君へ
10 Ways to Get More from Your Pardot Solution
Pardot Basics Bootcamp
kintoneフロントエンド開発 モダン化への道
Salesforce開発プロジェクトの進め方とアプリケーションライフサイクルマネジメント
SIROK技術勉強会 #1 「Reactってなんだ?」
Spring'17リリースノート輪読会 API By フレクト
フロントエンド初学者がSPAに手を出してみた
JSON Schema in Web Frontend #insideFE
React を導入した フロントエンド開発
Ad

Similar to サンプルTodoから見るreact,flux,redux(古川) (20)

PDF
Reduxについて
PDF
図とコード例で多分わかる React と flux (工事中)
PPTX
Reactつかってみた
PDF
Flux react現状確認会
PDF
サービスの成長を支えるフロントエンド開発 #denatechcon
PPTX
React+redux+saga 02
PPTX
React+redux+saga 01
PPTX
Reactのおさらい
PDF
Reduxについて
PDF
React+fluxを導入した話
PPTX
Reactに触れてみた
PDF
React.js + Flux入門 #scripty02
PDF
React Redux Storybook Swagger でフロント爆速開発
PPTX
React+redux+saga 03
PPTX
SYSTEMI勉強会まとめ資料(React基礎まとめ)
PPTX
React + Reduxで作る対話AI
PDF
Reactとbabelで簡易タスク管理ツール作ってみた
PDF
React entry
PDF
React introduntion
PDF
( ゚∀゚)o彡° Flux! Flux!
Reduxについて
図とコード例で多分わかる React と flux (工事中)
Reactつかってみた
Flux react現状確認会
サービスの成長を支えるフロントエンド開発 #denatechcon
React+redux+saga 02
React+redux+saga 01
Reactのおさらい
Reduxについて
React+fluxを導入した話
Reactに触れてみた
React.js + Flux入門 #scripty02
React Redux Storybook Swagger でフロント爆速開発
React+redux+saga 03
SYSTEMI勉強会まとめ資料(React基礎まとめ)
React + Reduxで作る対話AI
Reactとbabelで簡易タスク管理ツール作ってみた
React entry
React introduntion
( ゚∀゚)o彡° Flux! Flux!
Ad

サンプルTodoから見るreact,flux,redux(古川)