- 自ブログを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も上手く効いてない気がする。- おわり。元のサイトの構成がシンプルなのもあってあまり沼らなかった。めでたし。