React Query에서 데이터 캐싱과 영구 저장을 어떻게 구현하나요?
프런트엔드 애플리케이션의 복잡성이 증가함에 따라 데이터 관리가 매우 중요해졌습니다. React Query는 데이터 수집 및 관리를 위한 강력한 도구입니다. 이는 데이터 검색, 캐싱 및 동기화를 단순화하는 방법을 제공하여 효율적이고 유지 관리하기 쉬운 애플리케이션을 신속하게 구축하는 데 도움이 됩니다.
React Query에는 기본적으로 메모리 캐싱 기능이 있지만 페이지를 새로 고치면 캐시된 데이터가 손실됩니다. 이 문제를 해결하려면 캐시 데이터를 로컬 스토리지에 유지해야 합니다. 이 글에서는 React Query에서 데이터 캐싱과 영구 저장을 구현하는 방법을 살펴보겠습니다.
먼저 React Query를 설치해야 합니다.
npm install react-query
다음으로 React Query를 사용하여 데이터를 가져오고 캐시하고 유지하는 방법을 살펴보겠습니다.
import React from 'react'; import { useQuery, QueryClient, QueryClientProvider } from 'react-query'; const queryClient = new QueryClient(); const fetchData = async () => { const response = await fetch('https://api.example.com/data'); return response.json(); }; const DataComponent = () => { const { data, isLoading, error } = useQuery('data', fetchData); if (isLoading) { return <div>Loading...</div>; } if (error) { return <div>Error: {error.message}</div>; } return ( <div> {data.map((item) => ( <div key={item.id}>{item.name}</div> ))} </div> ); }; const App = () => { return ( <QueryClientProvider client={queryClient}> <DataComponent /> </QueryClientProvider> ); }; export default App;
위 코드에서는 useQuery
후크를 사용하여 데이터를 가져옵니다. 고유 식별자 'data'
를 쿼리 키로 전달하고 비동기 함수를 사용하여 fetchData
데이터를 가져옵니다. React Query는 자동으로 데이터를 캐시하고 향후 요청에서 캐시된 데이터를 사용합니다. useQuery
钩子来获取数据。我们传递一个唯一的标识符 'data'
作为查询键,以及一个取数据的异步函数 fetchData
。React Query 会自动缓存我们的数据,并在以后的请求中使用缓存数据。
现在,我们来实现数据的持久化存储。我们可以使用 queryClient
的 getQueryData
和 setQueryData
方法来手动缓存和获取数据。同时,我们可以使用 localStorage
或其他类似于 localStorage
的持久化存储方案将数据保存在本地。
const fetchData = async () => { const cachedData = queryClient.getQueryData('data'); if (cachedData) { return cachedData; } const response = await fetch('https://api.example.com/data'); const data = response.json(); queryClient.setQueryData('data', data); localStorage.setItem('data', JSON.stringify(data)); return data; }; const DataComponent = () => { const { data, isLoading, error } = useQuery('data', fetchData); // ... return ( // ... ); }; const App = () => { const cachedData = JSON.parse(localStorage.getItem('data')); if (cachedData) { queryClient.setQueryData('data', cachedData); } return ( // ... ); };
在上述代码中,我们首先通过 queryClient.getQueryData
方法尝试从缓存中获取数据。如果数据存在,则直接返回缓存的数据,避免重新发起请求。如果数据不存在,则进行正常的数据请求流程,并使用 queryClient.setQueryData
方法将数据缓存起来。
在 App
组件中,我们首先尝试从本地存储中获取缓存的数据。如果数据存在,则使用 queryClient.setQueryData
方法将数据设置为初始缓存数据。
通过上述代码示例,我们成功实现了在 React Query 中的数据缓存和持久化存储。这使得我们的应用程序能够更高效地管理数据,并在刷新页面后能够恢复之前的状态。
总结:
queryClient
的 getQueryData
和 setQueryData
方法手动缓存和获取数据。localStorage
或其他类似于 localStorage
queryClient
의 getQueryData
및 setQueryData
메서드를 사용하여 데이터를 수동으로 캐시하고 가져올 수 있습니다. 동시에 localStorage
또는 localStorage
와 유사한 기타 영구 저장소 솔루션을 사용하여 데이터를 로컬에 저장할 수 있습니다. queryClient.getQueryData
메서드를 통해 캐시에서 데이터를 가져오려고 시도합니다. 데이터가 존재하는 경우 요청을 다시 시작하지 않도록 캐시된 데이터가 직접 반환됩니다. 데이터가 존재하지 않는 경우 일반적인 데이터 요청 프로세스를 진행한 후 queryClient.setQueryData
메소드를 사용하여 데이터를 캐시합니다. App
구성 요소에서는 먼저 로컬 저장소에서 캐시된 데이터를 가져오려고 시도합니다. 데이터가 존재하는 경우 queryClient.setQueryData
메소드를 사용하여 해당 데이터를 초기 캐시 데이터로 설정합니다. 🎜🎜위의 코드 예시를 통해 React Query에서 데이터 캐싱과 영구 저장을 성공적으로 구현했습니다. 이를 통해 애플리케이션은 데이터를 보다 효율적으로 관리하고 페이지를 새로 고친 후 이전 상태를 복원할 수 있습니다. 🎜🎜요약: 🎜queryClient
의 getQueryData
및 setQueryData
메서드를 사용하여 수동으로 데이터를 캐시하고 가져올 수 있습니다. 🎜🎜localStorage
또는 localStorage
와 유사한 기타 영구 저장소 솔루션을 사용하여 데이터를 로컬에 저장할 수 있습니다. 🎜🎜데이터 캐싱과 영구 저장을 통해 애플리케이션 성능을 향상하고 이전 상태를 복원할 수 있습니다. 🎜🎜위 내용은 React Query에서 데이터 캐싱 및 영구 저장을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!