開発日誌

開発した時に躓いたこととかの記録

自ブログを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に残した
  • srcsrc/api以外をappディレクトリに移動
    • src/pages/articles/[slug].tsxなどをapp/articles/[slug]/page.tsxのように変更
    • metadataは下記を参考に設定
    • getStaticPropsgetServerSidePropsは中身を取り出してPageコンポーネント内で呼び出すように変更
    • getStaticPathsgenerateStaticParamsにしてpathsだけ渡すように変更
    • src/apiはそのまま(OGP生成APIのみ)
  • storybookはsrc配下だけ認識するようになってたので、app配下を認識するように変更

悩みポイント:RSS feedどうするか

おわり

  • 主な書き換え点はgetStaticProps, getServerSideProps, Headタグくらいなので、興味ある人は移行してみてもいいかも、くらいの移行難度。
    • 前にブログからmicroCMSへの移行を試す記事でも1度試したがGETがPageコンポーネントに近くなったのはしっくり感が高くて好き
  • favicon等も『置くだけ』で設定できるのはlessで良い
    • 上書きも容易なのが体験として本当良い
  • layout.tsxが上手く動かなかったのは追加調査したい、layout.tsxに設定したデフォルトOGPも上手く効いてない気がする。
  • おわり。元のサイトの構成がシンプルなのもあってあまり沼らなかった。めでたし。