Reactとは何か?
- Facebook社が開発したWebサイト上のUIパーツを構築するためのJavaScriptライブラリ
- UIパーツ(コンポーネント)を再利用しやすく、仮想DOM(Virtual DOM)という技術で高速に画面更新が可能。
- JSXという独自の記法でHTML風にコードが書けるため、開発者にとって書きやすく理解しやすい。
- 単方向データフローでデータの流れがわかりやすいため、開発の効率化につながります。
Reactの開発環境の構築方法
Reactを使うには、Node.jsをインストールし、npmを使ってReactのライブラリをインストールする必要があります。また、BabelやWebpackなどのツールを使って、Reactのコードをブラウザが理解できる形式に変換する必要があります。このような環境構築には、create-react-appというツールを使うことができます。
create-react-appを使った構築例
# 事前にNode.jsをインストールする
# create-react-appをインストールする
$ npm install -g create-react-app
# Reactのアプリケーションを作成する
$ create-react-app my-app
# Reactのアプリケーションを起動する
$ cd my-app
$ npm start
ブラウザで http://localhost:3000 にアクセスすることで、Reactのアプリケーションが表示されます。
Reactの基本的な構文とコンポーネントの作り方
Reactでは、コンポーネントと呼ばれるUIパーツを作成することができます。コンポーネントは、renderメソッドでUIを定義することができます。また、コンポーネントは親コンポーネントからpropsというデータを受け取ることができ、これを使って動的なUIを作成することができます。さらに、コンポーネントはstateという状態を持つことができ、stateが変更されると再度renderメソッドが呼ばれて画面が更新されます。
コンポーネントのコード例
Reactの基本的な構文とコンポーネントの作り方について、実際のコード例を示します。
以下は、HelloWorldという名前のコンポーネントを作成する例です。
import React from 'react';
class HelloWorld extends React.Component {
render() {
return <div>Hello, World!</div>;
}
}
export default HelloWorld;
コンポーネントの使用例
import React from 'react';
class Greeting extends React.Component {
render() {
const { name } = this.props;
return <div>Hello, {name}!</div>;
}
}
export default Greeting;
Reactでイベントハンドリングとステート管理をする方法
Reactでは、onClickやonChangeなどのイベントを扱うことができます。これらのイベントを扱うために、イベントハンドラーを定義する必要があります。また、Reactではstateを使って状態を管理することができます。stateが変更されると再度renderメソッドが呼ばれるため、UIの状態を簡単に更新することができます。
イベントハンドリングとステート管理の例
import React, { useState } from 'react';
function Example() {
const [count, setCount] = useState(0);
function handleClick() {
setCount(count + 1);
}
return (
<div>
<p>You clicked {count} times</p>
<button onClick={handleClick}>Click me</button>
</div>
);
}
export default Example;
この例では、useStateフックを使用して、カウントの状態を管理しています。ボタンがクリックされるたびに、handleClick関数が呼び出され、現在のカウント値に1を加算して、setCount関数を使用して新しい値を状態に設定します。
button要素には、onClickイベントが設定されており、ボタンがクリックされたときにhandleClick関数が呼び出されます。これにより、イベントハンドリングが実装されます。
ReactでTODOリストを表示・追加・削除・完了する機能を実装する
以下は、Reactを使ってTODOリストを表示・追加・削除・完了する機能を実装したコード例です。このコード例は、create-react-appで作成されたReactアプリケーションに、必要なコードを追加したものです。
import React, { useState } from "react";
function App() {
const [todos, setTodos] = useState([]);
const [newTodo, setNewTodo] = useState("");
const handleNewTodoChange = (event) => {
setNewTodo(event.target.value);
};
const handleNewTodoAdd = () => {
setTodos([...todos, { text: newTodo, completed: false }]);
setNewTodo("");
};
const handleTodoDelete = (index) => {
const newTodos = [...todos];
newTodos.splice(index, 1);
setTodos(newTodos);
};
const handleTodoComplete = (index) => {
const newTodos = [...todos];
newTodos[index].completed = true;
setTodos(newTodos);
};
return (
<div>
<h1>TODOリスト</h1>
<ul>
{todos.map((todo, index) => (
<li key={index}>
<input
type="checkbox"
checked={todo.completed}
onChange={() => handleTodoComplete(index)}
/>
<span
style={{
textDecoration: todo.completed ? "line-through" : "none",
}}
>
{todo.text}
</span>
<button onClick={() => handleTodoDelete(index)}>削除</button>
</li>
))}
</ul>
<div>
<input type="text" value={newTodo} onChange={handleNewTodoChange} />
<button onClick={handleNewTodoAdd}>追加</button>
</div>
</div>
);
}
export default App;