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
Yuto Matsukubo
1,497 views
Intoroduction to React.js
勉強会資料
Technology
◦
Read more
3
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 52
2
/ 52
3
/ 52
4
/ 52
5
/ 52
6
/ 52
7
/ 52
8
/ 52
9
/ 52
10
/ 52
11
/ 52
12
/ 52
13
/ 52
14
/ 52
15
/ 52
16
/ 52
17
/ 52
18
/ 52
19
/ 52
20
/ 52
21
/ 52
22
/ 52
23
/ 52
24
/ 52
25
/ 52
26
/ 52
27
/ 52
28
/ 52
29
/ 52
30
/ 52
31
/ 52
32
/ 52
33
/ 52
34
/ 52
35
/ 52
36
/ 52
37
/ 52
38
/ 52
39
/ 52
40
/ 52
41
/ 52
42
/ 52
43
/ 52
44
/ 52
45
/ 52
46
/ 52
47
/ 52
48
/ 52
49
/ 52
50
/ 52
51
/ 52
52
/ 52
More Related Content
PPTX
今からでも遅くない! React事始め
by
ynaruta
PDF
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
by
Kohei Asai
PPTX
React.js + Reduxで作るSPA
by
Shohei Saeki
PDF
Start React with Browserify
by
Muyuu Fujita
PDF
Flux react現状確認会
by
VOYAGE GROUP
PPTX
20160927 reactmeetup
by
Naoki Kurosawa
PDF
RailsでReact.jsを動かしてみた話
by
yoshioka_cb
PDF
SIROK技術勉強会 #1 「Reactってなんだ?」
by
Naoyuki Kataoka
今からでも遅くない! React事始め
by
ynaruta
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
by
Kohei Asai
React.js + Reduxで作るSPA
by
Shohei Saeki
Start React with Browserify
by
Muyuu Fujita
Flux react現状確認会
by
VOYAGE GROUP
20160927 reactmeetup
by
Naoki Kurosawa
RailsでReact.jsを動かしてみた話
by
yoshioka_cb
SIROK技術勉強会 #1 「Reactってなんだ?」
by
Naoyuki Kataoka
What's hot
PDF
なぜ人は必死でjQueryを捨てようとしているのか
by
Yoichi Toyota
PPTX
iOS WKWebViewの魔改造 - iOSDC 2018
by
Shingo Fukuyama
PPTX
まだDOM操作で消耗してるの?
by
IRI MO
PDF
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
by
david9142
PDF
iOS の通信における認証の種類とその取り扱い
by
niwatako
PDF
iOS 9 Bootcamp #6 UIKit
by
Shingo Hiraya
PPTX
さわってみようReact.js、AngularJS(1系、2系)
by
Kazuhiro Yoshimoto
PDF
iOS WebView App
by
hagino 3000
PDF
React Redux Redux-Saga + サーバサイドレンダリング
by
エンジニア勉強会 エスキュービズム
PDF
まだ DOM 操作で消耗してるの?
by
Yuki Ishikawa
PPTX
20120609
by
小野 修司
KEY
Kawaz的jQuery入門
by
Kohki Miki
PPTX
JavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
by
Kazuhiro Yoshimoto
PDF
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
by
Kosuke Ogawa
PPTX
20120128
by
小野 修司
PDF
Angular js or_backbonejs
by
Omasa Yusaku
なぜ人は必死でjQueryを捨てようとしているのか
by
Yoichi Toyota
iOS WKWebViewの魔改造 - iOSDC 2018
by
Shingo Fukuyama
まだDOM操作で消耗してるの?
by
IRI MO
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
by
david9142
iOS の通信における認証の種類とその取り扱い
by
niwatako
iOS 9 Bootcamp #6 UIKit
by
Shingo Hiraya
さわってみようReact.js、AngularJS(1系、2系)
by
Kazuhiro Yoshimoto
iOS WebView App
by
hagino 3000
React Redux Redux-Saga + サーバサイドレンダリング
by
エンジニア勉強会 エスキュービズム
まだ DOM 操作で消耗してるの?
by
Yuki Ishikawa
20120609
by
小野 修司
Kawaz的jQuery入門
by
Kohki Miki
JavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
by
Kazuhiro Yoshimoto
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
by
Kosuke Ogawa
20120128
by
小野 修司
Angular js or_backbonejs
by
Omasa Yusaku
Similar to Intoroduction to React.js
PDF
React introduntion
by
YutaShimabukuro
PDF
React entry
by
Nobuaki Miura
PDF
フロントエンド開発入門(React).pdf
by
KSato2
PPTX
SYSTEMI勉強会まとめ資料(React基礎まとめ)
by
YoshikiWatanabe1
PPTX
Reactに触れてみた
by
iPride Co., Ltd.
PPTX
React入門
by
GIG inc.
PPTX
Reactjs
by
しくみ製作所
PPTX
Hello, React!! まで導く Reactの基礎
by
iPride Co., Ltd.
PDF
React.jsでクライアントサイドなWebアプリ入門
by
spring_raining
PDF
Webアプリ開発入門_たくてぃん道場 React bootcamp by CraftStadium
by
CraftStaidium
PPTX
20210316_myfirst react
by
Kuroiwa Takumi
PPTX
Reactのおさらい
by
iPride Co., Ltd.
PDF
React.js + Flux入門 #scripty02
by
Yahoo!デベロッパーネットワーク
PDF
react勉強会 #4
by
KentaIwadate
PPTX
React componentのコンストラクタを追いかけて
by
Hoso michi
PDF
図とコード例で多分わかる React と flux (工事中)
by
Teloo
PPTX
React way at_eight
by
Hideharu Okuma
PDF
raect.jsを触ったお話
by
Ryuuichi Iha
PDF
React入門-JSONを取得して表示する
by
regret raym
PDF
React vtecx20171025
by
Shinichiro Takezaki
React introduntion
by
YutaShimabukuro
React entry
by
Nobuaki Miura
フロントエンド開発入門(React).pdf
by
KSato2
SYSTEMI勉強会まとめ資料(React基礎まとめ)
by
YoshikiWatanabe1
Reactに触れてみた
by
iPride Co., Ltd.
React入門
by
GIG inc.
Reactjs
by
しくみ製作所
Hello, React!! まで導く Reactの基礎
by
iPride Co., Ltd.
React.jsでクライアントサイドなWebアプリ入門
by
spring_raining
Webアプリ開発入門_たくてぃん道場 React bootcamp by CraftStadium
by
CraftStaidium
20210316_myfirst react
by
Kuroiwa Takumi
Reactのおさらい
by
iPride Co., Ltd.
React.js + Flux入門 #scripty02
by
Yahoo!デベロッパーネットワーク
react勉強会 #4
by
KentaIwadate
React componentのコンストラクタを追いかけて
by
Hoso michi
図とコード例で多分わかる React と flux (工事中)
by
Teloo
React way at_eight
by
Hideharu Okuma
raect.jsを触ったお話
by
Ryuuichi Iha
React入門-JSONを取得して表示する
by
regret raym
React vtecx20171025
by
Shinichiro Takezaki
More from Yuto Matsukubo
PDF
がんばれテックリード!JIRA芸人篇!!
by
Yuto Matsukubo
PDF
明日から使える気になるGo言語による並行処理
by
Yuto Matsukubo
PDF
Go/gRPCはじめました
by
Yuto Matsukubo
PDF
非エンジニア向け技術セミナーをした話
by
Yuto Matsukubo
PDF
GCPでSplatoonの戦績を分析する
by
Yuto Matsukubo
PDF
「オブジェクト指向設計実践ガイド」を読んだので誰かに意見聞きたい
by
Yuto Matsukubo
PDF
Rubyistを誘うScalaの世界 2.0
by
Yuto Matsukubo
PDF
Rubyistを誘うScalaの世界
by
Yuto Matsukubo
PDF
はじめてのTDD
by
Yuto Matsukubo
PDF
受託開発でAnsibleを導入した話
by
Yuto Matsukubo
がんばれテックリード!JIRA芸人篇!!
by
Yuto Matsukubo
明日から使える気になるGo言語による並行処理
by
Yuto Matsukubo
Go/gRPCはじめました
by
Yuto Matsukubo
非エンジニア向け技術セミナーをした話
by
Yuto Matsukubo
GCPでSplatoonの戦績を分析する
by
Yuto Matsukubo
「オブジェクト指向設計実践ガイド」を読んだので誰かに意見聞きたい
by
Yuto Matsukubo
Rubyistを誘うScalaの世界 2.0
by
Yuto Matsukubo
Rubyistを誘うScalaの世界
by
Yuto Matsukubo
はじめてのTDD
by
Yuto Matsukubo
受託開発でAnsibleを導入した話
by
Yuto Matsukubo
Intoroduction to React.js
1.
Introduction to React.js
2.
こんな人が対象 React.jsまわりのワード多すぎて わかんね なんでReactなんですか? jQueryじゃだめなんですか?
3.
React.jsが解決するもの
4.
• コンポーネントという概念を持ち込むことで設 計を改善する • Virtual
DOM採用による設計と速度の両立 • JSフレームワークで問題になりがちなSEOに対 応できる
5.
採用事例 • Facebook • Instagram •
Yahoo • Atom Editor(React導入後にVanillaJSで書きな おした) • Airbnb
6.
React.jsにまつわるワード
7.
• React Component •
JSX • Virtual DOM • Server-Side Rendering • Flux
8.
React.jsのComponent
9.
jQuery どこのDOM? $('#target').click(function() { $('#output').html(function(i, val)
{ return val*1+1 }); }); DOMが状態を 持ってしまっている
10.
React.jsvar Counter =
React.createClass({ getInitialState() { return { count: 0 }; }, onClick() { this.setState({count: this.state.count + 1}); }, render() { return ( <div> <div>count:{this.state.count}</div> <button onClick={this.onClick}>click!</button> </div> ); } }); DOMの情報もJSで持つ DOMに対する操作
11.
• DOMとロジックの距離を近づけることでコード がリーダブルになる • 実DOMの状態に影響されないのでテスタブルに なる •
Facebook曰く技術の分離でなく責務で分離した らこうなるらしい
12.
var Counter =
React.createClass({ getInitialState() { return { count: 0 }; }, onClick() { this.setState({count: this.state.count + 1}); }, render() { return ( <div> <div>count:{this.state.count}</div> <button onClick={this.onClick}>click!</button> </div> ); } }); なんかHTMLっぽいのがまざってるんですけど… ちょっとまて
13.
JSX
14.
• JSの中に HTMLっぽいもの
を組み込める • 事前にコンパイルする必要あり • 素のJSで書くよりコードが直感的になる
15.
<div className="foo"> <div className="bar"> Hello
{this.props.name} </div> </div> React.createElement("div", {className: "foo"}, React.createElement("div", {className: "bar"}, "Hello ", this.props.name ) ) JSX JS
16.
• こういったコンポーネントの考え方で設計手法 が確立できた • ただし設計のためだけにパフォーマンスを犠牲 にできない •
設計と速度の両立が必要
17.
Virtual DOM
18.
• JSオブジェクトでDOMを内部で再現する • データに変更があった場合、Diffを計算し実際の DOMを部分更新する •
Reactを使う側は特に意識する必要は 基本的 に ない • Virtual DOM自体は概念なので実装が色々ある
19.
いろんなVirtual DOM実装 • facebook/react •
Matt-Esch/virtual-dom • dekujs/deku • omcljs/om • Elm
20.
Virtual DOMがあることで なにが嬉しいの • jQueryのように自前でDOMに対してパッチを当てなく ていい •
ユーザは期待するDOMの結果だけを定義すればいい • しかもいい感じに速い • 毎回新しくDOMを作って上書きすればコードとDOM の状態に乖離がなくなる • ↑これってサーバサイドっぽくね?
21.
引用: http://blog.masuidrive.jp/2015/03/03/react/
22.
Virtual DOMはフロントサイドに富豪 的プログラミングパラダイムをもたらす
23.
• VirtualDomによってJS内でDOMを実現できた • つまりJSの実行環境があればサーバサイドでDOM が作れる?
24.
Server-Side Rendering
25.
• ユーザからリクエストを受けた最初のレンダリン グのみサーバサイドで行う • クライアントでDOMを作り始めないので体感速度 が上がる •
リクエストしたタイミングでレンダリングが終わっ ている、ということはクローラーが認識できる • つまりSEOに対応できる!
26.
他言語対応もありまぁす • reactjs/react-python • reactjs/react-php-v8js •
reactjs/React.NET • yanns/play-react • reactjs/react-rails
27.
他言語対応もありまぁす • reactjs/react-python • reactjs/react-php-v8js •
reactjs/React.NET • yanns/play-react • reactjs/react-rails おっ
28.
React with Rails
29.
• react-railsを使ってRailsにReactを組み込む • Scaffoldで生成されるようなアプリを再現する •
CRUD • ルーティング
30.
Demo https://rails-scaffold-react.herokuapp.com/
31.
外部のReact Components • Reactable •
TableをReactComponentとして実現できる • JSオブジェクトを渡すだけでテーブルを表示 • ソート機能などもあり • react-router • React.jsでルーティングを実現する
32.
React Componentsの探し方 • React
Components • http://react-components.com/ • React Rocks • http://react.rocks/
33.
Reactいいじゃん! Reactサイコー!
34.
Reactのつらみ
35.
• コード量増える(jQuery,Angular.jsと比較)
36.
コード量比較(当社比) jQuery $('#target').click(function() { $('#output').html(function(i, val)
{ return val*1+1 }); }); var Counter = React.createClass({ getInitialState() { return { count: 0 }; }, onClick() { this.setState({count: this.state.count + 1}); }, render() { return ( <div> <div>count:{this.state.count}</div> <button onClick={this.onClick}>click!</button> </div> ); } }); React.js
37.
コード量比較(当社比) jQuery $('#target').click(function() { $('#output').html(function(i, val)
{ return val*1+1 }); }); var Counter = React.createClass({ getInitialState() { return { count: 0 }; }, onClick() { this.setState({count: this.state.count + 1}); }, render() { return ( <div> <div>count:{this.state.count}</div> <button onClick={this.onClick}>click!</button> </div> ); } }); React.js _人人人人_ > 6倍 <  ̄Y^Y^Y ̄
38.
Facebook曰く • コードは書く時間より読む時間の方が長いんだ!
39.
• ReactはViewのみを管理するものなので何かし らのアーキテクチャが必要
40.
Flux
41.
Fluxとは • アーキテクチャの名前 • 言ってしまえばObserverパターン •
データフローを一方向にすることで複雑性を排 除する
42.
引用: https://facebook.github.io/flux/docs/overview.html
43.
引用: https://facebook.github.io/flux/docs/overview.html • ユーザからのアクションやサーバからのレスポン スを受ける •
構築したデータをDispacherに渡す • WebAPIとやりとりするのもここ
44.
引用: https://facebook.github.io/flux/docs/overview.html • Actionからデータと配送先が渡されるので順次 配信する(大体の場合Store) •
実装上はEventEmitterで良い • facebook/fluxはこの部分のみ提供する
45.
引用: https://facebook.github.io/flux/docs/overview.html • モデルみたいなもの •
Dispacherから渡されたデータを保持する • Dispacherからデータが渡されたらイベントを 発行する
46.
引用: https://facebook.github.io/flux/docs/overview.html • Storeを監視してデータが変更されたらViewに 反映する •
React.jsが担うのはここ • ユーザからのアクションをActionに通知する
47.
引用: https://facebook.github.io/flux/docs/overview.html • データフローを一方向にすることで設計をシン プルにする •
Fluxの功績はこのパターンに名前を付けたこと
48.
• ここで紹介したFluxはあくまで一例 • Fluxは概念なので実装によって変わる
49.
いろんなFlux実装 • facebook/flux • yahoo/fluxible •
martyjs/marty • kenwheeler/mcfly • deloreanjs/delorean
50.
Fluxを扱ったDemo http://peranikov.github.io/kpt-react
51.
まとめ • Reactは速度と設計を両立させるViewのライブ ラリ • 生産性を上げるためのものではないし、コード 量は増える •
React単体では扱いにくい。Fluxを併用しよう
52.
参考文献 • ReactとFluxのこと • https://speakerdeck.com/geta6/reacttofluxfalsekoto •
一人React.js Advent Calendar 2014 • http://qiita.com/advent-calendar/2014/reactjs • Introduction To React • https://speakerdeck.com/hokaccha/introduction-to-react
Download