Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
データフェッチの観点で見る Streaming SSR
Search
masato yamori
March 03, 2026
32
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
データフェッチの観点で見る Streaming SSR
masato yamori
March 03, 2026
Featured
See All Featured
The Curse of the Amulet
leimatthew05
3
16k
Darren the Foodie - Storyboard
khoart
PRO
4
4k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Building Applications with DynamoDB
mza
96
7.2k
Optimizing for Happiness
mojombo
378
71k
Making Projects Easy
brettharned
120
6.8k
Rails Girls Zürich Keynote
gr2m
96
14k
It's Worth the Effort
3n
188
29k
The Invisible Side of Design
smashingmag
301
52k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Utilizing Notion as your number one productivity tool
mfonobong
4
620
Abbi's Birthday
coloredviolet
4
10k
Transcript
データフェッチの観点で見る Streaming SSR Masato Yamori / yamo Frontend Up! #6
@ DeNA TechCon 2024
自己紹介 Masato Yamori / yamo 23新卒でwebフロントエンド書いています! @yamosan @_yamosan
React 18 の Streaming SSR の話をします!
アジェンダ 1. Streaming SSRとは 2. これまでのデータフェッチ 3. Streaming SSR におけるデータフェッチ
1. Streaming SSRとは
Streaming SSR とは サーバーサイドでデータフェッチしつつ、 レスポンスのストリーミングにより... 全てのデータが取得されるのを待つことなく UI を段階的にレンダリングできるようになった 🤔💭
Streaming SSR とは サーバーサイドでデータフェッチしつつ、 レスポンスのストリーミングにより... 全てのデータが取得されるのを待つことなく UI を段階的にレンダリングできるようになった Streaming SSR
以前のデータフェッチと比較して なにが出来るようになったかを見ていきます
2. これまでのデータフェッチ
① SPA 時代の React ※ SPA=サーバーサイドのJSランタイムを必要としないの意 ※
① SPA 時代の React ※ SPA=サーバーサイドのJSランタイムを必要としないの意 ※
クライアントサイドデータフェッチの辛み • SEO対策/OGP対応が困難 • バンドルサイズの増加 • データフェッチまわりの実装の複雑化 ◦ 認証認可が絡む実装等が複雑になりがち ◦
シークレットキー等の取り回しが難しい ◦ 状態管理の肥大化 全てがクライアントサイドで実行されるため... ※ ※ 現在はGoogleなどJSをサポートしたクローラーもあるためSEOに不利であると一概には言えない
② SSR ありの時代の React • SSR を行うフレームワークの登場 ◦ Next.js, Gatsby,
Remix, etc. • SSR では DOM 操作の代わりに HTML 文字列を生成する • SSR に合わせてサーバーサイドでのデータフェッチが可能になった
② SSR ありの時代の React
② SSR ありの時代の React レスポンスが全体的に後ろ倒しになってしまう😵
https://github.com/yamosan/sandbox/tree/main/ts/nodejs/react-ssr-fetch-then-render
https://github.com/yamosan/sandbox/tree/main/ts/nodejs/react-ssr-fetch-then-render データ取得が増えると それにつられてレスポンスが遅くなる
3. Streaming SSR におけるデータフェッチ
Streaming SSR とは(再掲) サーバーサイドでデータフェッチしつつ、 レスポンスのストリーミングにより... 全てのデータが取得されるのを待つことなく UI を段階的にレンダリングできるようになった
③ Streaming SSR
③ Streaming SSR
③ Streaming SSR
Streaming SSR が解決する課題 https://nextjs.org/docs/app/building-your-application/routing/loading-ui-and-streaming#streaming-with-suspense Streaming SSR 以前
Streaming SSR が解決する課題 https://nextjs.org/docs/app/building-your-application/routing/loading-ui-and-streaming#streaming-with-suspense Streaming SSR
Streaming SSR はどう実現されているのか? 最初に送られてくるチャンク
Streaming SSR はどう実現されているのか? ロード完了後に送られるチャンク 🤔
Streaming SSR はどう実現されているのか? ロード完了後に送られるチャンク(省略版) 😮💡
Streaming SSR はどう実現されているのか? 1. fallback を即返却して表示する 2. 各UIパーツごとに並行してデータを取得する 3. 2が完了したUIパーツについて、該当箇所を置き換えるスクリプトをチャン
クとして送信 4. 3のスクリプトが実行されてUIが置き換わる 5. 該当箇所がレンダリング(hydrate)され、インタラクティブになる
4. まとめ
まとめ • Streaming SSR は React18 で追加された機能 • 全てのデータが取得されるのを待つことなく、UI を段階的にレンダリング
することが可能になった • 内部的にはUIを置き換えるスクリプトをチャンクとして送ることで実現し ている
ご清聴ありがとうございました