【React入門】メモ帳アプリの作り方を完全解説|初心者でも簡単に実装できる!

プログラミング

Reactで「メモ帳アプリ」を作ることで、入力フォームや一覧表示・状態管理などの基礎機能をまとめて習得できます。
「Reactを学んだけど、実際に何を作ればいいのか分からない」「フォーム処理や保存機能を練習したい」という方にぴったりの題材です。
本記事では、初心者の方でも数十分で作れるReactメモ帳アプリの作り方を丁寧に解説していきます。

React メモ帳アプリ作成ガイド

結論:メモ帳アプリはフォーム処理の学びに最適

Reactを学ぶ際、「フォームから入力を受け取って、一覧として表示する」という処理は必須です。
今回作るメモ帳アプリでは、useState、map、onChange、onClickなどの基本要素をしっかり使います。
この題材を通して、Reactの動きが実感できる構造を理解できます。

Reactの準備と開発環境の構築

Node.jsとnpmの準備

Reactを動かすには、Node.jsとnpmが必要です。以下からダウンロードしてください。

  • https://nodejs.org/ja/

コマンドで確認:

1
2
node -v
npm -v

Create React Appでプロジェクト作成

1
2
3
npx create-react-app react-memo-app
cd react-memo-app
npm start

これで開発環境の準備は完了です。

メモ帳アプリに必要な機能と構成

実装する機能一覧

  • メモの追加(入力→ボタンで追加)
  • メモの削除(削除ボタン付き)
  • 入力フォームの状態管理(useState)

コンポーネント構成

  • App:状態と全体の表示を管理
  • MemoInput:入力欄と追加ボタン
  • MemoList:メモ一覧表示
  • MemoItem:1つのメモ表示と削除機能

小さな単位に分けることで、コードが見やすくなります。

Reactメモ帳アプリの実装手順

MemoInput.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import { useState } from "react";
const MemoInput = ({ onAdd }) => {
  const [text, setText] = useState("");
  const handleSubmit = () => {
    if (!text.trim()) return;
    onAdd(text);
    setText("");
  };
  return (
    <div>
      <input
        type="text"
        value={text}
        onChange={(e) => setText(e.target.value)}
        placeholder="メモを入力"
      />
      <button onClick={handleSubmit}>追加</button>
    </div>
  );
};
export default MemoInput;

MemoItem.js

1
2
3
4
5
6
7
const MemoItem = ({ memo, onDelete }) => (
  <li>
    {memo.text}
    <button onClick={() => onDelete(memo.id)}>削除</button>
  </li>
);
export default MemoItem;

MemoList.js

1
2
3
4
5
6
7
8
9
import MemoItem from "./MemoItem";
const MemoList = ({ memos, onDelete }) => (
  <ul>
    {memos.map((memo) => (
      <MemoItem key={memo.id} memo={memo} onDelete={onDelete} />
    ))}
  </ul>
);
export default MemoList;

App.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import { useState } from "react";
import MemoInput from "./MemoInput";
import MemoList from "./MemoList";
function App() {
  const [memos, setMemos] = useState([]);
  const addMemo = (text) => {
    const newMemo = {
      id: Date.now(),
      text,
    };
    setMemos([...memos, newMemo]);
  };
  const deleteMemo = (id) => {
    setMemos(memos.filter((memo) => memo.id !== id));
  };
  return (
    <div>
      <h1>メモ帳アプリ</h1>
      <MemoInput onAdd={addMemo} />
      <MemoList memos={memos} onDelete={deleteMemo} />
    </div>
  );
}
export default App;

よくあるエラーと対処法

メモが追加されない

  • 入力が空白の場合は追加されません。
  • text.trim() で空欄を防いでいます。

削除機能が効かない

  • key={memo.id} が不足しているとReactがうまくレンダリングしません。

React学習に役立つ支援制度・教材

公的リンク

  • GIGAスクール構想(文科省):https://www.mext.go.jp/a_menu/other/index_00001.htm
  • React公式チュートリアル:https://ja.reactjs.org/tutorial/tutorial.html

その他の参考教材

完成コードまとめ

すべてのコードは App.js, MemoInput.js, MemoList.js, MemoItem.js の4つのファイルに分かれます。
最小構成でReactの「フォーム処理・一覧表示・状態管理」が体験できます。

まとめ:React入門に最適な題材

Reactでのメモ帳アプリ制作は、本格的なアプリ制作の入口として最適です。
構成をシンプルに保ちながら、入力・表示・削除という一連の流れを学習できます。
初めてのReactプロジェクトとして、ぜひチャレンジしてみてください。

タイトルとURLをコピーしました