web-dev-qa-db-ja.com

react-routerとNext.jsの違いは何ですか

私は現在ReactJSを調査しています NextJS および React Router を見ました

誰もが2つの間の賛否を教えてくれますか? 2つを比較するのが正しいかどうかはわかりませんが、私の見たところ、react-routerにはすでにSSR機能があります。では、NextJSを使用する利点は何でしょうか?

ありがとう!

8
MisterCat

Next.js(GatsbyJSやAfter.jsなどの代替手段も参照)はフル機能のSSR /静的サイトフレームワークであるため、SSR静的サイトを生成する必要がある場合は、多くの機能をそのまま使用できます。これらのフレームワークは多くの問題を解決しているため、機能を追加することは、自分で調査してコーディングするのではなく、ドキュメントを読むのと同じくらい簡単になります。

標準のReactアプリとreact-routerを使用して独自の設定をコーディングすると、SSRを掘り下げるときに、多くの複雑さとエッジのケースに直面する可能性があります。

つまり、SSRがコア要件である場合、SSR Reactフレームワークの使用を検討してください。

10
Jed Richards

Jedの応答はそれをかなり要約していますが、いくつかの説明があります:

  • React routerはSSRを許可しますが、実装はしません。少なくとも アプリを文字列にレンダリングし、それをクライアントに提供する のサーバースクリプトを作成する必要があります。静的ファイルを提供するなど、他のことを行う必要がある場合があります。 NextJSが代わりに行います。

  • SSRには、NextJSがカバーするいくつかの警告があり、主に初期非同期関数(APIからのフェッチなど)があります。カスタムメイドのシステムでは、通常はルートに基づいて、呼び出す関数を決定し、コンポーネントにデータを渡す必要があります 通常はReduxを使用

私は現在両方のシステムでWebに取り組んでおり、両方にいくつかの長所と短所があります.NextJSにはルートを宣言する特定の方法とそれらを通過する非常に異なる方法がありますが、NextJSがカバーするすべてを扱うカスタムシステムを作成することはかなりの仕事。本当に必要な場合を除いて、すべてを自分で作成することはお勧めしません。非同期ロードが問題にならない場合は、Gatsbyなどの代替手段を確認してください。

7
Diego Nosi