Maison >interface Web >js tutoriel >Plug-in de base de données React Query : pratique d'intégration avec la file d'attente de messages
Plug-in de base de données React Query : pratique d'intégration avec Message Queue
Introduction :
Dans le développement Web moderne, l'interaction entre le front-end et la base de données est une exigence très courante. En tant que puissante bibliothèque de gestion d'état, React Query fournit non seulement un mécanisme pratique de requête et de mise à jour des données, mais fournit également un système de plug-in qui peut facilement intégrer diverses technologies back-end et solutions de stockage de données. Cet article explique comment utiliser le plug-in de base de données React Query et le combiner avec la file d'attente de messages pour obtenir une interaction de données plus efficace.
1. Introduction au plug-in de base de données React Query
Le plug-in de base de données React Query est une bibliothèque de code open source qui étend les fonctions de React Query et fournit un moyen plus pratique pour les opérations d'ajout, de suppression, de modification et de requête de données. . Le plug-in prend en charge une variété de bases de données, telles que MySQL, PostgreSQL, MongoDB, etc., et peut également être personnalisé pour s'adapter à d'autres bases de données.
2. Installation et configuration du plug-in de base de données React Query
Installation
Tout d'abord, nous devons installer React Query et le plug-in de base de données dans le projet. L'installation peut être effectuée via npm ou Yarn. Ce qui suit prend npm comme exemple :
npm install react-query npm install react-query-db-plugin
Configuration
Dans le fichier de configuration de React Query, introduisez et enregistrez le plug-in de base de données :
import { QueryClient, QueryClientProvider } from 'react-query'; import { createDBPlugin } from 'react-query-db-plugin'; //创建QueryClient const queryClient = new QueryClient(); //创建并注册数据库插件 const dbPlugin = createDBPlugin({ //数据库配置信息 host: 'localhost', port: 3306, username: 'root', password: 'password', database: 'my-database', }); queryClient.registerPlugin(dbPlugin); //将QueryClientProvider包裹在根组件外部 ReactDOM.render( <QueryClientProvider client={queryClient}> <App /> </QueryClientProvider>, document.getElementById('root') );
3. Utilisez le Plug-in de base de données React Query pour implémenter l'interaction de données
Prenons la base de données MySQL comme exemple pour présenter comment utiliser le plug-in de base de données React Query pour implémenter des opérations d'ajout, de suppression, de modification et de requête de données.
Interroger des données
Dans le composant React, vous pouvez utiliser la méthode useQuery
pour interroger des données. Par exemple, nous souhaitons obtenir une liste d'utilisateurs de la base de données : useQuery
方法来进行数据的查询操作。例如,我们希望从数据库中获取用户列表:
import { useQuery } from 'react-query'; import { db } from 'react-query-db-plugin'; const UserList = () => { const { data, isLoading } = useQuery('userList', () => { return db.query('SELECT * FROM users'); }); if (isLoading) { return <div>Loading...</div>; } return ( <ul> {data.map(user => ( <li key={user.id}>{user.name}</li> ))} </ul> ); };
创建数据
要创建新的数据,可以使用useMutation
import { useMutation } from 'react-query'; import { db } from 'react-query-db-plugin'; const AddUserForm = () => { const mutation = useMutation(values => { return db.query('INSERT INTO users SET ?', values); }); const handleSubmit = e => { e.preventDefault(); mutation.mutate({ name: e.target.elements.name.value, age: e.target.elements.age.value, }); }; return ( <form onSubmit={handleSubmit}> <input name="name" type="text" placeholder="Name" /> <input name="age" type="number" placeholder="Age" /> <button type="submit" disabled={mutation.isLoading}> {mutation.isLoading ? 'Loading...' : 'Add'} </button> </form> ); };
useMutation
. Par exemple, nous créons un formulaire pour ajouter un nouvel utilisateur : const mutation = useMutation(values => { return db.query('INSERT INTO users SET ?', values) .then(() => { //发布事件 queue.publish('userAdded', values); }); });
Les opérations de mise à jour et de suppression de données sont similaires à la création de données et ne nécessitent que l'utilisation de différentes instructions SQL pour y parvenir.
Dans le développement réel, la file d'attente de messages est souvent utilisée pour le traitement de données asynchrone. La pratique d'intégration du plug-in de base de données React Query et de la file d'attente de messages peut être réalisée des manières suivantes :
Une fois les opérations d'ajout, de suppression, de modification et de requête des données terminées, l'événement de modification de données peut être envoyé via la file d’attente des messages. Par exemple, dans l'exemple ci-dessus de création de données, vous pouvez publier un événement après l'insertion des données :
import { useQuery, useQueryClient } from 'react-query'; import { db } from 'react-query-db-plugin'; import { queue } from 'react-query-message-queue'; const UserList = () => { const queryClient = useQueryClient(); const { data, isLoading } = useQuery('userList', () => { return db.query('SELECT * FROM users'); }); //订阅事件 useEffect(() => { const subscription = queue.subscribe('userAdded', payload => { queryClient.setQueryData('userList', oldData => { //在现有的用户列表数据之后添加新用户 return [...oldData, payload]; }); }); return () => { subscription.unsubscribe(); }; }, []); if (isLoading) { return <div>Loading...</div>; } return ( <ul> {data.map(user => ( <li key={user.id}>{user.name}</li> ))} </ul> ); };
Lorsque vous devez mettre à jour l'interface ou d'autres opérations asynchrones, vous pouvez vous abonner au événement de changement de données correspondant et effectuez Handle en conséquence. Par exemple, nous souhaitons mettre à jour l'interface lorsque la liste des utilisateurs change :
rrreee
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!