ホームページ > 記事 > ウェブフロントエンド > React Query でデータをフィルタリングして検索するにはどうすればよいですか?
React Query でデータをフィルタリングして検索するにはどうすればよいですか?
React Query をデータ管理に使用する過程で、データのフィルタリングと検索が必要になることがよくあります。これらの機能は、特定の条件下でデータをより簡単に検索して表示するのに役立ちます。この記事では、React Query でのフィルタリングと検索の使用方法を説明し、具体的なコード例を示します。
React Query は、React アプリケーションのデータ管理用のライブラリです。データの管理とキャッシュをより便利に行うための強力な機能がいくつか提供されています。その中で、QueryKeys を使用すると、異なるデータを操作するための異なるクエリ キーを定義できます。
React Query でデータのフィルタリングと検索を実装する鍵は、QueryKeys を使用してクエリ キーを動的に作成することです。このようにして、さまざまな条件下でのデータのフィルタリングや検索に適応するさまざまなクエリ キーを定義できます。
まず、すべてのデータを含むクエリ キーを定義する必要があります。たとえば、「users」をクエリ キーとして使用して、すべてのユーザーのデータを取得できます。
const queryClient = new QueryClient(); function App() { return ( <QueryClientProvider client={queryClient}> <UserList /> </QueryClientProvider> ); } function UserList() { const { data } = useQuery("users", fetchUsers); return ( <div> {data.map((user) => ( <UserCard key={user.id} user={user} /> ))} </div> ); }
上記のコードでは、useQuery
フックを使用してすべてのユーザー データを取得し、ページに表示します。
次に、フィルターまたは検索機能に必要なクエリ キーを定義する必要があります。たとえば、「filteredUsers」をクエリ キーとして使用して、特定の条件を満たすユーザー データを取得できます。
function UserFilter() { const [filter, setFilter] = useState(""); const { data } = useQuery( ["filteredUsers", filter], () => fetchFilteredUsers(filter), { enabled: Boolean(filter), } ); return ( <div> <input type="text" value={filter} onChange={(e) => setFilter(e.target.value)} /> {data && data.length > 0 ? ( <div> {data.map((user) => ( <UserCard key={user.id} user={user} /> ))} </div> ) : ( <div>No matching users</div> )} </div> ); }
上記のコードでは、useState
フックを使用してフィルター条件の状態を定義します。次に、useQuery
フックを使用して、フィルター条件を満たすユーザー データを取得し、ページに表示します。クエリ キーとして配列を使用します。最初の要素はクエリ キーの名前、2 番目の要素はフィルター条件です。フィルター条件が空の場合、不要なリクエストを回避するためにクエリが無効になります。
実際のアプリケーションでは、特定のニーズに応じてフィルタリング条件を自由に定義し、さまざまなシナリオに応じてさまざまなクエリ キーを使用できます。
上記は、React Query でのデータのフィルタリングと検索の基本的な方法です。クエリキーを柔軟に使用することで、データのフィルタリングや検索機能を簡単に実装できます。この柔軟性により、React Query は強力なデータ管理ツールになります。
この記事が、React Query でのデータ フィルタリングと検索機能の実装に役立つことを願っています。ご質問やご提案がございましたら、以下にメッセージを残してご相談ください。
以上がReact Query でデータをフィルタリングして検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。