Skip to content

hotsukai/SSR-practice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SSRとSSGを自前実装してみた。

記事

  • /ssrでSSRの結果が、/ssgでSSG結果が帰ってくる。

起動法

  • Devサーバー起動 npm run dev
  • ビルド(サーバーサイド・クライアントサイド) npm run build
  • [WIP] ビルド結果を使って立ち上げ npm run start

起動

npm i
npm run dev

仕組み

SSR

  • 生成したHTMLを<div id="root"></div>配下に置いている。
  • クライアント側のJSでReactDOM.hydrateすることで、生成済みのHTMLにイベントリスナーを設定している。

データ受け渡し

  • root要素にデータ属性で初期ページデータを渡している。
    • これはレスポンスが遅くなることでなんらかが表示されるまでの時間(FCP)の低下につながるので、スケルトンにしてクライアント側でフェッチするほうが一般には良い気もする。
    • next.jsだと<script id="__NEXT_DATA__" type="application/json">にJSONで入れていた。
  • クライアント側でページ遷移するときはページで必要な情報をフェッチしてCSRしている。
  • ページ側でSSRなのかデータをフェッチしてCSRなのかをハンドリングするのはしんどいのでPageWrapper.tsxで抽象化した(したい)

TODO

  • client.jsの分割

参考URL

https://ui.dev/react-router-server-rendering

About

SSR using React and React Router

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published