Rumah >hujung hadapan web >tutorial js >Pemalam pangkalan data React Query: amalan penyepaduan dengan baris gilir mesej
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
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
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.
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> ); };
创建数据
要创建新的数据,可以使用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
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.
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:
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> ); };
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
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!