Next.js vs React:Nextが加えるものと必要になる場面

Next.js vs React

Next.js vs React:ライブラリとフレームワーク、Viteで十分な場合 | We.Inc

ReactはUIライブラリで、Next.jsはその上に作られたフレームワークです。プロジェクトに必要な機能にチェックを入れると、Next.jsとVite構成の素のReactのどちらが合うかが、両方のコード付きでわかります。

Reactは、コンポーネントからユーザーインターフェースを構築するためのライブラリです。Next.jsはReactを使うフレームワークで、ファイルベースのルーティング、サーバーレンダリング、サーバーコンポーネント、APIエンドポイント、ビルドツールを追加します。どちらでも書くのはReactです。ページにサーバーレンダリングされたHTML、シークレット、バックエンドのルートが必要ならNext.jsを選びましょう。ログインの後ろにあるアプリにはViteを使った素のReactが向いています。

最初から使えるもの

プロジェクトに必要な機能にチェックを入れてください。それぞれの機能がNext.jsに組み込まれているか、ViteのReactアプリで簡単に実現できるかが表示され、集計結果から最初のおすすめがわかります。下のコードは、同じ小さなページを両方の方法で書いたものです。

よくある質問

Next.jsはReactより優れていますか?

Next.jsはReactを実行するので、通常の意味での二者択一ではありません。本当の問いは、フレームワークのルーティング、サーバーレンダリング、規約が欲しいのか、それとも各部品を自分で選ぶ軽い構成が良いのか、です。

ReactチームはまだCreate React Appを推奨していますか?

現在のreact.devのガイドは、Next.jsやReact Routerなどのフレームワークから始めることを推奨し、独自の構成をゼロから作る場合の選択肢としてVite、Parcel、Rsbuildを挙げています。Create React Appは記載されていません。

Next.jsでViteのような静的サイトを作れますか?

はい。next.config.jsでoutput: 'export'を設定すると、next buildがHTML、CSS、JavaScriptをoutフォルダーに書き出します。cookie、rewrite、redirect、サーバーアクションなど、稼働中のサーバーが必要な機能はこのモードでは使えません。

Next.jsの前にReactを学ぶべきですか?

まずReactの基本を学びましょう:コンポーネント、props、状態、エフェクト。Next.jsはその上にルーティングとサーバーの概念を追加します。どの問題がどの層に属するかを見分けられると、デバッグがずっと楽になります。

ViteのReactアプリはSEOに不利ですか?

必ずしもそうではありませんが、デフォルトではJavaScriptが実行されるまでHTMLにページの内容がありません。検索上位を狙うマーケティングページはサーバーレンダリングやプリレンダリングのほうが簡単です。ログインの後ろにあるダッシュボードには不要です。

ライブラリとフレームワークの違い

コードで何が変わるか

Viteを使った素のReactで十分な場合

同じページを両方の方法で

Next.js:サーバーでデータを読み込むルート

ファイルパスがURLになります。ページはHTML送信前にデータをawaitし、クライアントJavaScriptとして送られるのはボタンだけです。

React + Vite:同じリストをブラウザーで読み込む

ルーティングはReact Routerが担い、リストはブラウザーが取得した後に表示されます。

どちらかのプロジェクトを始める

どちらのコマンドも、TypeScriptを使うかどうかなど、いくつか質問をします。

検索で上位表示が必要な公開ページ

サーバーまたはビルド時のHTMLにより、最初のレスポンスにコンテンツが含まれます。

描画時に使うデータベースクエリやAPIキー

サーバーコンポーネントなら、認証情報がブラウザーのバンドルに含まれません。

同じプロジェクト内のバックエンドエンドポイント

route.tsファイルがAPIエンドポイントになります。

共通レイアウトを持つ多数のコンテンツページ

フォルダールーティングとネストしたレイアウトが組み込まれています。

すべてがログインの後ろにある

クローラーが見ることはないので、ブラウザーでの描画で問題ありません。

ホスティングは静的ファイルのみ

vite buildは静的アセットを出力します。Next.jsも可能ですが、サーバー機能が使えなくなります。

他サイトに埋め込むウィジェットやツール

1つのバンドルと1つのルート要素のほうが簡単に組み込めます。

React自体を学ぶ

一度に覚える概念が少なく、サーバーとクライアントの区別を考える必要がありません。

どちらがプロジェクトに合う?

プロジェクトの要件

React + Vite

Next.js:{n}。React + Vite:{v}。

おすすめを表示するには、要件を1つ以上チェックしてください。

Next.js寄りです。要件がサーバーレンダリングやサーバーコードに依存しています。

Viteを使った素のReactで対応できます。公開ページが必要になったら、後からフレームワークを追加できます。

僅差です。検索上位を狙う公開ページが1つでもあればNext.js、そうでなければViteから始めましょう。

無料で始める · クレジットカード不要

関連: ガイド|Webマーケティングと集客を学ぶ

製品

ご利用いただける方

機能

リソース

会社情報

サイトマップを見る