• home
  • ブログ
  • Next.jsとは?Reactとの関係やフレームワークとは何かについても解説!
  • 業務効率化
  • 用語集

22.10.18

  • twitter
  • facebook

Next.jsとは?Reactとの関係やフレームワークとは何かについても解説!

React.jsを調べていく中で、Next.jsというフレームワークを見た人も多いはず。本記事では、Next.jsとは何かを解説し、どのような特徴があるのかについて解説していきます。

Next.jsとはReact.jsのフレームワーク

Next.jsとは、JavaScriptのライブラリであるReact.jsを用いたフロントエンドのアプリケーションフレームワークです。Next.jsはサーバー機能を備えているため、Next.jsを導入することで、他にサーバーを用意することなくWEBページを表示することができます。

またサーバー機能のみではなく、WEBサイト構築に必要な最低限の仕組みも用意されます。そのため、メインとなるWEBページそのものに時間を多く割くことができるため、業務の効率化を図れます。

 

React.jsとは

前述しましたが、React.jsとはJavaScriptのライブラリです。ユーザーインターフェースといったフロントエンドに関する画面の作成に使われます。ライブラリとは特定の機能を持ったプログラムを他のプログラムから呼び出し、別のプログラムでも利用できるように部品化し、一つのファイルに収納したもののことです。React.jsから部品をインポートして使用することで、操作しやすいユーザーインターフェースを実装することが可能です。

こちらの記事でもReact.jsの解説をしております。
Reactとは?JavaScriptとの関係やライブラリ・フレームワークについても解説!

 

フレームワークとは

フレームワークとは「構造・骨組み」を意味し、そのフレームワークを用いることで特定の簡易的な機能の全てを実装できるようなテンプレートのようなプログラムになります。

Next.jsでは、リクエストされたURLに対し、適切なファイルを呼び出すサーバーの仕組みや、W EBアプリ開発のためのさまざまな機能を含んだアプリケーションを簡単に構築することが出来ます。React.jsはライブラリのため、WEBアプリケーションを作成するためにサーバーを必要としますが、Next.jsではサーバーも用意してくれるため、サーバーの有無がReact.jsとの大きな違いであると言えるでしょう。

Next.jsの特徴

Next.jsには、React.jsのファイルをサーバーで表示するだけでなく、様々な特徴があります。どんな機能があるのか、代表的なものを3つ紹介していきます。

 

環境構築が簡単

Next.jsでは、開発するプロジェクトに応じた設定を自動でおこなってくれる機能があります。一般的に、ライブラリやフレームワークを利用する際には、使用するライブラリ、フレームワークに応じた環境を整えるために、関連するパッケージのインストールなどを手動で行う必要があります。しかし、Next.jsでは、最低限の設定を自動で行ってくれるため、環境構築が容易です。

こういった設定を不要にする機能を「ゼロコンフィグ機能」と言います。

 

ハイブリッドなレンダリング

React.jsでは、クライアントサイド(実際にユーザーが操作するWEB画面側)で行われる、CSR(Client Side Rendering)と呼ばれるレンダリングのみに対応しています。そのため、ユーザーのデバイスのスペックによっては快適に描画が行われない可能性がありました。

Next.jsでは、CSRに加え、SSR(Server Side Rendering)と呼ばれるサーバーサイド(WEBアプリケーションを提供している側)でレンダリングを行う方法を設定することもが可能です。こちらはユーザーデバイスのスペックに依存しませんが、リクエストごとにHTMLの作成を行うため、ページによっては待ち時間が多くなってしまう可能性があります。

Next.jsでは、そういった課題を解決するSSG(Static Site Generation)と呼ばれる静的にサイトを生成する機能を利用することも可能です。SSGとは、サービスをビルドする際にHTMLの構築を行い、ユーザーからリクエストされた際に事前に作ったHTMLを表示することでレンダリングにかかる時間を大幅に軽減することが出来る機能のことです。

描画が早い一方、表示するデータが頻繁に更新されるようなアプリケーションには不向きなので、画面の特徴に応じてレンダリング方法を選択するのが良いでしょう。

 

ファイルベースルーティング機能

Next.jsでは、アプリケーションの作成を行うと、「pages」というフォルダが作成されます。このフォルダ内にファイルを配置することで、WEBページとして表示することが可能です。例えばpages内にnews.jsxというファイルを配置すると、「サイトURL/news」とアドレスバーに入力することで、news.jsxに記載した内容をWEBページに表示することが出来ます。

こういった、特定のフォルダに表示したいファイルを置くことで、自動的にURLのパスが生成される機能のことを「ファイルベースルーティング」と言います。

ファイルベースルーティング機能がない場合、各フォルダにindex.htmlというファイルを用意し、そこから表示したいページにアクセスするための処理が必要になります。しかしNext.jsではそういった手間が発生せず、pagesフォルダに表示したいファイルを置くことで、簡単にWEBページを表示させることが可能です。

Next.jsでReact.jsを快適に開発しよう

Next.jsは、React.jsを使用可能な、サーバー機能を提供してくれるフレームワークだと説明してきました。また、環境構築が容易で、特定のディレクトリにファイルを置くことで自動的にWEBページとして表示が可能なため、運用がしやすいです。また、ページごとにレンダリングの仕組みを柔軟に変更できるなど、とても使い勝手がいいフレームワークとなっています。

React.jsで開発を行い、WEBアプリケーションを提供したいと考えているならNext.jsをしようしてみてはいかがでしょうか?