0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

初めてのReact「入門編」導入から基本まで〜TODOアプリを作ってみよう〜

Last updated at Posted at 2023-02-28
1 / 10

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;
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?