Rumah  >  Artikel  >  hujung hadapan web  >  Pemalam pangkalan data React Query: amalan penyepaduan dengan baris gilir mesej

Pemalam pangkalan data React Query: amalan penyepaduan dengan baris gilir mesej

王林
王林asal
2023-09-29 11:05:111450semak imbas

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

Pemalam Pangkalan Data Pertanyaan React: Amalan Integrasi dengan Barisan Mesej

Pengenalan:
Dalam pembangunan web moden, bahagian hadapan dan Interaksi pangkalan data adalah keperluan yang sangat biasa. Sebagai perpustakaan pengurusan negeri yang berkuasa, React Query bukan sahaja menyediakan pertanyaan data yang mudah dan mekanisme kemas kini, tetapi juga menyediakan sistem pemalam yang boleh mengintegrasikan pelbagai teknologi belakang dan penyelesaian penyimpanan data dengan mudah. Artikel ini akan memperkenalkan cara menggunakan pemalam pangkalan data React Query dan menggabungkannya dengan baris gilir mesej untuk mencapai interaksi data yang lebih cekap.

1 Pengenalan kepada pemalam pangkalan data React Query
Pemalam pangkalan data React Query ialah perpustakaan sumber terbuka yang memanjangkan fungsi React Query dan memberikan lebih kemudahan untuk penambahan, pemadaman, data, cara pengubahsuaian dan pertanyaan. Pemalam ini menyokong pelbagai pangkalan data, seperti MySQL, PostgreSQL, MongoDB, dsb., dan juga boleh disesuaikan untuk menyesuaikan diri dengan pangkalan data lain.

2. Pemasangan dan konfigurasi pemalam pangkalan data React Query

  1. Pemasangan
    Pertama, kita perlu memasang React Query React Query dalam pemalam Pangkalan Data projek. Pemasangan boleh diselesaikan melalui npm atau yarn Berikut mengambil npm sebagai contoh:

    npm install react-query
    npm install react-query-db-plugin
  2. Configuration
    Dalam fail konfigurasi React Query, perkenalkan dan daftar pemalam pangkalan data :

    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 Gunakan pemalam pangkalan data React Query untuk melaksanakan interaksi data
Mari kita ambil pangkalan data MySQL sebagai contoh. memperkenalkan cara menggunakan pemalam pangkalan data React Query untuk melaksanakan interaksi data. Tambah, padam, ubah suai dan semak operasi.

  1. Data pertanyaan
    Dalam komponen React, anda boleh menggunakan kaedah useQuery untuk membuat pertanyaan data. Sebagai contoh, kami ingin mendapatkan senarai pengguna daripada pangkalan data: 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. Create data
  4. Untuk mencipta data baharu, anda boleh menggunakan useMutation kaedah. Sebagai contoh, kami mencipta borang untuk menambah pengguna baharu:
const mutation = useMutation(values => {
  return db.query('INSERT INTO users SET ?', values)
 .then(() => {
   //发布事件
   queue.publish('userAdded', values);
 });
});


Operasi mengemas kini data dan memadam data adalah serupa dengan mencipta data, dan hanya perlu menggunakan pernyataan SQL yang berbeza untuk mencapai ia.

  1. 4 Amalan penyepaduan dengan baris gilir mesej

    Dalam pembangunan sebenar, baris gilir mesej sering digunakan untuk pemprosesan data tak segerak. Amalan penyepaduan pemalam pangkalan data React Query dan baris gilir mesej boleh dicapai dengan cara berikut:

  2. Terbitkan peristiwa perubahan data

    Selepas penambahan data, operasi pemadaman, pengubahsuaian dan pertanyaan selesai, Peristiwa perubahan data boleh dihantar melalui baris gilir mesej. Contohnya, dalam contoh mencipta data di atas, anda boleh menerbitkan acara selepas data dimasukkan:

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

Langgan acara pertukaran data

Bila antara muka perlu dikemas kini atau sebaliknya Apabila operasi tak segerak berlaku, anda boleh melanggan peristiwa perubahan data yang sepadan dan melakukan pemprosesan yang sepadan. Contohnya, kami ingin mengemas kini antara muka apabila senarai pengguna berubah:
rrreee

#🎜🎜##🎜🎜# 5. Ringkasan #🎜🎜# Dengan menggunakan pemalam pangkalan data React Query, kita boleh dengan mudah membuat operasi perubahan pangkalan data, dan bergabung dengan baris gilir mesej untuk mencapai interaksi data yang lebih cekap. Artikel ini memperkenalkan cara memasang dan mengkonfigurasi pemalam pangkalan data React Query dan cara menggunakan pemalam itu untuk membuat pertanyaan, mencipta, mengemas kini dan memadam data. Selain itu, kami juga memperkenalkan cara mengintegrasikan React Query dengan baris gilir mesej untuk mencapai pemprosesan data tak segerak. Saya harap artikel ini dapat membantu anda memahami dan menggunakan pemalam pangkalan data React Query dengan lebih mendalam. #🎜🎜#

Atas ialah kandungan terperinci Pemalam pangkalan data React Query: amalan penyepaduan dengan baris gilir mesej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn