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
Toshiaki Maki
17,793 views
Java + React.jsでSever Side Rendering #reactjs_meetup
React.js meetup #1の LT資料です
Technology
◦
Read more
38
Save
Share
Embed
Embed presentation
Download
Downloaded 37 times
1
/ 32
2
/ 32
3
/ 32
4
/ 32
5
/ 32
6
/ 32
7
/ 32
8
/ 32
9
/ 32
10
/ 32
11
/ 32
12
/ 32
13
/ 32
14
/ 32
15
/ 32
16
/ 32
17
/ 32
18
/ 32
19
/ 32
20
/ 32
21
/ 32
22
/ 32
23
/ 32
24
/ 32
25
/ 32
26
/ 32
27
/ 32
28
/ 32
29
/ 32
30
/ 32
31
/ 32
32
/ 32
More Related Content
PPTX
マイクロサービスにおける 結果整合性との戦い
by
ota42y
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
PDF
まじめに!できる!LT
by
Akabane Hiroyuki
PDF
君はyarn.lockをコミットしているか?
by
Teppei Sato
PDF
MySQL 8.0で憶えておいてほしいこと
by
yoku0825
PDF
KafkaとAWS Kinesisの比較
by
Yoshiyasu SAEKI
PDF
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
by
MITSUNARI Shigeo
PDF
Springを何となく使ってる人が抑えるべきポイント
by
土岐 孝平
マイクロサービスにおける 結果整合性との戦い
by
ota42y
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
まじめに!できる!LT
by
Akabane Hiroyuki
君はyarn.lockをコミットしているか?
by
Teppei Sato
MySQL 8.0で憶えておいてほしいこと
by
yoku0825
KafkaとAWS Kinesisの比較
by
Yoshiyasu SAEKI
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
by
MITSUNARI Shigeo
Springを何となく使ってる人が抑えるべきポイント
by
土岐 孝平
What's hot
PDF
何となく勉強した気分になれるパーサ入門
by
masayoshi takahashi
PPTX
やってはいけない空振りDelete
by
Yu Yamada
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
PDF
例外設計における大罪
by
Takuto Wada
PDF
"SRv6の現状と展望" ENOG53@上越
by
Kentaro Ebisawa
PDF
MHA for MySQLとDeNAのオープンソースの話
by
Yoshinori Matsunobu
PPTX
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
by
Takuya ASADA
PDF
O/Rマッパーによるトラブルを未然に防ぐ
by
kwatch
PDF
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
by
Toru Makabe
PPTX
ASTERIA WARP運用Tips「RDB連携時のトラブルシューティング 」
by
ASTERIA User Group
PDF
PostgreSQLの関数属性を知ろう
by
kasaharatt
PDF
Where狙いのキー、order by狙いのキー
by
yoku0825
PPT
Glibc malloc internal
by
Motohiro KOSAKI
PDF
PostgreSQLアンチパターン
by
Soudai Sone
PDF
ネットワークでなぜ遅延が生じるのか
by
Jun Kato
PDF
Dockerを支える技術
by
Etsuji Nakai
PPTX
Redisの特徴と活用方法について
by
Yuji Otani
PDF
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
by
Tatsuya Watanabe
PDF
にぎやか 3 人組が選ぶ Microsoft 365 注目アップデート 7 選
by
Hirofumi Ota
PDF
A5 SQL Mk-2の便利な機能をお教えします
by
ester41
何となく勉強した気分になれるパーサ入門
by
masayoshi takahashi
やってはいけない空振りDelete
by
Yu Yamada
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
例外設計における大罪
by
Takuto Wada
"SRv6の現状と展望" ENOG53@上越
by
Kentaro Ebisawa
MHA for MySQLとDeNAのオープンソースの話
by
Yoshinori Matsunobu
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
by
Takuya ASADA
O/Rマッパーによるトラブルを未然に防ぐ
by
kwatch
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
by
Toru Makabe
ASTERIA WARP運用Tips「RDB連携時のトラブルシューティング 」
by
ASTERIA User Group
PostgreSQLの関数属性を知ろう
by
kasaharatt
Where狙いのキー、order by狙いのキー
by
yoku0825
Glibc malloc internal
by
Motohiro KOSAKI
PostgreSQLアンチパターン
by
Soudai Sone
ネットワークでなぜ遅延が生じるのか
by
Jun Kato
Dockerを支える技術
by
Etsuji Nakai
Redisの特徴と活用方法について
by
Yuji Otani
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
by
Tatsuya Watanabe
にぎやか 3 人組が選ぶ Microsoft 365 注目アップデート 7 選
by
Hirofumi Ota
A5 SQL Mk-2の便利な機能をお教えします
by
ester41
Viewers also liked
PDF
Flowtype Introduction
by
Teppei Sato
PDF
React系(別言語含む)の サーバーサイドレンダリング について考えよう
by
Kazuhiro Hara
PPTX
React を導入したフロントエンド開発
by
daisuke-a-matsui
PDF
なぜ人は必死でjQueryを捨てようとしているのか
by
Yoichi Toyota
PDF
Tokyo React.js #3 Meetup (ja): Missing Pages: ReactJS/GraphQL/RelayJS
by
Khor SoonHin
PDF
Tokyo React.js #3: Missing Pages: ReactJS/Flux/GraphQL/RelayJS
by
Khor SoonHin
PPTX
React meetup 3_eight
by
Hideharu Okuma
PDF
まだ DOM 操作で消耗してるの?
by
Yuki Ishikawa
PDF
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
by
Kazuhiro Hara
PDF
Lineにおけるspring frameworkの活用
by
Tokuhiro Matsuno
PDF
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
by
Toshiaki Maki
PPTX
今からでも遅くない! React事始め
by
ynaruta
PDF
Hastening React SSR - Web Performance San Diego
by
Maxime Najim
PDF
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) 〜GETで一覧編〜
by
Toshio Ehara
PDF
WildFly Swarmではじめる「パーツとしてのJavaEE」
by
Hiroaki NAKADA
PDF
Japanese Introduction to Oracle JET
by
Geertjan Wielenga
PPTX
Oracleがnode.jsをやり始めたというのだが!
by
Hiroshi Hayakawa
PDF
Nashorn in the future (English)
by
Logico
PDF
Our wish to Flowtype
by
Teppei Sato
PPTX
20160927 reactmeetup
by
Naoki Kurosawa
Flowtype Introduction
by
Teppei Sato
React系(別言語含む)の サーバーサイドレンダリング について考えよう
by
Kazuhiro Hara
React を導入したフロントエンド開発
by
daisuke-a-matsui
なぜ人は必死でjQueryを捨てようとしているのか
by
Yoichi Toyota
Tokyo React.js #3 Meetup (ja): Missing Pages: ReactJS/GraphQL/RelayJS
by
Khor SoonHin
Tokyo React.js #3: Missing Pages: ReactJS/Flux/GraphQL/RelayJS
by
Khor SoonHin
React meetup 3_eight
by
Hideharu Okuma
まだ DOM 操作で消耗してるの?
by
Yuki Ishikawa
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
by
Kazuhiro Hara
Lineにおけるspring frameworkの活用
by
Tokuhiro Matsuno
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
by
Toshiaki Maki
今からでも遅くない! React事始め
by
ynaruta
Hastening React SSR - Web Performance San Diego
by
Maxime Najim
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) 〜GETで一覧編〜
by
Toshio Ehara
WildFly Swarmではじめる「パーツとしてのJavaEE」
by
Hiroaki NAKADA
Japanese Introduction to Oracle JET
by
Geertjan Wielenga
Oracleがnode.jsをやり始めたというのだが!
by
Hiroshi Hayakawa
Nashorn in the future (English)
by
Logico
Our wish to Flowtype
by
Teppei Sato
20160927 reactmeetup
by
Naoki Kurosawa
More from Toshiaki Maki
PDF
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
by
Toshiaki Maki
PDF
Concourse x Spinnaker #concourse_tokyo
by
Toshiaki Maki
PDF
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
by
Toshiaki Maki
PDF
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
by
Toshiaki Maki
PDF
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
by
Toshiaki Maki
PDF
Spring Boot Actuator 2.0 & Micrometer
by
Toshiaki Maki
PDF
Open Service Broker APIとKubernetes Service Catalog #k8sjp
by
Toshiaki Maki
PDF
Spring Cloud Function & Project riff #jsug
by
Toshiaki Maki
PDF
Introduction to Spring WebFlux #jsug #sf_a1
by
Toshiaki Maki
PDF
BOSH / CF Deployment in modern ways #cf_tokyo
by
Toshiaki Maki
PDF
Why PCF is the best platform for Spring Boot
by
Toshiaki Maki
PDF
Zipkin Components #zipkin_jp
by
Toshiaki Maki
PPTX
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
by
Toshiaki Maki
PDF
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
by
Toshiaki Maki
PDF
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
by
Toshiaki Maki
PDF
Spring ❤️ Kotlin #jjug
by
Toshiaki Maki
PDF
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
by
Toshiaki Maki
PDF
Managing your Docker image continuously with Concourse CI
by
Toshiaki Maki
PDF
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
by
Toshiaki Maki
PDF
Short Lived Tasks in Cloud Foundry #cfdtokyo
by
Toshiaki Maki
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
by
Toshiaki Maki
Concourse x Spinnaker #concourse_tokyo
by
Toshiaki Maki
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
by
Toshiaki Maki
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
by
Toshiaki Maki
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
by
Toshiaki Maki
Spring Boot Actuator 2.0 & Micrometer
by
Toshiaki Maki
Open Service Broker APIとKubernetes Service Catalog #k8sjp
by
Toshiaki Maki
Spring Cloud Function & Project riff #jsug
by
Toshiaki Maki
Introduction to Spring WebFlux #jsug #sf_a1
by
Toshiaki Maki
BOSH / CF Deployment in modern ways #cf_tokyo
by
Toshiaki Maki
Why PCF is the best platform for Spring Boot
by
Toshiaki Maki
Zipkin Components #zipkin_jp
by
Toshiaki Maki
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
by
Toshiaki Maki
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
by
Toshiaki Maki
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
by
Toshiaki Maki
Spring ❤️ Kotlin #jjug
by
Toshiaki Maki
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
by
Toshiaki Maki
Managing your Docker image continuously with Concourse CI
by
Toshiaki Maki
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
by
Toshiaki Maki
Short Lived Tasks in Cloud Foundry #cfdtokyo
by
Toshiaki Maki
Java + React.jsでSever Side Rendering #reactjs_meetup
1.
Java + React.jsで Sever
Side Rendering 2015-04-24 React.js meetup #1 LT Toshiaki Maki (@making)
2.
自己紹介 • @making • Java界隈にいます •
Spring Framework好き
3.
自己紹介 • @making • Java界隈にいます •
Spring Framework好き 「はじめてのSpring Boot」 著者
4.
自己紹介 • @making • Java界隈にいます •
Spring Framework好き 「はじめてのSpring Boot」 著者 Spring IO 2015スピーカー
5.
私とServer Side Rendering •
SPAでブログ作った! http://blog.ik.am
6.
私とServer Side Rendering •
SPAでブログ作った! Backend API (Java) Frontend SPA (Backbone.js) Backend SPA (Backbone.js) REST API REST API http://blog.ik.am https://github.com/making/categolj2-backend
7.
_人人人人人人人_ > ググれない <  ̄Y^Y^Y^Y^Y^Y ̄
8.
_人人人人人人人_ > ググれない <  ̄Y^Y^Y^Y^Y^Y ̄ アフィリエイト収入が 1/4に😭
9.
はてブ
10.
はてブ _人人人人人人人_ > Loading... <  ̄Y^Y^Y^Y^Y^Y ̄
11.
Sever Side Rendering やるしかない!
12.
SSR候補 •Prerender •Rendr (Backbone.js) •React.js
13.
SSR候補 •Prerender •Rendr (Backbone.js) •React.js 採用理由: 流行っているから
14.
React.jsで SSR?
15.
React.jsで SSR? それJavaでもできるよ
16.
JavaScript Engine in
Java • ScriptEngine API (JSR-223) • Java SE 6, 7 … Rhino • Java SE 8 … Nashorn
17.
JavaScript Engine in
Java • ScriptEngine API (JSR-223) • Java SE 6, 7 … Rhino • Java SE 8 … Nashorn JavaとJavaScriptの関係は インドとインドネシア の関係ほど単純じゃない
18.
ScriptEngine ScriptEngineManager engineManager =
new ScriptEngineManager(); ScriptEngine engine = engineManager.getEngineByName("js"); engine .eval("function sum(a,b){return a + b;}"); System.out.println(engine.eval("sum(1,2);")); // 3 http://www.oracle.com/technetwork/articles/java/jf14-nashorn-2126515.html
19.
ScriptEngineを使って Sever Side Rendering V8バインディング いらず!
20.
React.js側のコード window.renderOnClient = function
(initialData) { React.render( <App data={initialData} />, document.getElementById('content') ); }; window.renderOnServer = function (initialData) { //initialData = Java.from(initialData); Listの場合 return React.renderToString( <App data={initialData} /> ); };
21.
React.js側のコード var App =
React.createClass({ render: function () { return ( <div> <h1>React.js</h1> <Greet data={this.props.data} /> </div> ); } }); サーバーサイドで用意さ れたデータが渡される
22.
React.js側のコード var Greet =
React.createClass({ getInitialState: function () { return this.props.data || {id: 0, content: 'Now Loading...'}; }, // … }); getInitialState()でサーバー で用意したデータを返す
23.
サーバーサイド// JSONマッパー ObjectMapper objectMapper
= new ObjectMapper(); // ScriptEngineのラッパー ScriptEngine engine = new JavaScriptEngine() .polyfill() .load("static/bundle.js") .get(); @RequestMapping("/") String index(Model model) throws Exception { Greet initialData = new Greet(100, "Data on Server"); Object markup = ((Invocable) engine) .invokeFunction("renderOnServer", initialData); model.addAttribute("markup", markup); model.addAttribute("initialData", objectMapper.writeValueAsString(initialData)); return "index"; }
24.
HTMLテンプレート (Thymeleaf) <body> <div id="content"
th:utext="${markup}"></div> <script src="bundle.js"></script> <script type="text/javascript" th:inline="javascript"> document.addEventListener("DOMContentLoaded", function () { var initialData = JSON.parse(/*[[${initialData}]]*/ '{"id": -1, "content": "モックデータ"}'); renderOnClient(initialData); }, false); </script> </body> エンジン経由だとコメントの中身が評価される テンプレートを直で開くとコメントの後ろが評価さ れるので、フロントエンドに閉じて開発可能! サーバーで生成した HTMLを埋め込む
25.
componentDidMount (Ajax) SSRできた! JSも評価されてる
26.
ということで フロントをReact.jsで作り直した Backend API (Java) Frontend SPA (React.js) Backend SPA (Backbone.js) REST API REST API https://github.com/making/categolj2-backend/tree/master/frontend-ui-reactjs
27.
ぐぐれ・・・・
28.
ぐぐれとるやん
29.
ん?
30.
ん? ブログのフロントエンドは React.jsで書いてみたけど SSR対応はまだだった!!
31.
ん? ブログのフロントエンドは React.jsで書いてみたけど SSR対応はまだだった!! Google先生が優秀だった
32.
まとめ • NashornがあればJavaでも サーバーサイドレンダリングで きた • Google先生はSPAに対応して いた
今日のソースコード https://github.com/making/ssr-demo
Download