Submit Search
Upload
The First React on Rails
•
Download as PPTX, PDF
•
9 likes
•
4,726 views
Kohei Ito
Follow
すでに動いているRailsアプリケーションにReact.jsを実践投入する http://qiita.com/khrtz/items/a43d58cad54af2425ced
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 20
Download now
Recommended
Flex入門
Flex入門
Shinjiro Watanabe
React meetup 3_eight
React meetup 3_eight
Hideharu Okuma
社内LTネタ ReactNative
社内LTネタ ReactNative
Oguri Toru
React way at_eight
React way at_eight
Hideharu Okuma
React Nativeってどうなの?
React Nativeってどうなの?
Ryosuke Hara
SwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよ
Syo Ikeda
Realm meet up #17
Realm meet up #17
Daisuke Nagata
ReactNative + Redux + NativeBaseでつくるサンプル実装をのぞく
ReactNative + Redux + NativeBaseでつくるサンプル実装をのぞく
Fumiya Sakai
Recommended
Flex入門
Flex入門
Shinjiro Watanabe
React meetup 3_eight
React meetup 3_eight
Hideharu Okuma
社内LTネタ ReactNative
社内LTネタ ReactNative
Oguri Toru
React way at_eight
React way at_eight
Hideharu Okuma
React Nativeってどうなの?
React Nativeってどうなの?
Ryosuke Hara
SwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよ
Syo Ikeda
Realm meet up #17
Realm meet up #17
Daisuke Nagata
ReactNative + Redux + NativeBaseでつくるサンプル実装をのぞく
ReactNative + Redux + NativeBaseでつくるサンプル実装をのぞく
Fumiya Sakai
React introduntion
React introduntion
YutaShimabukuro
React Native 入門
React Native 入門
Seiichi Okumiya
React Nativeで始めるアプリ開発
React Nativeで始めるアプリ開発
Ryosuke Hara
チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版
Ikada Kaori
WebApp個人開発のすゝめ / Recommendation of personal web app development
WebApp個人開発のすゝめ / Recommendation of personal web app development
株式会社MonotaRO Tech Team
React.js・ReactNative・Redux入門
React.js・ReactNative・Redux入門
Kazuhiro Yoshimoto
ObjectMapperでJSONマッピング
ObjectMapperでJSONマッピング
Syo Ikeda
高専カンファレンス in 岐阜 基調講演2 @gabu
高専カンファレンス in 岐阜 基調講演2 @gabu
Shoya Tsukada
Realm,rx swift,repro を使ってみて
Realm,rx swift,repro を使ってみて
Daisuke Nagata
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
Masato Noguchi
Foundation for Appsでザクザク作るモックアップ
Foundation for Appsでザクザク作るモックアップ
Keisuke Imura
iOSでのFramework導入のおさらい #関モバ
iOSでのFramework導入のおさらい #関モバ
Syo Ikeda
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
kazuki matsumura
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
Jsug spring bootコードリーディング 接触篇 a contact
Jsug spring bootコードリーディング 接触篇 a contact
tsukasa tamaru
Dynamic frameworks tips
Dynamic frameworks tips
Syo Ikeda
デザイナさんにGithubでpr投げてもらうまで
デザイナさんにGithubでpr投げてもらうまで
Hideharu Okuma
React Native + Expoでアプリを開発してみた話
React Native + Expoでアプリを開発してみた話
GIG inc.
BootstrapとRailsで、 高速にWebサイトを作ってみた
BootstrapとRailsで、 高速にWebサイトを作ってみた
BeMarble
Embedded framework and so on
Embedded framework and so on
toyship
雑兵デブエンジニアに起こった痛風という悲劇
雑兵デブエンジニアに起こった痛風という悲劇
Shota Inoue
LoRAの見通しって?
LoRAの見通しって?
Yuki Kikuchi
More Related Content
What's hot
React introduntion
React introduntion
YutaShimabukuro
React Native 入門
React Native 入門
Seiichi Okumiya
React Nativeで始めるアプリ開発
React Nativeで始めるアプリ開発
Ryosuke Hara
チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版
Ikada Kaori
WebApp個人開発のすゝめ / Recommendation of personal web app development
WebApp個人開発のすゝめ / Recommendation of personal web app development
株式会社MonotaRO Tech Team
React.js・ReactNative・Redux入門
React.js・ReactNative・Redux入門
Kazuhiro Yoshimoto
ObjectMapperでJSONマッピング
ObjectMapperでJSONマッピング
Syo Ikeda
高専カンファレンス in 岐阜 基調講演2 @gabu
高専カンファレンス in 岐阜 基調講演2 @gabu
Shoya Tsukada
Realm,rx swift,repro を使ってみて
Realm,rx swift,repro を使ってみて
Daisuke Nagata
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
Masato Noguchi
Foundation for Appsでザクザク作るモックアップ
Foundation for Appsでザクザク作るモックアップ
Keisuke Imura
iOSでのFramework導入のおさらい #関モバ
iOSでのFramework導入のおさらい #関モバ
Syo Ikeda
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
kazuki matsumura
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
Jsug spring bootコードリーディング 接触篇 a contact
Jsug spring bootコードリーディング 接触篇 a contact
tsukasa tamaru
Dynamic frameworks tips
Dynamic frameworks tips
Syo Ikeda
デザイナさんにGithubでpr投げてもらうまで
デザイナさんにGithubでpr投げてもらうまで
Hideharu Okuma
React Native + Expoでアプリを開発してみた話
React Native + Expoでアプリを開発してみた話
GIG inc.
BootstrapとRailsで、 高速にWebサイトを作ってみた
BootstrapとRailsで、 高速にWebサイトを作ってみた
BeMarble
Embedded framework and so on
Embedded framework and so on
toyship
What's hot
(20)
React introduntion
React introduntion
React Native 入門
React Native 入門
React Nativeで始めるアプリ開発
React Nativeで始めるアプリ開発
チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版
WebApp個人開発のすゝめ / Recommendation of personal web app development
WebApp個人開発のすゝめ / Recommendation of personal web app development
React.js・ReactNative・Redux入門
React.js・ReactNative・Redux入門
ObjectMapperでJSONマッピング
ObjectMapperでJSONマッピング
高専カンファレンス in 岐阜 基調講演2 @gabu
高専カンファレンス in 岐阜 基調講演2 @gabu
Realm,rx swift,repro を使ってみて
Realm,rx swift,repro を使ってみて
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
Foundation for Appsでザクザク作るモックアップ
Foundation for Appsでザクザク作るモックアップ
iOSでのFramework導入のおさらい #関モバ
iOSでのFramework導入のおさらい #関モバ
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
Jsug spring bootコードリーディング 接触篇 a contact
Jsug spring bootコードリーディング 接触篇 a contact
Dynamic frameworks tips
Dynamic frameworks tips
デザイナさんにGithubでpr投げてもらうまで
デザイナさんにGithubでpr投げてもらうまで
React Native + Expoでアプリを開発してみた話
React Native + Expoでアプリを開発してみた話
BootstrapとRailsで、 高速にWebサイトを作ってみた
BootstrapとRailsで、 高速にWebサイトを作ってみた
Embedded framework and so on
Embedded framework and so on
Viewers also liked
雑兵デブエンジニアに起こった痛風という悲劇
雑兵デブエンジニアに起こった痛風という悲劇
Shota Inoue
LoRAの見通しって?
LoRAの見通しって?
Yuki Kikuchi
テストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったこと
Yuta Ohashi
JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!
JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!
Masaki Yamamoto
Wio Nodeを使った 高校生のIoTプログラミング体験
Wio Nodeを使った 高校生のIoTプログラミング体験
Hiroto Yamakawa
無限ループビルダーズ @ Zohyo Meetup #3
無限ループビルダーズ @ Zohyo Meetup #3
ara_ta3
2016 0914 iotlt勉強会_レーザー加工機のすすめ
2016 0914 iotlt勉強会_レーザー加工機のすすめ
yasuyuki_suzuki
Kobots - Konnected to Everyone
Kobots - Konnected to Everyone
Kenichi Yoshida
IoT Cyber Security Counter Measurement
IoT Cyber Security Counter Measurement
Kiyoshi Ogawa
IoT再入門。はじめてのIoT、何をする?何を選ぶ?
IoT再入門。はじめてのIoT、何をする?何を選ぶ?
Yuki Sakai
Viewers also liked
(10)
雑兵デブエンジニアに起こった痛風という悲劇
雑兵デブエンジニアに起こった痛風という悲劇
LoRAの見通しって?
LoRAの見通しって?
テストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったこと
JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!
JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!
Wio Nodeを使った 高校生のIoTプログラミング体験
Wio Nodeを使った 高校生のIoTプログラミング体験
無限ループビルダーズ @ Zohyo Meetup #3
無限ループビルダーズ @ Zohyo Meetup #3
2016 0914 iotlt勉強会_レーザー加工機のすすめ
2016 0914 iotlt勉強会_レーザー加工機のすすめ
Kobots - Konnected to Everyone
Kobots - Konnected to Everyone
IoT Cyber Security Counter Measurement
IoT Cyber Security Counter Measurement
IoT再入門。はじめてのIoT、何をする?何を選ぶ?
IoT再入門。はじめてのIoT、何をする?何を選ぶ?
Similar to The First React on Rails
Rails×React×TS で作るwebアプリ入門【weseek tech conf #10】
Rails×React×TS で作るwebアプリ入門【weseek tech conf #10】
WESEEKWESEEK
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
Yusuke Murata
``完璧に理解した``WEB の裏側の仕組み.pptx
``完璧に理解した``WEB の裏側の仕組み.pptx
Ryo Higashigawa
Rails 7.1 の新機能が使いたくて調べてみた@【Techouse × Leaner共同開催】Ruby / Rails勉強会
Rails 7.1 の新機能が使いたくて調べてみた@【Techouse × Leaner共同開催】Ruby / Rails勉強会
Sho Ezawa
RailsでReact.jsを動かしてみた話
RailsでReact.jsを動かしてみた話
yoshioka_cb
React componentのコンストラクタを追いかけて
React componentのコンストラクタを追いかけて
Hoso michi
[RubyMotion LT] nitronに見るiosアプリ開発の未来
[RubyMotion LT] nitronに見るiosアプリ開発の未来
Masahiro Nishimi
RESTからGraphQL APIへの移行で学んだこと.pptx
RESTからGraphQL APIへの移行で学んだこと.pptx
Yuya55
react_rails
react_rails
Shigeru Kondoh
Storybook web-and-circleci
Storybook web-and-circleci
Jesse Katsumata
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
Koichi Shimozono
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えて
Hirata Tomoko
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
DIVE INTO CODE Corp.
React Nativeでお絵描きしてみた
React Nativeでお絵描きしてみた
kazuki matsumura
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.
RailsでKnockout.js
RailsでKnockout.js
Makoto Henmi
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
Tokoroten Nakayama
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
Drecom Co., Ltd.
100311 Dev Fest2010
100311 Dev Fest2010
Kensaku Komatsu
React+fluxを導入した話
React+fluxを導入した話
Yuki Ishikawa
Similar to The First React on Rails
(20)
Rails×React×TS で作るwebアプリ入門【weseek tech conf #10】
Rails×React×TS で作るwebアプリ入門【weseek tech conf #10】
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
``完璧に理解した``WEB の裏側の仕組み.pptx
``完璧に理解した``WEB の裏側の仕組み.pptx
Rails 7.1 の新機能が使いたくて調べてみた@【Techouse × Leaner共同開催】Ruby / Rails勉強会
Rails 7.1 の新機能が使いたくて調べてみた@【Techouse × Leaner共同開催】Ruby / Rails勉強会
RailsでReact.jsを動かしてみた話
RailsでReact.jsを動かしてみた話
React componentのコンストラクタを追いかけて
React componentのコンストラクタを追いかけて
[RubyMotion LT] nitronに見るiosアプリ開発の未来
[RubyMotion LT] nitronに見るiosアプリ開発の未来
RESTからGraphQL APIへの移行で学んだこと.pptx
RESTからGraphQL APIへの移行で学んだこと.pptx
react_rails
react_rails
Storybook web-and-circleci
Storybook web-and-circleci
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えて
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
React Nativeでお絵描きしてみた
React Nativeでお絵描きしてみた
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
RailsでKnockout.js
RailsでKnockout.js
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
100311 Dev Fest2010
100311 Dev Fest2010
React+fluxを導入した話
React+fluxを導入した話
The First React on Rails
1.
The First React
on Rails 2016/2/19 @khrtz 1
2.
伊藤晃平 2 職業 Web Engineer 業務内容は主にグロースハックとかフロントエンド UI作ったり、ABテストしたり、Ruby書いたり、RailsのView作ったり Twitter
@khrtz 自己紹介 アイコンと名前はころころ変わる Webサービスを運営している会社に所属 雑兵meetup参加は2回目でLT2回目
3.
今回の内容 3 RailsにReactを導入するまでの記事はたくさんある やってみた記事はたくさん溢れているけど、実際に運用してみた情報 があまりないのでまとめてみた 現在運用しているRailsアプリケーションにReact.jsを導入してみたの で、溜まった知見を少し 実際に運用しているコードを参考に説明していきます React.js JUST THE UI
VirtualDOM DATA FLOW
4.
JS Frameworkを導入した理由 4 スマホのEC購入って使いづらいという意識を変えたい Webページからの脱却 jQueryが複雑。もう再利用できない状態で管理もできていない。泣き ながら書いてる
5.
Reactにした理由 5 ・Viewレイヤーだけ扱う ・サーバーサイドレンダリングに対応(SEOのため、ユーザーを待たせたくない場面 ) ・Adminの管理画面についてAngular2.0(今は時期が悪い)、Ember.jsなど 検討中(今はjQuery) ・書きたいから ・フレームワークのなかでも安定している ・腐ったらすぐ捨てられるし、気楽に入れた ・エンドユーザー向けページにおいて、データを渡せば描画できるReact 一択
6.
6 運用しているRailsアプリケーションにReact.jsを導入するにあたって ・SPA化は諦める ・とりあえずRubyで出力しているHTMLを JavaScriptで書き換えることを考える ・Fluxは使わない ・Railsがある程度わかってないと苦しい ・react-railsを使う ・ReactRouterを無理に導入しようとしない
7.
7 運営しているサービスのデザインをリニューアルするついでにReactにし た 実験のためとりあえずスマホサイトだけ(7割くらいはReactに書き換えた) 問題は特に起こってない。PCでもReact読み込ませているんだけどエ ラーは見られない(polyfillはいれてる) まだES2015の機能しか使ってない in progress ページングもまだ未実装 簡単なstatelessくらいしかしてない ほとんどjQuery書かなくて済んだのは良かった
8.
8 ルートディレクトリに/clientを作り、client/react- client/src/component/*.js のようなコンポーネント群を作っていく client/react-client/src/ClientGlobal.jsをエンドポイントとして、グローバル変数 を管理 import Items
from ‘./comnents/items.js’ import CommentPage from './container/CommentPage' window.Items = Item window.CommentPage = CommentPage React
9.
9 gulp.task('compile-es6', function() { var
files; files = glob.sync('./client/react-client/src/ClientGlobal.js'); return browserify({entries: files, debug: true}) .transform('babelify') .bundle() .pipe(source('bundle.js')) .pipe(gulp.dest('app/assets/javascripts/components')); }); import CommentPage from './container/CommentPage' window.CommentPage = CommentPage ClientGlobal.js gulpfile.js
10.
10 react-client/src/container/CommentPage.js import React from
'react' import Comment from '../components/comment.js' export default class CommentPage extends React.Component { render () { var commentsNodes = this.props.comments.map(( comment, i) => { return(<Comment comment={comment} key={i}></Comment>) }.bind(this)); return ( <div> {commentsNodes} </div> ); } }
11.
11 react-client/src/components/Comment.js import React from
‘react' export default class Comment extends React.Component { render() { return( <section className="comment Project-cheer"> <h1 className="u-d_none">コメント</h1> <article className="Project-cheer__comment Media"> <div className="Project-cheer__comment-img Media__img"> <img className="Project-cheer__comment-img-prop" src={this.props.comment.profile_image} width="20" height="20" alt={this.props.comment.user.name} /> </div> <div className="Project-cheer__comment-main Media__body"> <header className="Project-cheer__comment-header u-clrfix"> <h1 className="Project-cheer__comment-name u-d_ib"><b className="u- em">{this.props.comment.user.name}</b>さん</h1> <time className="Project-cheer__comment-date">{this.props.comment.days}</time> </header> <div className="Project-cheer__comment-body"> <p>{this.props.comment.body}</p> </div> </div> </article> </section> );
12.
<%= react_component(‘CommentPage', render(template: '/projects/comments.json.jbuilder'),
{prerender: false}) %> 12 comments_smart_phone.html.erb json.comments do json.partial! partial: 'comments', collection: @items, as: :item end comments.json.jbuilder
13.
_comment.json.jbuilder 13 json.cache! [item], expires_in:
1.hours do json.days item.reserved_at.strftime('%Y年%m月%d日') if item.user.is_deleted? nil else json.user_link user_path(item.user) end json.profile_image asset_url item.user.my_image_url json.user item.user, :name if item.comment.present? json.body item.comment else json.body "頑張ってください!!" end end partial
14.
_comment.json.jbuilder 14 json.comments do json.partial! partial:
'comments', collection: @orders, as: :order end
15.
15 DHH Say
16.
16
17.
17 Rails 5 feature ActionCable リアルタイム通信を標準で装備 React
× ActionCableを使ったリアルタイムチャットアプリ、Twitter みたいな通知機能などを搭載したサービスが増える Turbolinks3 部分的な更新ができるように やってることは大体React RailsAPI バックエンドとReactを切り離した Rails + React + FluxのSPAアプリが 作りやすく rails-apiが標準搭載
18.
18 React導入してみて 土台を作ってからは、React、ES6書くの楽しい。 statelessなコンポーネントをたくさん作っていきたい でも…
19.
墓場にならないように、ここから抜けだしてやる という強い意思が必要 19 Railsはフロントエンドエンジニアにとっての牢獄
20.
ありがとうございました 20 Enjoy! JavaScript
Download now