2024-11-13
今日はしばらく後回しにしていたこのブログのPages RouterからApp Routerに移行したときの手順をまとめていこうと思います。
appディレクトリを作成するapp/layout.tsxがApp RouterのRoot Layoutになります。
root layoutはpages/_app.tsx, pages/_document.tsxを置き換えるものだそうです。
このとき、自分はChakra UIを使っていたので、ChakraProviderを使うためにapp/providers.tsxにもファイルを作成しました。(https://v2.chakra-ui.com/getting-started/nextjs-app-guide )
Chakra UIはを使っている限りサーバーコンポーネントを使うことができないので、UIライブラリを将来的に変更する必要がありそうです...
next/headの移行今はまだmetadataを設定していないので、やりませんでした
ここからが本題になります。 スムーズな移行をするために、次の2つのステップで移行するのが良いそうです
featuresディレクトリに移動appディレクトリのpage.tsxファイルに設置getStaticPathsをgenerateStaticParamsに移行getStaticPropsを使用せず、pageコンポーネントの中で取得するように変更これらのステップを踏んでappディレクトリに移行することができました。
今回はページがすごく少なかったのですぐに移行することができましたが、ページが多いと単純ではありますが時間が掛かりそうだなと主ました。
ただ、今はすべてuse clientを使っていて全くサーバーコンポーネントを使えていないので、これからサーバーコンポーネントを使うように少しずつ移行していきたいと思います。