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プロジェクトとして、ぜひチャレンジしてみてください。