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

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

Reactの特徴
- コンポーネントベースの開発
- 仮想DOM
- リアクティブ
- JSXなどの機能拡張
コンポーネントベースの開発
Reactはコンポーネントベースの開発が必須で、UIをコンポーネント(小さな部品)に分割しながらプログラミングします。

コンポーネントを組み合わせで再利用可能かつ、保守性が向上し、大規模なアプリを構築できます。
仮想DOM
ReactはVirtual DOM(仮想DOM)という概念を使用し、変更された部分だけを実際のDOMに反映することで、パフォーマンスが格段に向上します。サーバーサイドプログラム(PHP、Ruby、Java、Pythonなど)では、サーバーでDOMをレンダリングするためサーバー負荷が発生する傾向があります。

リアクティブ(Reactive)
大規模アプリケーションになるとリアルタイム性を要求されるようになります。サーバサイドとフロントエンドでデータを高速に処理する必要があります。リアクティブはデータの更新があるとすぐに反応してリアルタイムで反映される仕組みです。
JSX
JSX
は React
で使用されるJavaScriptの拡張構文で、JavaScriptの中にXMLやHTMLのようなマークアップを記述できます。拡張子は .jsx
です。

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

ホットリローディング
Hot Reloading
(ホットリローディング)は、コードを保存したときにリアルタイムで反映させる仕組みです。アプリケーションを再起動せずに、ファイルを保存するたびにリアルタイム更新できます。
Next.js
Next.jsとは
Next.js
は React
を拡張したフレームワークで、サーバーサイドレンダリング、静的サイト生成、ルーティング、APIルーティングなど多くの機能を搭載しています。
主な特徴
SSRとSSG
Next.js
は、サーバーでコンテンツを動的に生成する SSR(サーバーサイドレンダリング)
や、静的サイト生成する SSG(スタティックサイトジェネレーション)
に対応しています。SSR
やSSG
を利用することで、サイトのページを事前にレンダリングして、高速なページ読み込みを実現します。
ダイナミックルーティング
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は以下を参考にインストールしてください。

VSCodeプラグイン
React
、Next.js
開発で便利なVSCodeプラグインをインストールしておきます。
ES7 React/Redux/GraphQL/React-Native snippets
「ES7 React snippets」は、React開発の強力なスニペットプログインです。

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

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