1.Reactとは

https://i.gyazo.com/0942877e6180c3b38e185dc7f58613cc.png

React(リアクト)は、Meta(旧Facebook)社が開発した、オープンソースのJavaScriptライブラリです。

特にUIの構築に特化したライブラリで、SPA(Single Page Application)の作成に適しています。

1.React製のフレームワーク

近年では、Reactをベースに様々なフレームワークが開発されています。

そのため、一度Reactの基礎を学べば、以下のようなフレームワークでも同じように開発できるようになります。


Reactベースのフレームワーク

  • Next.js
  • Remix
  • Gatsby
  • Waku


※Meta(旧Facebook)社が提供していた開発ツールCRA(Create React App)は、2025年に非推奨になりました。

公式ブログ:Create React App の非推奨化

2.Reactの特徴

2-1.コンポーネントを使ったUI構築

Reactでは、コンポーネントと呼ばれるUIの部品を使います。

そして、開発したコンポーネントを組み合わせて、ページやWebアプリケーションの画面を構築できます。

つまり、パーツ単位でUIを作成できるので、コード自体の可読性が上がります。また、コンポーネントは、別の画面でも使いまわせるので、開発スピードが上がります。

2-2.JSXベースの開発

JSXは、HTMLとJavaScriptを組み合わせたマークアップ構文です。

以下は、JSXの例です。


https://i.gyazo.com/2a8f5b1652c6a5c1bfe9ea867d7aa81d.png引用元:https://ja.legacy.reactjs.org/docs/introducing-jsx.html


上記のように、JSXを使えば、UIの見た目とそのロジックを、直感的に分かりやすい形で記述できます。

2-3.応用の広さ

Reactは、一度基礎を習得してしまえば、様々な分野で活用できます。例えば、Webアプリケーションだけでなく、モバイルアプリケーションやNode.jsを使ったサーバーなどにも応用できます。


また、ReactはJavaScriptライブラリであり、既存のWeb サイトやアプリケーションへの部分的な導入が可能です。

必要な箇所にコンポーネントを追加すれば、既存のコードを大きく書き換える必要がないため、導入しやすいというメリットがあります。


3.React Hooksの紹介

React Hooksは、React側があらかじめ用意してくれているコンポーネント群です。

Reactの機能について理解する場合、React Hooksの紹介が欠かせません。

ここでは、代表的なReact Hookを3つ紹介します。

3-1.useState

useStateは、コンポーネントのデータを管理するフックです。

ユーザーが入力したデータを保持したり、更新したりする場合に使用します。


useStateの例

const[value, setValue]=useState(0);

3-2.useEffect

useStateは、レンダリングをトリガーに処理を行うフックです。データフェッチや、DOMの書き換えに使用されます。


useEffectの例

useEffect(()=>{
  console.log("コンポーネントが表示されました。");
},[]);

3-3.useRef

useRefは、useStateと同様にデータを管理するフックです。

ただし、useRefはデータが更新されても再レンダリングされません。

useRefは、DOM要素の参照によく使われます。


useRefの例

const inputRef =useRef(null);
useEffect(()=>{
  inputRef.current.focus();
},[]);
return(
  <div>
    <input ref={inputRef} placeholder="自動フォーカス"/>
  </div>
);

あとがき

今回は、筆者がよく使うNext.jsの基礎となっているReactについて解説しました。

今後、React Hooksについては、個別に解説記事を作ろうと思います。

今まで「何となく」で使っていた(使えてしまっていた)ライブラリですが、今後記事を執筆する際に、改めてインプットし直すことで、より洗練されたコードを書けるようになれたらと思います。