Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Java + React.jsでSever Side Rendering #reactjs_meetup
Report
Toshiaki Maki
Follow
Apr. 24, 2015
•
0 likes
38 likes
×
Be the first to like this
Show More
•
17,530 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Check these out next
組織の問題も解決するアーキテクチャ BackendsForFrontends
PIXTA Inc.
RESTful API 入門
Keisuke Nishitani
マイクロにしすぎた結果がこれだよ!
mosa siru
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
世界一わかりやすいClean Architecture release-preview
Atsushi Nakamura
テストコードの DRY と DAMP
Yusuke Kagata
backlogsでもCI/CDする夢を見る
Takeru Maehara
1
of
32
Top clipped slide
Java + React.jsでSever Side Rendering #reactjs_meetup
Apr. 24, 2015
•
0 likes
38 likes
×
Be the first to like this
Show More
•
17,530 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
React.js meetup #1の LT資料です
Toshiaki Maki
Follow
Advertisement
Advertisement
Advertisement
Recommended
マイクロサービス 4つの分割アプローチ
増田 亨
40.2K views
•
60 slides
BuildKitの概要と最近の機能
Kohei Tokunaga
3.5K views
•
34 slides
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
naoki koyama
86.1K views
•
50 slides
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
22.3K views
•
40 slides
Apache Avro vs Protocol Buffers
Seiya Mizuno
5K views
•
33 slides
SPAと覚悟
Teppei Sato
67.3K views
•
32 slides
More Related Content
Slideshows for you
(20)
組織の問題も解決するアーキテクチャ BackendsForFrontends
PIXTA Inc.
•
2.7K views
RESTful API 入門
Keisuke Nishitani
•
13.6K views
マイクロにしすぎた結果がこれだよ!
mosa siru
•
131.3K views
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
•
2K views
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
•
9.9K views
世界一わかりやすいClean Architecture release-preview
Atsushi Nakamura
•
2.8K views
テストコードの DRY と DAMP
Yusuke Kagata
•
1.3K views
backlogsでもCI/CDする夢を見る
Takeru Maehara
•
5.3K views
FastAPIのテンプレートプロジェクトがいい感じだった話
NipponAlgorithm
•
824 views
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
•
23.3K views
ドメイン駆動設計 基本を理解する
増田 亨
•
116.9K views
Spring Cloud Gateway on Kubernetes
Takeshi Ogawa
•
1.3K views
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
•
8.2K views
ドメイン駆動設計の正しい歩き方
増田 亨
•
25.1K views
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
•
170.2K views
Redisの特徴と活用方法について
Yuji Otani
•
98.5K views
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
•
25.4K views
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
JustSystems Corporation
•
22.4K views
RESTful Web アプリの設計レビューの話
Takuto Wada
•
71.9K views
SPAのルーティングの話
ushiboy
•
21.6K views
Viewers also liked
(20)
Flowtype Introduction
Teppei Sato
•
17.1K views
React系(別言語含む)の サーバーサイドレンダリング について考えよう
Kazuhiro Hara
•
7.7K views
React を導入したフロントエンド開発
daisuke-a-matsui
•
60.3K views
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
•
80.1K views
Tokyo React.js #3 Meetup (ja): Missing Pages: ReactJS/GraphQL/RelayJS
Khor SoonHin
•
2.7K views
Tokyo React.js #3: Missing Pages: ReactJS/Flux/GraphQL/RelayJS
Khor SoonHin
•
4.4K views
React meetup 3_eight
Hideharu Okuma
•
4.6K views
まだ DOM 操作で消耗してるの?
Yuki Ishikawa
•
68.1K views
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Kazuhiro Hara
•
3.7K views
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
•
33.5K views
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Toshiaki Maki
•
34.8K views
今からでも遅くない! React事始め
ynaruta
•
114.3K views
Hastening React SSR - Web Performance San Diego
Maxime Najim
•
1.1K views
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) 〜GETで一覧編〜
Toshio Ehara
•
2.4K views
WildFly Swarmではじめる「パーツとしてのJavaEE」
Hiroaki NAKADA
•
6.6K views
Japanese Introduction to Oracle JET
Geertjan Wielenga
•
424 views
Oracleがnode.jsをやり始めたというのだが!
Hiroshi Hayakawa
•
2.8K views
Nashorn in the future (English)
Logico
•
5.1K views
Our wish to Flowtype
Teppei Sato
•
20.7K views
20160927 reactmeetup
Naoki Kurosawa
•
4K views
Advertisement
Similar to Java + React.jsでSever Side Rendering #reactjs_meetup
(20)
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Toshiaki Maki
•
4.5K views
Svgアニメーションを実装してみよう 20150207
Kanako Kobayashi
•
5.1K views
Spring.project
広平 田村
•
1.5K views
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
Kohei Saito
•
2.5K views
Javaと小道具
Sho Ito
•
1.3K views
Railsのフロントエンド開発を考える
Hirata Tomoko
•
1.6K views
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Maaya Ishida
•
901 views
2015/11/15 Javaでwebアプリケーション入門
Asami Abe
•
78.7K views
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
Horiguchi Seito
•
7.9K views
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
SmartNews, Inc.
•
1.2K views
とりあえず使えるSBT
Kiyotaka Kunihira
•
2.6K views
Ruby on Railsではじめるrspecテスト
Kanako Kobayashi
•
2.2K views
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
Toshiaki Maki
•
3.7K views
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
Yusuke Suzuki
•
11.6K views
【LT】 怖くない恐怖のScala.js
Yuto Suzuki
•
1.9K views
実戦Scala
Yuto Suzuki
•
3.2K views
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Shuji Watanabe
•
5.3K views
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
kazuki matsumura
•
2.8K views
Practical migration from JSP to Thymeleaf
Toshiki Iga
•
957 views
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
kotaro_hirayama
•
5K views
More from Toshiaki Maki
(20)
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
Toshiaki Maki
•
2.2K views
Concourse x Spinnaker #concourse_tokyo
Toshiaki Maki
•
3.6K views
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Toshiaki Maki
•
5.2K views
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
Toshiaki Maki
•
35.6K views
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Toshiaki Maki
•
11.9K views
Spring Boot Actuator 2.0 & Micrometer
Toshiaki Maki
•
22.8K views
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Toshiaki Maki
•
8.5K views
Spring Cloud Function & Project riff #jsug
Toshiaki Maki
•
4.2K views
Introduction to Spring WebFlux #jsug #sf_a1
Toshiaki Maki
•
18.4K views
BOSH / CF Deployment in modern ways #cf_tokyo
Toshiaki Maki
•
4.9K views
Why PCF is the best platform for Spring Boot
Toshiaki Maki
•
7.1K views
Zipkin Components #zipkin_jp
Toshiaki Maki
•
3.1K views
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
Toshiaki Maki
•
6.4K views
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Toshiaki Maki
•
31K views
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
Toshiaki Maki
•
17.1K views
Spring ❤️ Kotlin #jjug
Toshiaki Maki
•
3.8K views
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Toshiaki Maki
•
18.1K views
Managing your Docker image continuously with Concourse CI
Toshiaki Maki
•
1.7K views
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Toshiaki Maki
•
22.1K views
Short Lived Tasks in Cloud Foundry #cfdtokyo
Toshiaki Maki
•
1.5K views
Advertisement
Recently uploaded
(20)
☀️【卡尔顿大学毕业证成绩单留学生首选】
15sad
•
2 views
【2023年5月】平成生まれのためのUNIX&IT歴史講座
法林浩之
•
16 views
Forguncy8 製品概要 202305.pptx
フォーガンシー
•
6 views
ChatGPT以後の時代をどう生きるか PWA Night vol.51
hedachi
•
55 views
第2回Matlantis User Conference_20230421_畠山歓先生
Matlantis
•
356 views
第2回Matlantis User Conference_20230421_久間薫先生
Matlantis
•
280 views
UAV写真・レーザー測量test.pptx
ssuserb48d2b1
•
13 views
①【阳光海岸大学毕业证文凭学位证书|工艺完美复刻】
vgh215w
•
2 views
本科/硕士《加拿大温莎大学毕业证成绩单》
1523dsa
•
2 views
TestSIP (1).pdf
DeependraSingh712859
•
0 views
統計学の攻略_統計的仮説検定の9パターン.pdf
akipii Oga
•
0 views
PCベース制御による集中制御.pdf
ssusercd9928
•
19 views
Apache EventMesh を使ってみた
Yoshiyasu SAEKI
•
39 views
JSTQB_テストプロセスの概念モデル.pdf
akipii Oga
•
0 views
☀️【麦吉尔大学毕业证成绩单留学生首选】
15sad
•
3 views
☀️【中央兰开夏大学毕业证成绩单留学生首选】
25mjhd12
•
4 views
SoftwareControl.pdf
ssusercd9928
•
6 views
Omnis
DaisukeFujita10
•
10 views
論文紹介:Temporal Action Segmentation: An Analysis of Modern Techniques
Toru Tamaki
•
53 views
【DL輪読会】Flow Matching for Generative Modeling
Deep Learning JP
•
643 views
Java + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsで Sever
Side Rendering 2015-04-24 React.js meetup #1 LT Toshiaki Maki (@making)
自己紹介 • @making • Java界隈にいます •
Spring Framework好き
自己紹介 • @making • Java界隈にいます •
Spring Framework好き 「はじめてのSpring Boot」 著者
自己紹介 • @making • Java界隈にいます •
Spring Framework好き 「はじめてのSpring Boot」 著者 Spring IO 2015スピーカー
私とServer Side Rendering •
SPAでブログ作った! http://blog.ik.am
私と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
_人人人人人人人_ > ググれない <  ̄Y^Y^Y^Y^Y^Y ̄
_人人人人人人人_ > ググれない <  ̄Y^Y^Y^Y^Y^Y ̄ アフィリエイト収入が 1/4に😭
はてブ
はてブ _人人人人人人人_ > Loading... <  ̄Y^Y^Y^Y^Y^Y ̄
Sever Side Rendering やるしかない!
SSR候補 •Prerender •Rendr (Backbone.js) •React.js
SSR候補 •Prerender •Rendr (Backbone.js) •React.js 採用理由: 流行っているから
React.jsで SSR?
React.jsで SSR? それJavaでもできるよ
JavaScript Engine in
Java • ScriptEngine API (JSR-223) • Java SE 6, 7 … Rhino • Java SE 8 … Nashorn
JavaScript Engine in
Java • ScriptEngine API (JSR-223) • Java SE 6, 7 … Rhino • Java SE 8 … Nashorn JavaとJavaScriptの関係は インドとインドネシア の関係ほど単純じゃない
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
ScriptEngineを使って Sever Side Rendering V8バインディング いらず!
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} /> ); };
React.js側のコード var App =
React.createClass({ render: function () { return ( <div> <h1>React.js</h1> <Greet data={this.props.data} /> </div> ); } }); サーバーサイドで用意さ れたデータが渡される
React.js側のコード var Greet =
React.createClass({ getInitialState: function () { return this.props.data || {id: 0, content: 'Now Loading...'}; }, // … }); getInitialState()でサーバー で用意したデータを返す
サーバーサイド// 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"; }
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を埋め込む
componentDidMount (Ajax) SSRできた! JSも評価されてる
ということで フロントを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
ぐぐれ・・・・
ぐぐれとるやん
ん?
ん? ブログのフロントエンドは React.jsで書いてみたけど SSR対応はまだだった!!
ん? ブログのフロントエンドは React.jsで書いてみたけど SSR対応はまだだった!! Google先生が優秀だった
まとめ • NashornがあればJavaでも サーバーサイドレンダリングで きた • Google先生はSPAに対応して いた
今日のソースコード https://github.com/making/ssr-demo
Advertisement