React

JavaScriptフレームワーク

高機能で大規模なフロントエンド開発では、JavaScriptフレームワークでの開発は必須です。その代表格として「React」「Vue.js」「Angular」があります。

Reactとは

「React」はFacebookが開発したJSフレームワークです。

React公式サイト(日本)

Reactの特徴

  • コンポーネントベースの開発
  • 仮想DOM
  • リアクティブ
  • JSXなどの機能拡張

コンポーネントベースの開発

Reactはコンポーネントベースの開発が必須で、UIをコンポーネント(小さな部品)に分割しながらプログラミングします。

コンポーネントを組み合わせで再利用可能かつ、保守性が向上し、大規模なアプリを構築できます。

仮想DOM

ReactVirtual DOM(仮想DOM)という概念を使用し、変更された部分だけを実際のDOMに反映することで、パフォーマンスが格段に向上します。サーバーサイドプログラム(PHP、Ruby、Java、Pythonなど)では、サーバーでDOMをレンダリングするためサーバー負荷が発生する傾向があります。

リアクティブ(Reactive)

大規模アプリケーションになるとリアルタイム性を要求されるようになります。サーバサイドとフロントエンドでデータを高速に処理する必要があります。リアクティブはデータの更新があるとすぐに反応してリアルタイムで反映される仕組みです。

JSX

JSXReact で使用されるJavaScriptの拡張構文で、JavaScriptの中にXMLやHTMLのようなマークアップを記述できます。拡張子は .jsx です。

TypeScriptサポート

React では大規模開発の効率化で使用される TypeScript もサポートしています。 拡張子は通常ファイルが .ts 、JSXでは .tsx になります。

ホットリローディング

Hot Reloading(ホットリローディング)は、コードを保存したときにリアルタイムで反映させる仕組みです。アプリケーションを再起動せずに、ファイルを保存するたびにリアルタイム更新できます。

Next.js

Next.jsとは

Next.jsReact を拡張したフレームワークで、サーバーサイドレンダリング、静的サイト生成、ルーティング、APIルーティングなど多くの機能を搭載しています。

主な特徴

SSRとSSG

Next.js は、サーバーでコンテンツを動的に生成する SSR(サーバーサイドレンダリング) や、静的サイト生成する SSG(スタティックサイトジェネレーション) に対応しています。SSRSSGを利用することで、サイトのページを事前にレンダリングして、高速なページ読み込みを実現します。

ダイナミックルーティング

Next.js では、指定のベースフォルダにページファイルを配置することで、URLとページの自動ルーティングできます。ページ間の移動やURLが変更されるとコンポーネントを表示します。

Next.js では2つのルーティング方法がありますが、最新バージョンではApp Router を採用しています。

ルーティング ページフォルダ(通常) ページフォルダ(API) バージョン
App Router app/ app/api/ Next.js 13以降
Pages Router pages/ pages/api/ Next.js 13以前

サーバーサイドとAPI

Next.js ではサーバサイドプログラミングの1つAPI機能を標準搭載しています。Reactのフロントエンドと連携して、フルスタックの大規模アプリが開発可能です。

React & Next.js 開発環境

Node.js

「React」「Vue.js」などのJavaScriptフレームワークでのアプリ開発ではNode.jsが必要です。

Node.jsインストール

Node.jsは以下を参考にインストールしてください。

Node.js超入門

VSCodeプラグイン

ReactNext.js 開発で便利なVSCodeプラグインをインストールしておきます。

ES7 React/Redux/GraphQL/React-Native snippets

「ES7 React snippets」は、React開発の強力なスニペットプログインです。

Snippets 一覧

Snippets の一覧は以下から確認できます。

Snippets

ESLint

「ESLint」はJavaScriptプログラミングのための静的コード分析ツールです。プログラミングのコーディングミスの発見やテスト設定ができます。

Tailwind CSS IntelliSense

「Tailwind CSS IntelliSense」は、Tailwind CSS の効率化に便利です。

Next.jsで作るチャットアプリ