ページ単位で CSR を行うも、全ての実装が共通チャンクに含まれる
(※ React.lazy による Dynamic import で分割し、最適化する方法もあります)
従来 SPA のパフォーマンス課題
【2】パフォーマンスへの影響
Request Response
Web
Server
per page chunk
per page chunk
per page fetch
HTML
Commons chunk
fetch
Page
render
(CSR)
Slide 12
Slide 12 text
いずれかのページ実装増加が、全ページのパフォーマンスに影響する
(※ React.lazy による Dynamic import で分割し、最適化する方法もあります)
従来 SPA のパフォーマンス課題
【2】パフォーマンスへの影響
Request Response
Web
Server
per page chunk
per page chunk
per page fetch
HTML
Commons chunk
fetch
Page
render
(CSR)
Slide 13
Slide 13 text
ページ単位で チャンクが分割されている
Pages Router のページ毎のチャンク
【2】パフォーマンスへの影響
fetch render
(CSR)
Request Response
Next.js HTML DOM
Request Response
Next.js HTML DOM
Request Response
Next.js HTML DOM
page chunk
page chunk
page chunk
Slide 14
Slide 14 text
いずれかのページチャンク増加は、該当ページに「のみ」パフォーマンス影響がある
Pages Router のページ毎のチャンク
【2】パフォーマンスへの影響
fetch render
(CSR)
Request Response
Next.js HTML DOM
Request Response
Next.js HTML DOM
Request Response
Next.js HTML DOM
page chunk
page chunk
page chunk
ただし、1ページ内のコンテンツ増加に対して、チャンク増加は不可避だった
Pages Router のページ毎のチャンク
【2】パフォーマンスへの影響
fetch render
(CSR)
Request Response
Next.js HTML DOM
Request Response
Next.js HTML DOM
Request Response
Next.js HTML DOM
page chunk
page chunk
page chunk
Slide 17
Slide 17 text
ただし、1ページ内のコンテンツ増加に対して、チャンク増加は不可避だった
Pages Router のページ毎のチャンク
【2】パフォーマンスへの影響
fetch render
(CSR)
Request Response
Next.js HTML DOM
Request Response
Next.js HTML DOM
Request Response
Next.js HTML DOM
page chunk
page chunk
page chunk
Slide 18
Slide 18 text
App Router(RSC) は、このチャンク増加をなるべく避ける仕組みを提供します
Pages Router のページ毎のチャンク
【2】パフォーマンスへの影響
fetch render
(CSR)
Request Response
Next.js HTML DOM
Request Response
Next.js HTML DOM
Request Response
Next.js HTML DOM
page chunk
page chunk
page chunk
Slide 19
Slide 19 text
ビルド時、ページのコンテンツは空
Pages Router の SSR
【2】パフォーマンスへの影響
ready
Server
Slide 20
Slide 20 text
リクエスト時、ページのデータを取得
Pages Router の SSR
fetch
Request
Server
【2】パフォーマンスへの影響