Next.js App Routerを実際に採用してみてよかったこと・悪かったことを教えてください!

Next.js とするか、React とするか、さらに Next.js とした場合は、Pages Router に対し、App Router はどのようなメリットを享受できるのか。検討項目がいっぱいです。
その中でも、もっともモダンな選定は Next.js App Router であることは確かだと思います。
そんな Next.js App Router を実際にプロジェクトに導入してみて、React や Pages Router を使用したときと比べこんな点でよかった!悪かった!というのを教えていただきたいです。
1年前
view数 598

    回答を投稿して企業にアピールしましょう!

    Q&Aで投稿された回答は、
    企業側に表示されるプロフィールにも投稿履歴として表示されます。

    Offersにログイン・新規登録して、気になるテーマやトピックを話してみよう!

    \回答があります!/

    • 朴賢勝

      エンジニア

      1年前

      これからNext.jsはApp Routerがメインとなってくると思うのでApp Routerを採用していくのが良いでしょう。
      私も実際その感覚でプロダクトに導入し、現在も開発しております。
      今のプロダクトは元々Pages Routerで2年ぐらい開発していて(Next.js 13)一部の機能をApp Routerに移行・移行途中になります。

      その中で感じたメリットはやはりパフォーマンスですね。今関わっているサービスがtoCのため、より良いユーザ体験のためにも細かいパフォーマンスチューニングを行ってますが、App Routerの場合はそのパフォーマンスチューニングがしやすかったです。

      また、直接的なメリットではないですが、App Routerの力を全部引っ張り出すには使ってるライブラリーの見直しも必要で、どのライブラリーを使うかをより真剣に考えるようになりました。
      例えば今までemotionを使ってましたが、emotionを使ってる理由は何で、なぜ使わないといけないのかを考えたり、置き換えるならチームの状況に合うのはなんだろうという議論のきっかけにもなりましたね。
      emotion以外でも知らないうちに使ってるライブラリーや、自分で書いたコードでもServer Componentにした際に動かなくなるケースはたまにあります。その際に無駄な状態を持ってるないかなど、見直すことでよりパフォーマンスも上がるので良かったです。

      一方、デメリットはナレッジの部分でした。Next.jsの14から正式に使えるようになったものの、まだそこまで歴史が長くなく、ナレッジが完全に整ってないと思います。実際に私のチームでも私以外は全く情報がなく、公式のチュートリアルから説明をすると言うことが必要でした。

      use clientとして作る際には今までとあまり変わりませんが、Server Componentを真面目に育てていく際には今までのReactの書き方と若干変わる部分が多いのでServer Componentらしい書き方や、そもそもそれらの知見をチームにインストールすることがApp Routerを導入することに当たって一番の壁でした。
      view数 43
      • 2
    • Taketo Yoshida

      エンジニア

      1年前

      React Server Componentsのデータフェッチはやはり魅力的ですね。Suspense Boundaryストリーミングレンダリングが簡単になっている部分もパフォーマンスクリティカルなアプリケーションを作成する上でとても便利だと思います。しかし、アップデートが頻繁にある影響で追従していくのがとても難しいフレームワークです。バージョンアップすると壊れるので据え置きしたりしましたね。
      view数 19
      • 1