SlideShare a Scribd company logo
Reactつかってみた 
MINORI TOKUDA @SNOWCRUSH
ReactRubyリリースしました。 
 https://github.com/minoritea/react_ruby 
ReactとRubyのブリッジ 
gem install react_ruby
Reactとはなんぞや 
 こっからずっとjavascriptのターン・・・
React is .... 
A javascript library for building user 
interfaces (facebook says...) 
コンポーネント指向のビュー・ライブラ 
リ(MVCのV) 
Fluxアーキテクチャにマッチしている
Fluxアーキテクチャ 
Facebookが提唱するクライアント 
サイド向けアーキテクチャ 
単方向のデータフローが特色 
ぶっちゃけObserverパターン
Observerパターン 
なにかあったら 
教えて 
こっちから聞きに 
は行かないよ 
おまえら、 
新情報来てるぞ 
購読して更新を待つ 
変化があったら通知
Observerじゃないパターン 
まだ読書中なんだ 
よ、まっとけ! 外に遊びに行こうぜ!! 
状態確認のために 
毎回問い合わせしないといけな 
い
Fluxの構成 
http://facebook. github.io/react/blog/2014/07/30/flux-actions-and-the-dispatcher.html 
特徴 
• 単方向のデータフロー 
• データの受け渡しは 
Observerパターンで購 
読 
• Storeはデータの配信場 
所(Modelとはちょっ 
と違う)
React is a view library 
ReactはFluxのビューのみ担う 
 部品単位で個別に作れる(ボタン、ブログ記 
事、etc ) 
 Storeの状態変化を検知して自動的にビューを 
更新する 
 Storeにコールバックを登録する 
 Reactiveプログラミング 
 仮想DOMを持つ
コード例 
var Component = React.createClass({ 
render: function(){ 
return <div> 
<div> Hello, World</div> 
<AnotherComponent /> 
</div>; 
} 
}); 
var el = document.queryFilter('#main'); 
React.render(<Component />, el); 
• XMLを埋め込める(独自記法) 
• コンポーネントはXMLタグで表記 
• 入れ子に出来る 
• DOMエレメントに出力する
仮想DOM 
 Reactは直接DOMにレンダリングするのではなく、 
内部で持っている仮想のDOMツリーに更新を書き込む 
 仮想DOMは一定のタイミングで差分を実際のDOMに反映する 
 差分だけ適用すればよいのでDOM生成のコストが抑えられ、高速らしい 
レンダリング差分反映 
Virtual 
DOM 
React DOM
仮想DOMの隠れたメリット 
内部のDOMツリーからブラウザいら 
ずでHTMLを生成できる 
サーバサイドレンダリング
ReactRuby作った理由 
 Blogエンジン用にサーバサイドレンダリング 
したかったから! 
 ぶっちゃけ、他に理由はない 
CMSだとクローラに食わせたり、SNSで共有 
するときのメタデータ出したりしたいので静 
的にコンテンツ表示するの大事
ReactRubyのコード例 
require ' react_ ruby' 
require 'sinatra' 
get '/' do 
src = File.read( ' component.jsx') 
ReactRuby.compile( jsx: s r c) 
erb <<-ERB 
<html><head></head> 
<body> 
<%= ReactRuby.render('<Component />')%> 
</body> 
</html> 
ERB 
end 
• まずgemを読み込みます。 
• javascriptソースをコンパイルする 
(ExecJS) 
• その後render メソッドにXMLタグを 
指定してHTMLを出力する 
• そんだけ!
React感想 
 Fluxは良い(データフローが単方向だとわかりやすい、デバッグしやす 
い) 
 Reactiveプログラミングは意外と分かりやすい 
 Formみたいなのはつらい 
 単方向なのでデータバインディングしこしこ書かないとダメ 
 Angularのありがたみがよく分かった 
 部品化しやすい、再利用しやすい 
 ライブラリがそろってくると上のフォームとかも楽になるかも 
 入れ子可能なのでコンテンツを構造化して配置したいときとかは楽 
 サーバサイドでレンダリングしたい向きにはよい
おわり 
ぶっちゃけ 
クライアントサイドJS 全般 
つらい!!!!

More Related Content

PDF
( ゚∀゚)o彡° Flux! Flux!
Yuki Ishikawa
 
PDF
React.js + Flux
dsuke Takaoka
 
PDF
angular X designer - デザイナからみたAngularJS #ten1club
silvers ofsilvers
 
PPT
T35 ASP.NET MVCを使ったTDD入門
normalian
 
PDF
RailsでReact.jsを動かしてみた話
yoshioka_cb
 
PDF
SIROK技術勉強会 #1 「Reactってなんだ?」
Naoyuki Kataoka
 
PDF
Flux react現状確認会
VOYAGE GROUP
 
PDF
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
 
( ゚∀゚)o彡° Flux! Flux!
Yuki Ishikawa
 
React.js + Flux
dsuke Takaoka
 
angular X designer - デザイナからみたAngularJS #ten1club
silvers ofsilvers
 
T35 ASP.NET MVCを使ったTDD入門
normalian
 
RailsでReact.jsを動かしてみた話
yoshioka_cb
 
SIROK技術勉強会 #1 「Reactってなんだ?」
Naoyuki Kataoka
 
Flux react現状確認会
VOYAGE GROUP
 
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
 

What's hot (17)

