Reactアプリケーションでのインタラクションの実装は、ユーザーの入力や状態に基づいて動的なUIを提供する重要な要素です。ここでは、Reactを使った「変更(編集)」、「フィルタリング」、「条件付きレンダリング」の実装方法について詳しく解説します。これらの基本的なインタラクションは、ユーザー体験を向上させ、アプリケーションをよりインタラクティブにするための基盤となります。
1. 変更(編集)の実装
Reactでの変更操作は、主にコンポーネントの状態(state)を更新することによって行われます。フォーム入力やボタンをクリックしたときに状態を変更することで、UIが動的に変わります。次の例は、入力フォームを使ってテキストを編集する方法を示しています。

コード例:
javascriptimport React, { useState } from 'react';
function EditableText() {
const [text, setText] = useState('初期のテキスト');
const handleChange = (event) => {
setText(event.target.value);
};
return (
<div>
<input type="text" value={text} onChange={handleChange} />
<p>編集されたテキスト: {text}p>
div>
);
}
export default EditableText;
この例では、useState
フックを使ってtext
という状態を管理し、ユーザーが入力したテキストをそのまま表示します。onChange
イベントハンドラを使って、ユーザーが入力するたびにtext
の状態が更新され、UIが自動的に再レンダリングされます。
2. フィルタリングの実装
Reactでのフィルタリング操作は、リストデータを動的に絞り込む場合に役立ちます。例えば、ユーザーが入力した検索キーワードに基づいてリストアイテムを絞り込む機能を実装できます。
コード例:
javascriptimport React, { useState } from 'react';
function FilterList() {
const [searchTerm, setSearchTerm] = useState('');
const items = ['りんご', 'ばなな', 'みかん', 'ぶどう', 'さくらんぼ'];
const filteredItems = items.filter(item =>
item.toLowerCase().includes(searchTerm.toLowerCase())
);
const handleSearchChange = (event) => {
setSearchTerm(event.target.value);
};
return (
<div>
<input
type="text"
placeholder="検索..."
value={searchTerm}
onChange={handleSearchChange}
/>
<ul>
{filteredItems.map((item, index) => (
<li key={index}>{item}li>
))}
ul>
div>
);
}
export default FilterList;
このコードでは、useState
を使ってsearchTerm
という状態を管理し、入力されたキーワードに基づいてitems
配列をフィルタリングします。filter
メソッドを使って、リストアイテムに対して部分一致の検索を行い、結果を表示します。
3. 条件付きレンダリングの実装
条件付きレンダリングは、状態やプロパティに基づいて異なるコンポーネントや要素をレンダリングするために使用します。Reactでは、JavaScriptの条件式(if
文や三項演算子)を使って、表示内容を動的に変更できます。
コード例:
javascriptimport React, { useState } from 'react';
function ConditionalRendering() {
const [isLoggedIn, setIsLoggedIn] = useState(false);
const toggleLogin = () => {
setIsLoggedIn(!isLoggedIn);
};
return (
<div>
<button onClick={toggleLogin}>
{isLoggedIn ? 'ログアウト' : 'ログイン'}
button>
{isLoggedIn ? (
<p>ようこそ、ユーザーさん!p>
) : (
<p>ログインしてください。p>
)}
div>
);
}
export default ConditionalRendering;
この例では、isLoggedIn
という状態を使って、ユーザーがログインしているかどうかに応じて異なるメッセージやボタンを表示しています。toggleLogin
関数を使って、状態を反転させ、ログイン状態に基づいたレンダリングを行います。
まとめ
Reactでのインタラクション(変更、フィルタリング、条件付きレンダリング)は、ユーザー体験を向上させるための基本的な技術です。状態管理をうまく活用することで、アプリケーションはより動的でインタラクティブなものになります。これらのテクニックは、実際のアプリケーション開発で非常に役立つので、しっかりと理解しておきましょう。