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
Naoyuki Kataoka
PDF, PPTX
65,865 views
SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」
Technology
◦
Read more
20
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 86
2
/ 86
3
/ 86
4
/ 86
5
/ 86
6
/ 86
7
/ 86
8
/ 86
9
/ 86
10
/ 86
11
/ 86
12
/ 86
13
/ 86
14
/ 86
15
/ 86
16
/ 86
17
/ 86
18
/ 86
19
/ 86
20
/ 86
21
/ 86
22
/ 86
23
/ 86
24
/ 86
25
/ 86
26
/ 86
27
/ 86
28
/ 86
29
/ 86
30
/ 86
31
/ 86
32
/ 86
33
/ 86
34
/ 86
35
/ 86
36
/ 86
37
/ 86
38
/ 86
39
/ 86
40
/ 86
41
/ 86
42
/ 86
43
/ 86
44
/ 86
45
/ 86
46
/ 86
47
/ 86
48
/ 86
49
/ 86
50
/ 86
51
/ 86
52
/ 86
53
/ 86
54
/ 86
55
/ 86
56
/ 86
57
/ 86
58
/ 86
59
/ 86
60
/ 86
61
/ 86
62
/ 86
63
/ 86
64
/ 86
65
/ 86
66
/ 86
67
/ 86
68
/ 86
69
/ 86
70
/ 86
71
/ 86
72
/ 86
73
/ 86
74
/ 86
75
/ 86
76
/ 86
77
/ 86
78
/ 86
79
/ 86
80
/ 86
81
/ 86
82
/ 86
83
/ 86
84
/ 86
85
/ 86
86
/ 86
More Related Content
PDF
なぜ人は必死でjQueryを捨てようとしているのか
by
Yoichi Toyota
PDF
RailsでReact.jsを動かしてみた話
by
yoshioka_cb
PDF
まだ DOM 操作で消耗してるの?
by
Yuki Ishikawa
PDF
Flux react現状確認会
by
VOYAGE GROUP
PPTX
React を導入したフロントエンド開発
by
daisuke-a-matsui
PDF
サーバサイドエンジニアが 1年間まじめにSPAやってみた
by
Itaru Kitagawa
PPTX
React.js + Reduxで作るSPA
by
Shohei Saeki
PDF
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
by
Yusuke Murata
なぜ人は必死でjQueryを捨てようとしているのか
by
Yoichi Toyota
RailsでReact.jsを動かしてみた話
by
yoshioka_cb
まだ DOM 操作で消耗してるの?
by
Yuki Ishikawa
Flux react現状確認会
by
VOYAGE GROUP
React を導入したフロントエンド開発
by
daisuke-a-matsui
サーバサイドエンジニアが 1年間まじめにSPAやってみた
by
Itaru Kitagawa
React.js + Reduxで作るSPA
by
Shohei Saeki
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
by
Yusuke Murata
What's hot
PDF
React+fluxを導入した話
by
Yuki Ishikawa
PPTX
今からでも遅くない! React事始め
by
ynaruta
PDF
svelte と tailwind で始めるフロントエンド開発
by
Shuichi Takaya
PDF
React.js + Flux
by
dsuke Takaoka
PDF
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
by
Kohei Asai
PDF
angular X designer - デザイナからみたAngularJS #ten1club
by
silvers ofsilvers
PPTX
React NativeでTwitterクライアントを作ってみよう
by
dcubeio
PDF
gulp芸
by
Yuki Ishikawa
PDF
イマドキのフロントエンドエンジニアの道具箱
by
Fumio SAGAWA
PPTX
Angular js はまりどころ
by
Ayumi Goto
PDF
jQueryを中心としたJavaScript
by
hideaki honda
PDF
React Redux Redux-Saga + サーバサイドレンダリング
by
エンジニア勉強会 エスキュービズム
PDF
いまさら聞けない!?Backbone.js 超入門
by
Kohei Kadowaki
PDF
( ゚∀゚)o彡° Flux! Flux!
by
Yuki Ishikawa
PPTX
ReactでCMSを作ったときにハマったこと
by
kazuki matsumura
PDF
Enterprise x AngularJS
by
Kenichi Kanai
PDF
React Native 入門
by
Seiichi Okumiya
PDF
2016/05/01 Visual Studio with Cordova
by
miso- soup3
PDF
サーバを運用する時代は終わった
by
Yuki Ishikawa
PDF
S14 t3 yosuke_yamashita
by
Takeshi Akutsu
React+fluxを導入した話
by
Yuki Ishikawa
今からでも遅くない! React事始め
by
ynaruta
svelte と tailwind で始めるフロントエンド開発
by
Shuichi Takaya
React.js + Flux
by
dsuke Takaoka
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
by
Kohei Asai
angular X designer - デザイナからみたAngularJS #ten1club
by
silvers ofsilvers
React NativeでTwitterクライアントを作ってみよう
by
dcubeio
gulp芸
by
Yuki Ishikawa
イマドキのフロントエンドエンジニアの道具箱
by
Fumio SAGAWA
Angular js はまりどころ
by
Ayumi Goto
jQueryを中心としたJavaScript
by
hideaki honda
React Redux Redux-Saga + サーバサイドレンダリング
by
エンジニア勉強会 エスキュービズム
いまさら聞けない!?Backbone.js 超入門
by
Kohei Kadowaki
( ゚∀゚)o彡° Flux! Flux!
by
Yuki Ishikawa
ReactでCMSを作ったときにハマったこと
by
kazuki matsumura
Enterprise x AngularJS
by
Kenichi Kanai
React Native 入門
by
Seiichi Okumiya
2016/05/01 Visual Studio with Cordova
by
miso- soup3
サーバを運用する時代は終わった
by
Yuki Ishikawa
S14 t3 yosuke_yamashita
by
Takeshi Akutsu
Similar to SIROK技術勉強会 #1 「Reactってなんだ?」
PDF
フロントエンド開発入門(React).pdf
by
KSato2
PDF
React introduntion
by
YutaShimabukuro
PPTX
Hello, React!! まで導く Reactの基礎
by
iPride Co., Ltd.
PPTX
まだDOM操作で消耗してるの?
by
IRI MO
PDF
React entry
by
Nobuaki Miura
PDF
Intoroduction to React.js
by
Yuto Matsukubo
PPTX
React + Reduxで作る対話AI
by
Kentaro Tada
PPTX
SYSTEMI勉強会まとめ資料(React基礎まとめ)
by
YoshikiWatanabe1
PDF
Start React with Browserify
by
Muyuu Fujita
PDF
React.js + Flux入門 #scripty02
by
Yahoo!デベロッパーネットワーク
PPTX
Reactに触れてみた
by
iPride Co., Ltd.
PDF
raect.jsを触ったお話
by
Ryuuichi Iha
PPTX
React way at_eight
by
Hideharu Okuma
PDF
Om Next ~React.jsを超えて
by
Kazuki Tsutsumi
PPTX
Reactつかってみた
by
Minori Tokuda
PPTX
Reactjs
by
しくみ製作所
PDF
Webアプリ開発入門_たくてぃん道場 React bootcamp by CraftStadium
by
CraftStaidium
PPTX
React入門
by
GIG inc.
PDF
React vtecx20171025
by
Shinichiro Takezaki
PPTX
The First React on Rails
by
Kohei Ito
フロントエンド開発入門(React).pdf
by
KSato2
React introduntion
by
YutaShimabukuro
Hello, React!! まで導く Reactの基礎
by
iPride Co., Ltd.
まだDOM操作で消耗してるの?
by
IRI MO
React entry
by
Nobuaki Miura
Intoroduction to React.js
by
Yuto Matsukubo
React + Reduxで作る対話AI
by
Kentaro Tada
SYSTEMI勉強会まとめ資料(React基礎まとめ)
by
YoshikiWatanabe1
Start React with Browserify
by
Muyuu Fujita
React.js + Flux入門 #scripty02
by
Yahoo!デベロッパーネットワーク
Reactに触れてみた
by
iPride Co., Ltd.
raect.jsを触ったお話
by
Ryuuichi Iha
React way at_eight
by
Hideharu Okuma
Om Next ~React.jsを超えて
by
Kazuki Tsutsumi
Reactつかってみた
by
Minori Tokuda
Reactjs
by
しくみ製作所
Webアプリ開発入門_たくてぃん道場 React bootcamp by CraftStadium
by
CraftStaidium
React入門
by
GIG inc.
React vtecx20171025
by
Shinichiro Takezaki
The First React on Rails
by
Kohei Ito
More from Naoyuki Kataoka
PDF
シロク流事業の立ち上げ方の成功と失敗
by
Naoyuki Kataoka
PDF
成長する組織を支えるシロクの自動化
by
Naoyuki Kataoka
PDF
Lightning-fastなライトニングトーク
by
Naoyuki Kataoka
PDF
スマホアプリの収益のモデリング
by
Naoyuki Kataoka
PDF
Objective-CのBlocksの循環参照に関する僕なりのベストプラクティス
by
Naoyuki Kataoka
PDF
Web若手エンジニアの会(仮)
by
Naoyuki Kataoka
PDF
Facebook Night vol. 6
by
Naoyuki Kataoka
PDF
レンタルサーバで今すぐ始めるWEB開発
by
Naoyuki Kataoka
シロク流事業の立ち上げ方の成功と失敗
by
Naoyuki Kataoka
成長する組織を支えるシロクの自動化
by
Naoyuki Kataoka
Lightning-fastなライトニングトーク
by
Naoyuki Kataoka
スマホアプリの収益のモデリング
by
Naoyuki Kataoka
Objective-CのBlocksの循環参照に関する僕なりのベストプラクティス
by
Naoyuki Kataoka
Web若手エンジニアの会(仮)
by
Naoyuki Kataoka
Facebook Night vol. 6
by
Naoyuki Kataoka
レンタルサーバで今すぐ始めるWEB開発
by
Naoyuki Kataoka
SIROK技術勉強会 #1 「Reactってなんだ?」
2.
Reactってなんだ?
4.
JavaScriptで UIを作るためのライブラリ
5.
SIROKのUI構築の変遷
6.
My365: PHP テンプレートエンジンとして使う
7.
ピプル Apache Velocity サーバサイド処理
8.
Growth Push Backbone +
Handlebars 本格的にJSでUI実装
9.
Growth Point TypeScript +
Backbone + Handlebars 生のJSつらくなってきた
10.
Growthbeat TypeScript + Backbone
+ Underscore template ロジックレスつらい
11.
新規プロジェクト TypeScript + React?
12.
Reactとは?
13.
JavaScriptで UIを作るためのライブラリ
14.
MVCのViewの部分のみを担当 基本的にそれ以外には関わらない
15.
高速な描画処理 Virtual DOMという概念
16.
ビュー操作の難しさ
17.
DOM操作は遅い。 想像しているよりもずっと。
18.
大抵は、こういうことがしたい。 データ (JS Object) ビュー (HTML)
19.
サーバから取得したり、ユーザー が変更してデータが変化。 データ (JS Object) ビュー (HTML) 更新
20.
データの更新に合わせてビューも 更新する必要がある。 データ (JS Object) ビュー (HTML) 更新
21.
1. まるごと書き換えるパターン 2. 差分更新するパターン
22.
まるごと書き換えるパターン データが少しでも変化したら、 HTMLを全部まるごと書き換える。 データ (JS Object) ビュー (HTML) テンプレートで全更新
23.
DOM操作は遅い。 想像しているよりもずっと。
24.
リストオブジェクトのデータ追加 <table>への大量の行追加
25.
突然の死
26.
エンジニアががんばって DOMを差分更新するパターン データ (JS Object) ビュー (HTML) 変化したところだけ 差分更新
27.
どこかでミスして 変な中間状態におちいる
28.
結局のところ死
29.
1. 簡単だけど遅い 2. 高速だけど複雑
30.
なぜReactか?
31.
結局のところ死
32.
そこでVirtual DOM
33.
データ (JS Object) ビュー (HTML) テンプレートで全更新 (簡単) Virtual DOM システム的に差分更新 (高速)
34.
エンジニア的には、常に全更新で 良いので簡単で間違えない。 システム的には、差分更新なので 高速に実行可能。
35.
つまり、簡単で速い
36.
1. Virtual DOMの全更新 2.
Virtual DOMの差分計算 3. DOMへの差分適用 ・・・は「DOMの全更新」より速い
37.
Hello React
38.
<!DOCTYPE html> <html> <head> <script src="build/react.js"></script> <script
src="build/JSXTransformer.js"></ script> </head> <body> <div id="example"></div> <script type="text/jsx"> React.render( <h1>Hello, world!</h1>, document.getElementById('example') ); </script> </body> </html>
40.
React.render( <h1>Hello, world!</h1>, document.getElementById('example') );
41.
#example要素の中に <h1>Hello, world!</h1> を表示
42.
React.render( <h1>Hello, world!</h1>, document.getElementById('example') );
43.
JSX
44.
これじゃない
45.
これでもない
46.
JSX is a
JavaScript syntax extension that looks similar to XML.
47.
XMLっぽいのが使える JavaScript
48.
<!DOCTYPE html> <html> <head> <script src="build/react.js"></script> <script
src="build/JSXTransformer.js"></ script> </head> <body> <div id="example"></div> <script type="text/jsx"> React.render( <h1>Hello, world!</h1>, document.getElementById('example') ); </script> </body> </html>
49.
JSXTransformerで JavaScriptに変換してから実行 JSX JavaScript react.js JSXTransformer 実行
50.
JSXのプリコンパイル
51.
実行時にコンパイルしたくない。
52.
npm install -g
react-tools JSX JavaScript react.js react-tools 実行
53.
React.render( React.createElement("h1", null, "Hello, world!"), document.getElementById('example') );
54.
<!DOCTYPE html> <html> <head> <script src="build/react.js"></script> <!--<script
src="build/JSXTransformer.js"></ script>--> </head> <body> <div id="example"></div> <script src="build/helloworld.js"></script> </body> </html>
55.
Component
56.
Componentとは?
57.
Viewをオブジェクト化したもの
58.
var Hello =
React.createClass({ render() { return ( <div>Hello {this.props.name}</div> ) } }); React.render( <Hello name="World" />, document.getElementById('example') );
59.
React#createClassで、 Componetを作成
60.
renderメソッドで、 描画するDOM定義を返す。
61.
var Hello =
React.createClass({ render() { return ( <div>Hello {this.props.name}</div> ) } }); React.render( <Hello name="World" />, document.getElementById('example') );
62.
Componentに対して、 propsで値の受け渡しが可能
63.
var Hello =
React.createClass({ render() { return ( <div>Hello {this.props.name}</div> ) } }); React.render( <Hello name="World" />, document.getElementById('example') );
64.
props
65.
props?
66.
Componentに対して 外部から値を渡す受け口
67.
propsが外部との インタフェースになる propsで何でも渡せる(関数も)
68.
propsはImmutableに扱う 外からpropsを渡し直すときは、 setProps、replaceProps
69.
state
70.
state?
71.
Component内部の 状態を保持するための変数
72.
propsが外部とのインタフェース stateは内部の状態変数 State props render Component
73.
var Hello =
React.createClass({ getInitialState() { return { name: 'World' }; }, onClick() { this.setState({ name: this.state.name + '!' }); }, render() { return ( <div> <h1>Hello {this.state.name}</h1> <button onClick={this.onClick}>click</button> </div> ) } });
75.
あるComponentのstateが、 その子のpropsになるかも
76.
Users User ID Name … User ID Name … … [ {ID, Name, …}, {ID,
Name, …}, {ID, Name, …}, … ]
77.
var User =
React.createClass({ render() { return ( <li>Hello {this.props.user.name}</li> ) } });
78.
var Users =
React.createClass({ // …(略)… render() { var users = this.state.users.map((user) => { return <User user={user}/> }); return ( <ul> {users} </ul> ) } });
80.
まとめ
81.
便利そう。
82.
次回予告
83.
・週に1回、誰かが発表しています。 ・発表者はリレー形式でやってい ます。 ・内容は指名された人が主張した いことや興味があることなど ・時間は、10∼30分程度です。 ・形式も色々です。(プレゼン形式、 クイズ形式、など) ・途中参加、途中退出もOKです。 ・飛び込みでの発表もOKです。
84.
@uchidas
85.
3/10(火) 19:00∼
Download