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
を使っていて全くサーバーコンポーネントを使えていないので、これからサーバーコンポーネントを使うように少しずつ移行していきたいと思います。