ホームページ >ウェブフロントエンド >jsチュートリアル >React Query データベース プラグイン: メッセージ キューとの統合の実践

React Query データベース プラグイン: メッセージ キューとの統合の実践

王林
王林オリジナル
2023-09-29 11:05:111559ブラウズ

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

React Query Database プラグイン: Message Queue との統合の実践

はじめに:
現代の Web 開発では、フロントエンドとデータベースの間の対話は次のように行われます。非常に一般的な要件です。強力な状態管理ライブラリとして、React Query は便利なデータ クエリと更新メカニズムを提供するだけでなく、さまざまなバックエンド テクノロジとデータ ストレージ ソリューションを簡単に統合できるプラグイン システムも提供します。この記事では、React Query データベース プラグインを使用し、それをメッセージ キューと組み合わせて、より効率的なデータ インタラクションを実現する方法を紹介します。

1. React Query データベース プラグインの紹介
React Query データベース プラグインは、React Query の機能を拡張し、データの追加、削除のためのより便利な方法を提供するオープン ソース ライブラリです。 、変更およびクエリ操作。このプラグインは、MySQL、PostgreSQL、MongoDB などのさまざまなデータベースをサポートしており、他のデータベースに適応するようにカスタマイズすることもできます。

2. React Query データベース プラグインのインストールと構成

  1. インストール
    まず、React Query とデータベース プラグインをプロジェクトにインストールする必要があります。インストールは npm または Yarn を通じて完了できます。以下では npm を例として取り上げます:

    npm install react-query
    npm install react-query-db-plugin
  2. Configuration
    React Query 設定ファイルで、データベース プラグインを導入して登録します。 :

    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. React Query データベース プラグインを使用してデータ インタラクションを実装する
MySQL データベースを例として、React Query データベース プラグインの使用方法を紹介します。データの追加、削除、変更、クエリ操作を実装します。

  1. データのクエリ
    React コンポーネントでは、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. データの更新とデータの削除の操作はデータの作成と似ており、異なる SQL ステートメントを使用するだけで実行できます。

4. メッセージ キューとの統合の実践
実際の開発では、メッセージ キューは非同期データ処理によく使用されます。 React Query データベース プラグインとメッセージ キューの統合は、次の方法で実現できます。

  1. データ変更イベントの発行
    データの追加、削除、変更、クエリの後に操作が完了すると、メッセージ キューを使用してデータ変更イベントを送信できます。たとえば、上記のデータ作成例では、データの挿入後にイベントを発行できます。

    const mutation = useMutation(values => {
      return db.query('INSERT INTO users SET ?', values)
     .then(() => {
       //发布事件
       queue.publish('userAdded', values);
     });
    });
  2. データ変更イベントを購読する
    インターフェイスを更新する必要がある場所またはその他の非同期操作では、対応するデータ変更イベントをサブスクライブし、対応する処理を実行できます。たとえば、ユーザー リストが変更されたときにインターフェイスを更新したいとします:

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

5. 概要
React Query データベース プラグインを使用すると、データベース操作を簡単に実行できます。メッセージキューを結合することで、より効率的なデータ対話が可能になります。この記事では、React Query データベース プラグインをインストールして構成する方法、およびプラグインを使用してデータをクエリ、作成、更新、削除する方法を紹介します。さらに、React Query をメッセージ キューと統合して非同期データ処理を実現する方法も紹介しました。この記事が、React Query データベース プラグインをより深く理解して適用するのに役立つことを願っています。

以上がReact Query データベース プラグイン: メッセージ キューとの統合の実践の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。