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 la file d'attente de messages

王林
王林original
2023-09-29 11:05:111542parcourir

React Query 数据库插件:与消息队列的整合实践

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

  1. 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
  2. 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.

  1. 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>
      );
    };
  2. 创建数据
    要创建新的数据,可以使用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>
      );
    };

  3. Créer des données
  4. Pour créer de nouvelles données, vous pouvez utiliser la méthode 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.

  1. 4. Pratique d'intégration avec la file d'attente de messages

    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 :

  2. Publier les événements de modification de données

    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>
      );
    };

Abonnez-vous aux événements de modification de données

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

🎜🎜 5. Résumé🎜En utilisant le plug-in de base de données React Query, nous pouvons facilement effectuer des opérations sur la base de données et les combiner avec des files d'attente de messages pour obtenir des données plus efficaces. interaction. Cet article explique comment installer et configurer le plug-in de base de données React Query, et comment utiliser le plug-in pour interroger, créer, mettre à jour et supprimer des données. De plus, nous avons également présenté comment intégrer React Query aux files d'attente de messages pour réaliser un traitement de données asynchrone. J'espère que cet article pourra vous aider à comprendre et à appliquer plus en profondeur le plug-in de base de données React Query. 🎜

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn