Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
daisuke-a-matsui
PPTX, PDF
60,942 views
React を導入したフロントエンド開発
フレームワークを利用したシングルページアプリケーションの制御 GMOインターネット次世代システム研究室の勉強会発表資料。 2015年12月作成。 案件対応期間は2015年4月-8月。
Internet
◦
Read more
26
Save
Share
Embed
Embed presentation
Download
Downloaded 47 times
1
/ 69
2
/ 69
3
/ 69
4
/ 69
5
/ 69
6
/ 69
7
/ 69
8
/ 69
9
/ 69
10
/ 69
11
/ 69
12
/ 69
13
/ 69
14
/ 69
15
/ 69
16
/ 69
17
/ 69
18
/ 69
19
/ 69
20
/ 69
21
/ 69
22
/ 69
23
/ 69
24
/ 69
25
/ 69
26
/ 69
27
/ 69
28
/ 69
29
/ 69
30
/ 69
31
/ 69
32
/ 69
33
/ 69
34
/ 69
35
/ 69
36
/ 69
37
/ 69
38
/ 69
39
/ 69
40
/ 69
41
/ 69
42
/ 69
43
/ 69
44
/ 69
45
/ 69
46
/ 69
47
/ 69
48
/ 69
49
/ 69
50
/ 69
51
/ 69
52
/ 69
53
/ 69
54
/ 69
55
/ 69
56
/ 69
57
/ 69
58
/ 69
59
/ 69
60
/ 69
61
/ 69
62
/ 69
63
/ 69
64
/ 69
65
/ 69
66
/ 69
67
/ 69
68
/ 69
69
/ 69
More Related Content
PDF
RailsでReact.jsを動かしてみた話
by
yoshioka_cb
PDF
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
by
Kohei Asai
PPTX
今からでも遅くない! React事始め
by
ynaruta
PDF
なぜ人は必死でjQueryを捨てようとしているのか
by
Yoichi Toyota
PDF
SIROK技術勉強会 #1 「Reactってなんだ?」
by
Naoyuki Kataoka
PDF
Flux react現状確認会
by
VOYAGE GROUP
PDF
React.jsでクライアントサイドなWebアプリ入門
by
spring_raining
PPTX
20160927 reactmeetup
by
Naoki Kurosawa
RailsでReact.jsを動かしてみた話
by
yoshioka_cb
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
by
Kohei Asai
今からでも遅くない! React事始め
by
ynaruta
なぜ人は必死でjQueryを捨てようとしているのか
by
Yoichi Toyota
SIROK技術勉強会 #1 「Reactってなんだ?」
by
Naoyuki Kataoka
Flux react現状確認会
by
VOYAGE GROUP
React.jsでクライアントサイドなWebアプリ入門
by
spring_raining
20160927 reactmeetup
by
Naoki Kurosawa
What's hot
PDF
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
by
Yusuke Murata
PPTX
React.js + Reduxで作るSPA
by
Shohei Saeki
PPTX
Angular js はまりどころ
by
Ayumi Goto
PDF
React+TypeScriptもいいぞ
by
Mitsuru Ogawa
PDF
サーバサイドエンジニアが 1年間まじめにSPAやってみた
by
Itaru Kitagawa
PDF
React.js + Flux
by
dsuke Takaoka
PDF
angular X designer - デザイナからみたAngularJS #ten1club
by
silvers ofsilvers
PDF
Isomorphic web development with scala and scala.js
by
TanUkkii
PDF
AngularJSの高速化
by
Kon Yuichi
PDF
まだ DOM 操作で消耗してるの?
by
Yuki Ishikawa
PDF
svelte と tailwind で始めるフロントエンド開発
by
Shuichi Takaya
PPTX
React NativeでTwitterクライアントを作ってみよう
by
dcubeio
PPTX
AngularJSを浅めに紹介します
by
nkazuki
PDF
Angular1&2
by
Kenichi Kanai
PDF
Enterprise x AngularJS
by
Kenichi Kanai
PDF
jQueryを中心としたJavaScript
by
hideaki honda
PDF
angular1脳で見るangular2
by
Moriyuki Arakawa
PDF
One Time Binding & Digest Loop
by
Kon Yuichi
PDF
AngularJSからReactに移ったケースの話
by
kumatch kumatch
PDF
AngularJSでの非同期処理の話
by
Yosuke Onoue
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
by
Yusuke Murata
React.js + Reduxで作るSPA
by
Shohei Saeki
Angular js はまりどころ
by
Ayumi Goto
React+TypeScriptもいいぞ
by
Mitsuru Ogawa
サーバサイドエンジニアが 1年間まじめにSPAやってみた
by
Itaru Kitagawa
React.js + Flux
by
dsuke Takaoka
angular X designer - デザイナからみたAngularJS #ten1club
by
silvers ofsilvers
Isomorphic web development with scala and scala.js
by
TanUkkii
AngularJSの高速化
by
Kon Yuichi
まだ DOM 操作で消耗してるの?
by
Yuki Ishikawa
svelte と tailwind で始めるフロントエンド開発
by
Shuichi Takaya
React NativeでTwitterクライアントを作ってみよう
by
dcubeio
AngularJSを浅めに紹介します
by
nkazuki
Angular1&2
by
Kenichi Kanai
Enterprise x AngularJS
by
Kenichi Kanai
jQueryを中心としたJavaScript
by
hideaki honda
angular1脳で見るangular2
by
Moriyuki Arakawa
One Time Binding & Digest Loop
by
Kon Yuichi
AngularJSからReactに移ったケースの話
by
kumatch kumatch
AngularJSでの非同期処理の話
by
Yosuke Onoue
Similar to React を導入したフロントエンド開発
PPTX
Hello, React!! まで導く Reactの基礎
by
iPride Co., Ltd.
PDF
RESTful開発フロントエンド編(SPA・AltJS・フレームワーク)
by
K Tsukada
PDF
Tide - SmalltalkでSPA
by
Masashi Umezawa
PDF
React.js + Flux入門 #scripty02
by
Yahoo!デベロッパーネットワーク
PDF
Start React with Browserify
by
Muyuu Fujita
PDF
React es2015
by
t-onizawa
PPTX
SYSTEMI勉強会まとめ資料(React基礎まとめ)
by
YoshikiWatanabe1
PPTX
Web開発初心者がReactをチームに導入して半年経った
by
kazuki matsumura
PDF
我が家のフロントエンド開発事情
by
Naoki Yamada
PDF
ルーター自前実装の話
by
Kazushi Kawamura
PPTX
Meguro es7
by
健太 田上
PDF
Reactで作るDrupalサイト
by
Shunsuke Watanabe
PDF
Reactnative はじめの一歩
by
PIXTA Inc.
PDF
Pyramid入門
by
Atsushi Odagiri
PDF
React Native 入門
by
Seiichi Okumiya
PPTX
React Nativeでお絵描きしてみた
by
kazuki matsumura
PDF
React + Flux
by
_yukikayuki
PPTX
Pjax1
by
Kindai University
PDF
マーブル図で怖くないRxJS
by
bitbank, Inc. Tokyo, Japan
PPTX
Reactつかってみた
by
Minori Tokuda
Hello, React!! まで導く Reactの基礎
by
iPride Co., Ltd.
RESTful開発フロントエンド編(SPA・AltJS・フレームワーク)
by
K Tsukada
Tide - SmalltalkでSPA
by
Masashi Umezawa
React.js + Flux入門 #scripty02
by
Yahoo!デベロッパーネットワーク
Start React with Browserify
by
Muyuu Fujita
React es2015
by
t-onizawa
SYSTEMI勉強会まとめ資料(React基礎まとめ)
by
YoshikiWatanabe1
Web開発初心者がReactをチームに導入して半年経った
by
kazuki matsumura
我が家のフロントエンド開発事情
by
Naoki Yamada
ルーター自前実装の話
by
Kazushi Kawamura
Meguro es7
by
健太 田上
Reactで作るDrupalサイト
by
Shunsuke Watanabe
Reactnative はじめの一歩
by
PIXTA Inc.
Pyramid入門
by
Atsushi Odagiri
React Native 入門
by
Seiichi Okumiya
React Nativeでお絵描きしてみた
by
kazuki matsumura
React + Flux
by
_yukikayuki
Pjax1
by
Kindai University
マーブル図で怖くないRxJS
by
bitbank, Inc. Tokyo, Japan
Reactつかってみた
by
Minori Tokuda
React を導入したフロントエンド開発
1.
React を導入した フロントエンド開発 ~フレームワークを利用した シングルページアプリケーションの制御~ 2015.12 GMOインターネット 次世代システム研究室 松井 大介
2.
管理画面のフロントエンドに Reactを導入したっていう話です。
3.
アジェンダ • 絶対王者 Angular
vs 挑戦者 React • React での SPA 設計 1.コンポーネントを分ける 2.ReactRouter 3.jQuery との共存
4.
アジェンダ • 絶対王者 Angular
vs 挑戦者 React • React での SPA 設計 1.コンポーネントを分ける 2.ReactRouter 3.jQuery との共存
5.
GMOスマートリザーブの ご紹介
6.
飲食店向け予約一元管理
8.
2015年4月-8月 次世代システムが サービス立ち上げを 支援しました
9.
【日本】 マネージャー 1名 ベトナムブリッジ 1名 【ベトナム】 ベトナム
3名
10.
デモ
11.
フロントエンド 実装期間1ヶ月弱
12.
システムの特徴 • バックエンド データ操作用 API
サーバを用意。 (外部連携を意図) • 管理画面= フロントエンドだけ 1. JS による SPA から API を叩く。 2. 管理画面なので そこまで厳しいパフォーマンス要件はない
13.
SPA シングルページアプリケーション 1.HTML のレンダリングを 全てクライアントサイドでやる! 2.サーバにアクセスするのはAPIで データ取得・保存するときだけ!
14.
SPA シングルページアプリケーション 1.HTML のレンダリングを 全てクライアントサイドでやる! 2.サーバにアクセスするのはAPIで データ取得・保存するときだけ! ここぞとばかりに 新しい JSフレームワーク 使いたい!!!
15.
JS フレームワーク戦国時代
16.
Googleトレンド https://www.google.co.jp/trends/explore#q=angular%20js%2C%20backbone%20js%2 C%20react%20js&cmpt=q&tz=Etc%2FGMT-9
18.
絶対王者 Angular • Google
が開発 • 高機能 フロントエンドMVC全部盛り 双方向データバインディング ヴァリデーションとか全自動機能多い • HTML拡張 デザイナーでも見やすい
20.
React が注目された理由 • Facebook
/ Instagram で開発+利用 • 双方向データバインディングに対する懐疑 (高機能すぎて複雑、処理が重い)
21.
React の斬新なコンセプト • VirtualDOM 1.実装者は仮想のDOMを記述 2.React
は変更発生した場合仮想DOMの 差分を確認し、リアルDOMを更新 ⇒ 軽量な描画コスト • 一方向なデータフロー かならず同じ順序で処理される。 状態が変わるたびに再描画される。 ⇒ 保守しやすい
22.
React でできること • 画面描画処理の統一化 React
のライフサイクルに合わせて描画 • 画面パーツのコンポーネント化 共通のパーツ整理
23.
描画パフォーマンス https://www.codementor.io/reactjs/tutorial/reactjs-vs-angular-js-performance- comparison-knockout
24.
比較項目 Angular React 機能
高機能 管理画面構築は 非常に楽。 実装が必要 デザイナー親和性 高 基本HTML 低 JSX+カスタムタグは 読みづらい パフォーマンス 低 高 将来性 1系×(打ち切り) 2系?? 枯れてない。 どんどん変わる。 好み もりもりすぎなん じゃないの? 一方向なデータフロー が読みやすい!
25.
学習の平易さを優先し React 採用しました★
26.
React での SPA
設計
27.
アジェンダ • 絶対王者 Angular
vs 挑戦者 React • React での SPA 設計 1.コンポーネントを分ける 2.ReactRouter 3.jQuery との共存
28.
画面パーツを React コンポーネント化
29.
React での設計ポイント • 画面パーツをコンポーネントにする。 •
親コンポーネント子コンポーネントで 値の受け渡し+イベントを整理する。
30.
DaySelect コンポーネント TableSchedule コンポーネント ReservationFooterコンポーネント
31.
Modal コンポーネント ReserveForm コンポーネント
32.
var HomeScreen =
React.createClass(){ render : function() {return <div> <DaySelect/> <TableSchedule/> <ReservationFooter/> <Modal> <ReserveForm/> </Modal> </div>})..}; JSX+コンポーネントタグ =JS内のrender()中に HTMLと独自タグを記述
33.
var DaySelect =
React.createClass(){ //初期化 getInitialState(){...}, //描画前 componentWillMount() {...}, //描画 render() {...}, //描画後 componentDidMount() {...}, //クリックイベント onClickBotton() {...} }
34.
http://qiita.com/kawachi/items/092bfc281f88e3a6e456
35.
http://qiita.com/kawachi/items/092bfc281f88e3a6e456 ライフサイクルさえ 把握すればReact を制したも同然
36.
TableSchedule コンポーネント 予約時間を クリック
37.
var HomeScreen =
React.createClass(){ render : function() {return <div> <DaySelect/> <TableSchedule onClickReservation={this.onClickReservation}/> <ReservationFooter/> <Modal> <ReserveForm/> </Modal>
38.
var HomeScreen =
React.createClass({ onClickReservation: function(reservation) { this.setState({ inputReservation: reservation, isModalOpen: true, doneButtonName:‘予約修正’, cancelButtonName:'予約取消' }); }, setState() ⇒再描画
39.
ReserveForm コンポーネント 修正ボタン クリック
40.
var HomeScreen =
React.createClass(){ render : function() {return <div> <DaySelect/> <TableSchedule onClickReservation={this.onClickReservation}/> <ReservationFooter/> <Modal> <ReserveForm onDone={this.updateReservation}/> </Modal> </div>})..};
41.
updateReservation: function(reservation) { request.post(apiHost +
‘/shops/’ + this.props.shopId + ‘/reservations’) .query({token:accessToken}) .send(query) .end(function (err, res) { //保存完了したら戻る処理 }; }; ※request オブジェクトは superagent.js をラップ
42.
React コンポーネント理解のポイント • ライフサイクルメソッドで生成される! •
setState() で再描画される!
43.
React Router
44.
React Router • ルーティングライブラリ •
URL と Reactコンポーネントの対応定義 • ヘッダー、サイドバー、フッターの共通化
45.
SPA=1画面制御 ログイン画面 ホーム画面 週間スケジュール 画面 すべて app.js
からRouting される
46.
ログイン画面 login_screen 予約ページフッター reservation_footer 週間スケジュール week_schedule ホーム画面 home_screen メニューヘッダー menu_header メニューヘッダー menu_header 予約ページフッター reservation_footer すべて app.js からRouting
される
47.
<Route name="app" path="/"
handler={App}> <Route name="home" path="/shops/:shopId“ handler={HomeScreen}/> <Route name="weekSchedule“ path="/shops/:shopId/week_schedule“ handler={WeekScheduleScreen}/> <Route name="login" path="/" handler={LoginScreen}/> <DefaultRoute handler={LoginScreen}/> </Route> 一元管理
48.
jQuery との共存
49.
jQuery UI Datepicker
50.
jQuery UI Datepicker 普通に使うと 動かない!
51.
jQuery 初期化は画面描画時 <script> //画面描画後に呼ばれる jQuery
の処理 $(document).ready(function(){ // datepckr に機能をバインドする $("#datepckr").datepicker(); }); </script> <input type="text" id="datepckr" />
52.
React は setState
で何度も再描画 getInitialState : 初期化時に1回だけ componentWillMount : render 前処理 render : 描画処理 componentDidMount : render 後処理 componentWillUpdate : State 変更後 render の前 componentDidUpdate : State 変更後 componentWillUnmount :コンポーネント削除前 =クリックイベント処理のバインドが外れてしまう
53.
http://qiita.com/kawachi/items/092bfc281f88e3a6e456
54.
render 直後であれば DOM
操作可能 getInitialState : 初期化時に1回だけ componentWillMount : render 前処理 render : 描画処理 componentDidMount : render 後処理 componentWillUpdate : State 変更後 render の前 componentDidUpdate : State 変更後 componentWillUnmount :コンポーネント削除前
55.
componentDidMount: function ()
{ self = this; $('.input-date').datepicker( { //Datepicker 初期化のための値 dateFormat: 'yy-mm-dd', //選択時のイベント処理 onSelect: function(dateVal) { //親コンポーネントに変数渡すなどの処理 } } ); }
56.
jQuery が data-reactid
を いじってしまうと 破壊されるので注意 <section data-reactid=".0.1.0.1"> <div data-reactid=".0.1.0.1.0"> <dl data-reactid=".0.1.0.1.0.0"> <dt data-reactid=".0.1.0.1.0.0.0">
57.
他にがんばったところ Canvas in React
58.
やらなかったこと • サーバサイドレンダリング 主にSPAのSEO対策用処置。 管理画面なのでSEO関係なかった。 • Flux 開発期間の都合であきらめた。 今後改善できる部分。
59.
まとめ • Angular もいいけど
React が平易そう • React での SPA 設計 1.コンポーネント化が基本 2.ReactRouterで統一的に画面遷移制御 3.jQuery との共存の方法は ライフサイクルを把握する
60.
ご清聴ありがとうございました
61.
アジェンダ • 絶対王者 Angular
vs 挑戦者 React • React での SPA 設計 1.コンポーネントを分ける 2.ReactRouter 3.jQuery との共存 • もうちょっとがんばれば Flux
62.
改善できそうなところ
63.
改善できるところ • もっと Flux
をやるなら
64.
良く見るFluxの図
65.
公式にあるFluxの図 (実はシンプル)
66.
• View = React
でつくった画面。 onClick などイベントがあればActionを呼ぶ。 • Action onClickなどのイベント処理の集約クラス。 イベントが発生したら Dispatcher を呼ぶ。 渡すデータのことをペイロードと呼ぶ。 • Dispatcher Actionからデータ(ペイロード)をもらって Store を操作 するクラス。 • Store Ajax や Localstorage などデータ取得・保存系の処理を行 うクラス。
67.
結局Fluxとは 一方向MVC • Model ≒
Store • View = View • Controller ≒ Action + Dispatcher ※厳密には違うが、理解の取っ掛かりに
68.
流れは一方向
69.
Fluxに変更する上で必要なこと たとえば HomeScreen コンポーネントなら 画面描画系
⇒ React コンポーネント (いままで通り) イベント系 onClickReservation ⇒ Action クラスへ 保存イベント系 onSave ⇒ Action + Dispatcher クラスへ 保存処理 request.post (ajax) ⇒ Store クラスへ
Download