Comment implémenter une requête de base de données distribuée dans React Query ?
À mesure que les applications deviennent de plus en plus complexes, la gestion des données devient de plus en plus difficile. Les bases de données distribuées deviennent un moyen de résoudre ce problème. React Query est une puissante bibliothèque de gestion de données qui nous aide à gérer efficacement les requêtes de données et la mise en cache.
Cet article expliquera comment utiliser React Query pour implémenter des requêtes de base de données distribuées et fournira des exemples de code spécifiques.
Tout d'abord, nous devons installer la bibliothèque React Query :
npm install react-query
Ensuite, nous pouvons définir le fournisseur de requêtes React dans le composant racine de l'application :
import { QueryClient, QueryClientProvider } from 'react-query'; const queryClient = new QueryClient(); function App() { return ( <QueryClientProvider client={queryClient}> {/* 应用组件 */} </QueryClientProvider> ); }
Avant d'utiliser React Query pour la requête de données, nous devons définir une méthode pour obtenir les fonctions de l'API Data. Supposons que nous ayons une fonction API nommée getUsers
pour obtenir la liste des utilisateurs : getUsers
的API函数用于获取用户列表:
async function getUsers() { const response = await fetch('/api/users'); const data = await response.json(); return data; }
接下来,我们可以使用React Query的useQuery
钩子来进行数据查询:
import { useQuery } from 'react-query'; function UserList() { const { data, isLoading, error } = useQuery('users', getUsers); if (isLoading) { return <div>Loading...</div>; } if (error) { return <div>Error: {error.message}</div>; } return ( <ul> {data.map(user => ( <li key={user.id}>{user.name}</li> ))} </ul> ); }
在上述示例中,useQuery
钩子使用了一个唯一的字符串users
作为查询的关键字,并传入了之前定义的getUsers
函数。React Query会自动缓存数据,并在需要时进行更新。
如果我们需要对查询结果进行排序或过滤,我们可以使用React Query的查询键参数。例如,如果我们需要根据用户名进行排序,我们可以将查询键设置为users?sortBy=name
:
function UserList() { const { data, isLoading, error } = useQuery('users?sortBy=name', getUsers); // ... }
然后,我们可以使用React Query的useMutation
钩子来执行数据更改操作。假设我们有一个名为updateUser
的API函数用于更新用户信息:
async function updateUser(userId, userData) { const response = await fetch(`/api/users/${userId}`, { method: 'PUT', body: JSON.stringify(userData) }); const data = await response.json(); return data; } function UserDetail({ userId }) { const { data, isLoading, error } = useQuery(['user', userId], () => getUsers(userId)); const mutation = useMutation(updatedData => updateUser(userId, updatedData)); const handleUpdate = async () => { const updatedData = { name: 'New Name' }; await mutation.mutateAsync(updatedData); }; if (isLoading) { return <div>Loading...</div>; } if (error) { return <div>Error: {error.message}</div>; } return ( <div> <p>Name: {data.name}</p> <button onClick={handleUpdate}>Update Name</button> </div> ); }
在上述示例中,我们使用了['user', userId]
作为查询键,并使用getUsers(userId)
来获取特定用户的数据。然后,我们使用useMutation
钩子创建了一个名为mutation
的对象,其中包含一个用于异步更新用户数据的mutateAsync
rrreee
useQuery
de React Query pour effectuer une requête de données : rrreee
Dans le Dans l'exemple ci-dessus, le hookuseQuery
utilise une chaîne unique users
comme mot-clé de requête et transmet la fonction getUsers
code> définie précédemment. React Query met automatiquement en cache les données et les met à jour si nécessaire. Si nous devons trier ou filtrer les résultats de la requête, nous pouvons utiliser le paramètre query key de React Query. Par exemple, si nous devons trier en fonction du nom d'utilisateur, nous pouvons définir la clé de requête sur users?sortBy=name
: rrreee
Ensuite, nous pouvons utiliseruseMutation
de React Query. Hooks pour effectuer des opérations de modification de données. Supposons que nous ayons une fonction API nommée updateUser
pour mettre à jour les informations utilisateur : 🎜rrreee🎜Dans l'exemple ci-dessus, nous avons utilisé ['user', userId]
comme clé de requête, et utilisez getUsers(userId)
pour obtenir les données d'un utilisateur spécifique. Nous utilisons ensuite le hook useMutation
pour créer un objet nommé mutation
, qui contient une méthode mutateAsync
pour mettre à jour de manière asynchrone les données utilisateur. 🎜🎜Enfin, nous affichons le nom de l'utilisateur dans le composant et déclenchons l'opération de mise à jour des données en cliquant sur le bouton. 🎜🎜Grâce aux exemples ci-dessus, nous pouvons voir que React Query fournit un moyen concis et flexible de gérer les requêtes de bases de données distribuées. Qu'il s'agisse de simples opérations d'acquisition de données, de tri, de filtrage ou de mise à jour de données, React Query peut exercer des fonctions puissantes. 🎜🎜Bien sûr, les exemples ci-dessus ne représentent que l'utilisation de base de React Query, et vous pouvez le personnaliser et l'étendre davantage en fonction de vos besoins spécifiques. J'espère que cet article pourra vous aider à utiliser React Query pour implémenter des requêtes de base de données distribuées dans React ! 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!