- 自ブログをPages RouterからApp Routerに変更してみました
- 参考記事はこのへん
- 対象リポジトリはこれ
- サイトはこれ
やったこと
- Next.jsを13.1 -> 13.4にアプデ
- Next.js を Pages Router から App Router に移行するときにやったこと を参考に
_app.ts
とLayout
をlayout.tsx
とcomponents/layouts/defaultLayout.tsx
に分割- 本当は
layout.tsx
にまとめた方が良いと思うのだが、header/footerが上手く動かなかったのでとりあえずheader/footerはdefaultLayout.tsx
に残した
- 本当は
src
のsrc/api
以外をapp
ディレクトリに移動- storybookは
src
配下だけ認識するようになってたので、app
配下を認識するように変更
悩みポイント:RSS feedどうするか
- 今までRSSフィードをPageがnullな
getServerSideProps
でやっていた(参考:Next.jsで動的にRSSフィードを生成する)- App Routerは
getServerSideProps
がなくなってしまい、PageでGETする必要がでてきてしまったので、Pageがnullなものを作るのが難しい
- App Routerは
- ブログサイトを Next.js App Router に移行したので学びを書く | stin's blogの、Githubをチラ見して、同じように実装した
おわり
- 主な書き換え点は
getStaticProps
,getServerSideProps
,Head
タグくらいなので、興味ある人は移行してみてもいいかも、くらいの移行難度。- 前にブログからmicroCMSへの移行を試す記事でも1度試したがGETがPageコンポーネントに近くなったのはしっくり感が高くて好き
- favicon等も『置くだけ』で設定できるのはlessで良い
- 上書きも容易なのが体験として本当良い
layout.tsx
が上手く動かなかったのは追加調査したい、layout.tsxに設定したデフォルトOGPも上手く効いてない気がする。- おわり。元のサイトの構成がシンプルなのもあってあまり沼らなかった。めでたし。