Submit Search
Java + React.jsでSever Side Rendering #reactjs_meetup
38 likes
17,783 views
Toshiaki Maki
React.js meetup #1の LT資料です
Technology
Read more
1 of 32
Download now
Downloaded 37 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
More Related Content
PDF
Androidの新ビルドシステム
l_b__
PDF
"Simple Made Easy" Made Easy
Kent Ohashi
PDF
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Yuji Kubota
PDF
FridaによるAndroidアプリの動的解析とフッキングの基礎
ken_kitahara
PPTX
async/await のしくみ
信之 岩永
PDF
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
PPTX
Java 17直前!オレ流OpenJDK「の」開発環境(Open Source Conference 2021 Online/Kyoto 発表資料)
NTT DATA Technology & Innovation
PPTX
Stack pivot
sounakano
Androidの新ビルドシステム
l_b__
"Simple Made Easy" Made Easy
Kent Ohashi
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Yuji Kubota
FridaによるAndroidアプリの動的解析とフッキングの基礎
ken_kitahara
async/await のしくみ
信之 岩永
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
Java 17直前!オレ流OpenJDK「の」開発環境(Open Source Conference 2021 Online/Kyoto 発表資料)
NTT DATA Technology & Innovation
Stack pivot
sounakano
What's hot
(20)
PPTX
良いコードとは
Nobuyuki Matsui
PDF
ゲーム開発者のための C++11/C++14
Ryo Suzuki
PPTX
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
PDF
Web エンジニアが postgre sql を選ぶ 3 つの理由
Soudai Sone
PDF
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
PPTX
[CEDEC2017] LINEゲームのセキュリティ診断手法
LINE Corporation
PDF
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
Shigeru Hanada
PDF
Docker国内外本番環境サービス事例のご紹介
ThinkIT_impress
PDF
できる!並列・並行プログラミング
Preferred Networks
PDF
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
PDF
大規模Redisサーバ縮小化の戦い
Yuto Komai
PDF
パターンでわかる! .NET Coreの非同期処理
Kouji Matsui
PDF
イミュータブルデータモデルの極意
Yoshitaka Kawashima
PDF
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
PDF
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
PPTX
C#メタプログラミング概略 in 2021
Atsushi Nakamura
PDF
Json型の使い方
tsudaa
PDF
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
PPTX
Docker Tokyo
cyberblack28 Ichikawa
PDF
Unified JVM Logging
Yuji Kubota
良いコードとは
Nobuyuki Matsui
ゲーム開発者のための C++11/C++14
Ryo Suzuki
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
Web エンジニアが postgre sql を選ぶ 3 つの理由
Soudai Sone
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
[CEDEC2017] LINEゲームのセキュリティ診断手法
LINE Corporation
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
Shigeru Hanada
Docker国内外本番環境サービス事例のご紹介
ThinkIT_impress
できる!並列・並行プログラミング
Preferred Networks
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
大規模Redisサーバ縮小化の戦い
Yuto Komai
パターンでわかる! .NET Coreの非同期処理
Kouji Matsui
イミュータブルデータモデルの極意
Yoshitaka Kawashima
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
C#メタプログラミング概略 in 2021
Atsushi Nakamura
Json型の使い方
tsudaa
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
Docker Tokyo
cyberblack28 Ichikawa
Unified JVM Logging
Yuji Kubota
Ad
Viewers also liked
(20)
PDF
Flowtype Introduction
Teppei Sato
PDF
React系(別言語含む)の サーバーサイドレンダリング について考えよう
Kazuhiro Hara
PPTX
React を導入したフロントエンド開発
daisuke-a-matsui
PDF
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
PDF
Tokyo React.js #3 Meetup (ja): Missing Pages: ReactJS/GraphQL/RelayJS
Khor SoonHin
PDF
Tokyo React.js #3: Missing Pages: ReactJS/Flux/GraphQL/RelayJS
Khor SoonHin
PPTX
React meetup 3_eight
Hideharu Okuma
PDF
まだ DOM 操作で消耗してるの?
Yuki Ishikawa
PDF
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Kazuhiro Hara
PDF
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
PDF
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Toshiaki Maki
PPTX
今からでも遅くない! React事始め
ynaruta
PDF
Hastening React SSR - Web Performance San Diego
Maxime Najim
PDF
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) 〜GETで一覧編〜
Toshio Ehara
PDF
WildFly Swarmではじめる「パーツとしてのJavaEE」
Hiroaki NAKADA
PDF
Japanese Introduction to Oracle JET
Geertjan Wielenga
PPTX
Oracleがnode.jsをやり始めたというのだが!
Hiroshi Hayakawa
PDF
Nashorn in the future (English)
Logico
PDF
Our wish to Flowtype
Teppei Sato
PPTX
20160927 reactmeetup
Naoki Kurosawa
Flowtype Introduction
Teppei Sato
React系(別言語含む)の サーバーサイドレンダリング について考えよう
Kazuhiro Hara
React を導入したフロントエンド開発
daisuke-a-matsui
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
Tokyo React.js #3 Meetup (ja): Missing Pages: ReactJS/GraphQL/RelayJS
Khor SoonHin
Tokyo React.js #3: Missing Pages: ReactJS/Flux/GraphQL/RelayJS
Khor SoonHin
React meetup 3_eight
Hideharu Okuma
まだ DOM 操作で消耗してるの?
Yuki Ishikawa
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Kazuhiro Hara
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Toshiaki Maki
今からでも遅くない! React事始め
ynaruta
Hastening React SSR - Web Performance San Diego
Maxime Najim
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) 〜GETで一覧編〜
Toshio Ehara
WildFly Swarmではじめる「パーツとしてのJavaEE」
Hiroaki NAKADA
Japanese Introduction to Oracle JET
Geertjan Wielenga
Oracleがnode.jsをやり始めたというのだが!
Hiroshi Hayakawa
Nashorn in the future (English)
Logico
Our wish to Flowtype
Teppei Sato
20160927 reactmeetup
Naoki Kurosawa
Ad
Similar to Java + React.jsでSever Side Rendering #reactjs_meetup
(20)
PDF
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Toshiaki Maki
PDF
Svgアニメーションを実装してみよう 20150207
Kanako Kobayashi
PDF
Spring.project
広平 田村
PPTX
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
Kohei Saito
PDF
Javaと小道具
Sho Ito
PPTX
Railsのフロントエンド開発を考える
Hirata Tomoko
PDF
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Maaya Ishida
PDF
2015/11/15 Javaでwebアプリケーション入門
Asami Abe
PDF
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
Horiguchi Seito
PDF
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
SmartNews, Inc.
PDF
とりあえず使えるSBT
Kiyotaka Kunihira
PDF
Ruby on Railsではじめるrspecテスト
Kanako Kobayashi
PDF
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
Toshiaki Maki
PDF
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
Yusuke Suzuki
PDF
【LT】 怖くない恐怖のScala.js
Yuto Suzuki
PDF
実戦Scala
Yuto Suzuki
PDF
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Shuji Watanabe
PPTX
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
kazuki matsumura
PDF
Practical migration from JSP to Thymeleaf
Toshiki Iga
PDF
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
kotaro_hirayama
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Toshiaki Maki
Svgアニメーションを実装してみよう 20150207
Kanako Kobayashi
Spring.project
広平 田村
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
Kohei Saito
Javaと小道具
Sho Ito
Railsのフロントエンド開発を考える
Hirata Tomoko
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Maaya Ishida
2015/11/15 Javaでwebアプリケーション入門
Asami Abe
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
Horiguchi Seito
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
SmartNews, Inc.
とりあえず使えるSBT
Kiyotaka Kunihira
Ruby on Railsではじめるrspecテスト
Kanako Kobayashi
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
Toshiaki Maki
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
Yusuke Suzuki
【LT】 怖くない恐怖のScala.js
Yuto Suzuki
実戦Scala
Yuto Suzuki
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Shuji Watanabe
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
kazuki matsumura
Practical migration from JSP to Thymeleaf
Toshiki Iga
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
kotaro_hirayama
More from Toshiaki Maki
(20)
PDF
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
Toshiaki Maki
PDF
Concourse x Spinnaker #concourse_tokyo
Toshiaki Maki
PDF
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Toshiaki Maki
PDF
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
Toshiaki Maki
PDF
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Toshiaki Maki
PDF
Spring Boot Actuator 2.0 & Micrometer
Toshiaki Maki
PDF
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Toshiaki Maki
PDF
Spring Cloud Function & Project riff #jsug
Toshiaki Maki
PDF
Introduction to Spring WebFlux #jsug #sf_a1
Toshiaki Maki
PDF
BOSH / CF Deployment in modern ways #cf_tokyo
Toshiaki Maki
PDF
Why PCF is the best platform for Spring Boot
Toshiaki Maki
PDF
Zipkin Components #zipkin_jp
Toshiaki Maki
PPTX
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
Toshiaki Maki
PDF
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Toshiaki Maki
PDF
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
Toshiaki Maki
PDF
Spring ❤️ Kotlin #jjug
Toshiaki Maki
PDF
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Toshiaki Maki
PDF
Managing your Docker image continuously with Concourse CI
Toshiaki Maki
PDF
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Toshiaki Maki
PDF
Short Lived Tasks in Cloud Foundry #cfdtokyo
Toshiaki Maki
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
Toshiaki Maki
Concourse x Spinnaker #concourse_tokyo
Toshiaki Maki
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Toshiaki Maki
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
Toshiaki Maki
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Toshiaki Maki
Spring Boot Actuator 2.0 & Micrometer
Toshiaki Maki
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Toshiaki Maki
Spring Cloud Function & Project riff #jsug
Toshiaki Maki
Introduction to Spring WebFlux #jsug #sf_a1
Toshiaki Maki
BOSH / CF Deployment in modern ways #cf_tokyo
Toshiaki Maki
Why PCF is the best platform for Spring Boot
Toshiaki Maki
Zipkin Components #zipkin_jp
Toshiaki Maki
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
Toshiaki Maki
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Toshiaki Maki
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
Toshiaki Maki
Spring ❤️ Kotlin #jjug
Toshiaki Maki
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Toshiaki Maki
Managing your Docker image continuously with Concourse CI
Toshiaki Maki
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Toshiaki Maki
Short Lived Tasks in Cloud Foundry #cfdtokyo
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