PDF
サーバサイドエンジニアが 1年間まじめにSPAやってみた
Itaru Kitagawa
 
PDF
iOSでMVVM入門
ishikawa akira
 
PPTX
React を導入した フロントエンド開発
daisuke-a-matsui
 
PDF
JavaScriptと共に歩いて行く決意をした君へ
Muyuu Fujita
 
PPTX
新ジャンルのJavaScript圧縮難読化に挑戦 ~jojofy-js
Kondo Hitoshi
 
PPTX
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
慎一 古賀
 
PPTX
Visual Studio 2017 事はじめ
Hideaki Aoyagi
 
PDF
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
Yusuke Murata
 
PPTX
120512 metro styleapp_javascript
Takayoshi Tanaka
 
PPTX
React.js + Reduxで作るSPA
Shohei Saeki
 
PPTX
AngularJSを浅めに紹介します
nkazuki
 
PDF
TypeScript による今風の web アプリ開発
靖 陣内
 
PPTX
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
Kondo Hitoshi
 
PDF
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Kohei Asai
 
PDF
jQueryを中心としたJavaScript
hideaki honda
 
PDF
無償版Visual StudioでいろいろWeb開発
Narami Kiyokura
 
PDF
いまさら聞けない!?Backbone.js 超入門
Kohei Kadowaki
 
サーバサイドエンジニアが 1年間まじめにSPAやってみた
Itaru Kitagawa
 
iOSでMVVM入門
ishikawa akira
 
React を導入した フロントエンド開発
daisuke-a-matsui
 
JavaScriptと共に歩いて行く決意をした君へ
Muyuu Fujita
 
新ジャンルのJavaScript圧縮難読化に挑戦 ~jojofy-js
Kondo Hitoshi
 
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
慎一 古賀
 
Visual Studio 2017 事はじめ
Hideaki Aoyagi
 
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
Yusuke Murata
 
120512 metro styleapp_javascript
Takayoshi Tanaka
 
React.js + Reduxで作るSPA
Shohei Saeki
 
AngularJSを浅めに紹介します
nkazuki
 
TypeScript による今風の web アプリ開発
靖 陣内
 
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
Kondo Hitoshi
 
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Kohei Asai
 
jQueryを中心としたJavaScript
hideaki honda
 
無償版Visual StudioでいろいろWeb開発
Narami Kiyokura
 
いまさら聞けない!?Backbone.js 超入門
Kohei Kadowaki
 
Ad

Similar to Reactつかってみた (20)

PDF
図とコード例で多分わかる React と flux (工事中)
Teloo
 
PPTX
今からでも遅くない! React事始め
ynaruta
 
PDF
サンプルTodoから見るreact,flux,redux(古川)
hisakatsu furukawa
 
PDF
React.js + Flux入門 #scripty02
Yahoo!デベロッパーネットワーク
 
PPTX
React + Reduxで作る対話AI
Kentaro Tada
 
PPTX
Hello, React!! まで導く Reactの基礎
iPride Co., Ltd.
 
PPTX
React入門
GIG inc.
 
PPTX
Reactに触れてみた
iPride Co., Ltd.
 
PDF
React.jsでクライアントサイドなWebアプリ入門
spring_raining
 
PPTX
SYSTEMI勉強会まとめ資料(React基礎まとめ)
YoshikiWatanabe1
 
PDF
raect.jsを触ったお話
Ryuuichi Iha
 
PDF
Reactとbabelで簡易タスク管理ツール作ってみた
Tsuyoshi Maeda
 
PPTX
Reactjs
しくみ製作所
 
PDF
react_rails
Shigeru Kondoh
 
PDF
Om Next ~React.jsを超えて
Kazuki Tsutsumi
 
PDF
React entry
Nobuaki Miura
 
PDF
React+TypeScriptもいいぞ
Mitsuru Ogawa
 
PPTX
まだDOM操作で消耗してるの?
IRI MO
 
PDF
React introduntion
YutaShimabukuro
 
PDF
SPAを選択した理由とその結果 ~Reactを添えて~
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
 
図とコード例で多分わかる React と flux (工事中)
Teloo
 
今からでも遅くない! React事始め
ynaruta
 
サンプルTodoから見るreact,flux,redux(古川)
hisakatsu furukawa
 
React.js + Flux入門 #scripty02
Yahoo!デベロッパーネットワーク
 
React + Reduxで作る対話AI
Kentaro Tada
 
Hello, React!! まで導く Reactの基礎
iPride Co., Ltd.
 
React入門
GIG inc.
 
Reactに触れてみた
iPride Co., Ltd.
 
React.jsでクライアントサイドなWebアプリ入門
spring_raining
 
SYSTEMI勉強会まとめ資料(React基礎まとめ)
YoshikiWatanabe1
 
raect.jsを触ったお話
Ryuuichi Iha
 
Reactとbabelで簡易タスク管理ツール作ってみた
Tsuyoshi Maeda
 
react_rails
Shigeru Kondoh
 
Om Next ~React.jsを超えて
Kazuki Tsutsumi
 
React entry
Nobuaki Miura
 
React+TypeScriptもいいぞ
Mitsuru Ogawa
 
まだDOM操作で消耗してるの?
IRI MO
 
React introduntion
YutaShimabukuro
 
SPAを選択した理由とその結果 ~Reactを添えて~
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
 
Ad

Reactつかってみた