React Query 3: Panduan untuk mengambil dan menguruskan data
Feb 10, 2025 pm 04:08 PMMemudahkan pengambilalihan data untuk aplikasi CRUD depan menggunakan React Query
Membina aplikasi Crud Front-end adalah mudah pada mulanya, tetapi apabila fungsi meningkat, kerumitan meningkat dengan pesat. Bagi setiap titik akhir API, pengurusan negeri, penyegerakan, caching, dan pengendalian ralat diperlukan. Artikel ini akan memperkenalkan perpustakaan yang dipanggil React Query dan bagaimana ia dapat membantu menyelesaikan semua masalah ini. Perpustakaan mendakwa sebagai "Perpustakaan Pengambilalihan Data yang hilang" dan menyediakan "Pengurusan Negeri Pelayan" untuk aplikasi React anda.
kami akan menggunakan projek demo pertanyaan React Complete untuk mempelajari ciri -ciri teras yang disediakan oleh perpustakaan. Anda kemudian boleh menggunakan pengetahuan ini untuk projek anda sendiri. Pertama, mari kita belajar sedikit tentangnya sebelum memulakan persediaan projek.
mata utama
- React Query 3 Memudahkan pengurusan negeri dan pemerolehan data dalam aplikasi React, mengendalikan cache, penyegerakan, dan pengurusan ralat dengan cekap.
- Perpustakaan ini sesuai untuk pemaju peringkat pertengahan ke tahap yang biasa dengan React, React Router, dan Rest API.
- React Query 3 menambah ciri baru dan penambahbaikan kepada versi 2.x dan menyediakan panduan penghijrahan untuk pengguna yang dinaik taraf.
- Ciri -ciri utama demo dalam projek demo termasuk pertanyaan asas, pertanyaan paging, dan pertanyaan tanpa had, serta penciptaan, kemas kini, dan memadam operasi.
- React Query's DevTools Utility Assists Debugging dengan menggambarkan keadaan dan proses dalaman dalam masa nyata.
- Pilihan konfigurasi seperti
- dan
cacheTime
mengoptimumkan prestasi dengan menguruskan kesegaran data dan tempoh cache.staleTime
Perpustakaan ini menyokong senario lanjutan seperti menatal tanpa had dan kebergantungan negara yang kompleks, meningkatkan pengalaman pengguna dan pengalaman pemaju.
Mengenai React Query 3
React Query adalah projek sumber terbuka yang dibuat oleh Tanner Linsey. Versi utama React Query 3 terbaru dikeluarkan secara rasmi pada bulan Disember 2020. Dalam versi baru ini, ciri -ciri baru telah ditambah dan ciri -ciri sedia ada telah diperbaiki.Harus diperhatikan bahawa ia mempunyai beberapa perubahan ketara berbanding dengan versi React Query yang sangat popular 2.x. Terdapat panduan penghijrahan yang jelas menerangkan perubahan ini, kerana anda mungkin menghadapi banyak tutorial ketinggalan zaman yang ditulis untuk versi yang lebih lama.
Versi baru memberikan peningkatan yang besar, dan banyak pepijat yang dilaporkan sebelum ini telah diselesaikan. Walaupun versi 3.x siap untuk pengeluaran, ia masih dalam pembangunan dan sentiasa ditetapkan dengan pepijat yang baru ditemui.
Langkah berjaga -jaga
Artikel ini adalah untuk pemaju depan peringkat pertengahan hingga tinggi, yang telah menguasai kemahiran asas dan pengetahuan berikut:
- React
- React Router
- React cangkuk
- Pengambilalihan data API REST
- node.js
- git
- pelanggan rehat seperti sambungan rehat untuk postman, insomnia, atau vs code
Mengenai projek
Projek Demo Kami akan menganalisis adalah aplikasi front-end React yang akan menggunakan pertanyaan React untuk mendapatkan data yang disediakan oleh pelayan API JSON REST. Aplikasi ini hanya terdiri daripada lima halaman, menunjukkan apa yang ditawarkan oleh React Query. Ciri -ciri ini termasuk:
- pertanyaan asas
- pertanyaan pagination
- pertanyaan tanpa had
- Buat Operasi
- Kemas kini Operasi
- Padam Operasi
React Query menyediakan lebih banyak ciri, tetapi artikel ini terhad di ruang dan tidak boleh diperkenalkan satu demi satu. Berikut adalah pratonton aplikasi yang akan kami gunakan:
Tetapan Projek
Sebelum kita mula menubuhkan, saya fikir lebih baik melihat dengan ringkas tentang kebergantungan lain yang digunakan dalam projek ini. Ini termasuk:
- vite: alat binaan yang sangat cepat
- Windicss: Penyusun CSS Tailwind yang sangat cepat
- Borang Hook React: Perpustakaan Pembina dan Pengesahan Borang yang menggunakan cangkuk React
- React Modal: Komponen modal yang boleh diakses
- Axios: Pelanggan HTTP Pelayar Berasaskan Janji
- JSON Server: Pelayan API REST Lengkap
# 克隆項目 git clone git@github.com:sitepoint-editors/react-query-demo.git # 導航到項目目錄 cd react-query-demo # 安裝包依賴項 npm install # 為 json-server 設置數(shù)據(jù)庫文件 cp api/sample.db.json api/db.json # 啟動 json-server npm run json-serverFail pangkalan data yang digunakan oleh JSON-Server mengandungi pelbagai pengguna. Apabila anda melaksanakan
, pelayan API palsu akan bermula pada port 3004. Melaksanakan permintaan GET akan menghasilkan contoh berikut JSON Response: npm run json-server
[ { "id": 1, "first_name": "Siffre", "last_name": "Timm", "email": "stimmes0@nasa.govz", "gender": "Male" }, { "id": 2, "first_name": "Fonzie", "last_name": "Coggen", "email": "fcoggen1@weather.com", "gender": "Female" }, { "id": 3, "first_name": "Shell", "last_name": "Kos", "email": "skos2@prweb.com", "gender": "Female" } ]Seterusnya, mulakan pelayan pembangunan yang akan menjalankan kod depan:
# 在另一個終端中,啟動 React 開發(fā)服務器 npm run devpergi ke penyemak imbas anda dan buka
untuk mengakses permohonan. Anda harus mempunyai pengalaman yang sama seperti dalam pratonton di atas. Pastikan untuk melaksanakan tugas -tugas berikut untuk meneroka fungsi aplikasi: http://localhost:3000
- Lihat halaman pertanyaan asas (halaman utama).
- Akses halaman paging dan berinteraksi dengan butang sebelumnya dan seterusnya.
- Akses halaman tanpa had dan berinteraksi dengan butang Load More.
- kembali ke halaman pertanyaan asas dan klik butang "Buat Pengguna". Anda akan diarahkan ke halaman Buat Pengguna. Isi borang dan klik butang Simpan.
- Dalam jadual pengguna, cari ikon edit. Klik. Ini akan membawa anda ke halaman Edit Pengguna. Buat sebarang perubahan yang anda suka dan klik butang "Simpan".
- Dalam jadual pengguna, cari ikon "Padam". Klik. Ini akan memulakan kotak dialog modal yang meminta anda mengesahkan operasi padam. Klik butang Padam untuk mengesahkan.
Pemasangan React Query
React Query boleh dipasang dalam projek React kosong atau sedia ada menggunakan arahan berikut:
# 克隆項目 git clone git@github.com:sitepoint-editors/react-query-demo.git # 導航到項目目錄 cd react-query-demo # 安裝包依賴項 npm install # 為 json-server 設置數(shù)據(jù)庫文件 cp api/sample.db.json api/db.json # 啟動 json-server npm run json-server
Pakej ini mengandungi semua yang anda perlukan - termasuk ciri utiliti DevTools, yang akan dibincangkan kemudian. Selepas memasang pakej, anda perlu mengemas kini komponen peringkat atas anda- App.jsx
-As ditunjukkan di bawah:
[ { "id": 1, "first_name": "Siffre", "last_name": "Timm", "email": "stimmes0@nasa.govz", "gender": "Male" }, { "id": 2, "first_name": "Fonzie", "last_name": "Coggen", "email": "fcoggen1@weather.com", "gender": "Female" }, { "id": 3, "first_name": "Shell", "last_name": "Kos", "email": "skos2@prweb.com", "gender": "Female" } ]Mana -mana komponen kanak -kanak
QueryClientProvider
akan dapat mengakses cangkuk yang disediakan oleh Perpustakaan Pertanyaan React. Cangkuk yang akan kita gunakan dalam artikel ini adalah:
-
useQuery
-
useInfiniteQuery
-
useMutation
- Berikut adalah dikemas kini (versi mudah)
useQueryClient
dengan subviews yang akan kami gunakan:
App.jsx
(Kandungan sedemikian, sila terus menerjemahkan bahagian yang tinggal mengikut keperluan anda, termasuk komponen UI, pertanyaan asas, pertanyaan penomboran, pertanyaan tanpa had, mutasi dan bab lain.)
Atas ialah kandungan terperinci React Query 3: Panduan untuk mengambil dan menguruskan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Terdapat tiga cara biasa untuk memulakan permintaan HTTP dalam node.js: Gunakan modul terbina dalam, axios, dan nod-fetch. 1. Gunakan modul HTTP/HTTPS terbina dalam tanpa kebergantungan, yang sesuai untuk senario asas, tetapi memerlukan pemprosesan manual jahitan data dan pemantauan ralat, seperti menggunakan https.get () untuk mendapatkan data atau menghantar permintaan pos melalui .write (); 2.AXIOS adalah perpustakaan pihak ketiga berdasarkan janji. Ia mempunyai sintaks ringkas dan fungsi yang kuat, menyokong async/menunggu, penukaran JSON automatik, pemintas, dan lain -lain. Adalah disyorkan untuk memudahkan operasi permintaan tak segerak; 3.Node-Fetch menyediakan gaya yang serupa dengan pengambilan penyemak imbas, berdasarkan janji dan sintaks mudah

Jenis data JavaScript dibahagikan kepada jenis primitif dan jenis rujukan. Jenis primitif termasuk rentetan, nombor, boolean, null, undefined, dan simbol. Nilai -nilai tidak berubah dan salinan disalin apabila memberikan nilai, jadi mereka tidak mempengaruhi satu sama lain; Jenis rujukan seperti objek, tatasusunan dan fungsi menyimpan alamat memori, dan pembolehubah menunjuk objek yang sama akan mempengaruhi satu sama lain. Typeof dan Instanceof boleh digunakan untuk menentukan jenis, tetapi memberi perhatian kepada isu -isu sejarah TypeOfNull. Memahami kedua -dua jenis perbezaan ini dapat membantu menulis kod yang lebih stabil dan boleh dipercayai.

Rangka kerja JavaScript mana yang terbaik? Jawapannya ialah memilih yang paling sesuai mengikut keperluan anda. 1. REACT adalah fleksibel dan bebas, sesuai untuk projek sederhana dan besar yang memerlukan penyesuaian tinggi dan keupayaan seni bina pasukan; 2. Angular menyediakan penyelesaian lengkap, sesuai untuk aplikasi peringkat perusahaan dan penyelenggaraan jangka panjang; 3. Vue mudah digunakan, sesuai untuk projek kecil dan sederhana atau perkembangan pesat. Di samping itu, sama ada terdapat timbunan teknologi sedia ada, saiz pasukan, kitaran hayat projek dan sama ada SSR diperlukan juga faktor penting dalam memilih rangka kerja. Singkatnya, tidak ada kerangka terbaik, pilihan terbaik adalah yang sesuai dengan keperluan anda.

Helo, pemaju JavaScript! Selamat datang ke berita JavaScript minggu ini! Minggu ini kami akan memberi tumpuan kepada: Pertikaian tanda dagangan Oracle dengan Deno, objek masa JavaScript baru disokong oleh pelayar, kemas kini Google Chrome, dan beberapa alat pemaju yang kuat. Mari mulakan! Pertikaian tanda dagangan Oracle dengan percubaan Deno Oracle untuk mendaftarkan tanda dagangan "JavaScript" telah menyebabkan kontroversi. Ryan Dahl, pencipta Node.js dan Deno, telah memfailkan petisyen untuk membatalkan tanda dagangan, dan dia percaya bahawa JavaScript adalah standard terbuka dan tidak boleh digunakan oleh Oracle

Janji adalah mekanisme teras untuk mengendalikan operasi tak segerak dalam JavaScript. Memahami panggilan rantaian, pengendalian ralat dan gabungan adalah kunci untuk menguasai aplikasi mereka. 1. Panggilan rantai mengembalikan janji baru melalui .then () untuk merealisasikan persamaan proses tak segerak. Setiap .then () menerima hasil sebelumnya dan boleh mengembalikan nilai atau janji; 2. Pengendalian ralat harus menggunakan .catch () untuk menangkap pengecualian untuk mengelakkan kegagalan senyap, dan boleh mengembalikan nilai lalai dalam tangkapan untuk meneruskan proses; 3. Gabungan seperti janji.all () (berjaya hanya berjaya selepas semua kejayaan), janji.race () (penyempurnaan pertama dikembalikan) dan janji.allsettled () (menunggu semua penyelesaian)

CACHEAPI adalah alat yang disediakan oleh penyemak imbas kepada permintaan rangkaian cache, yang sering digunakan bersempena dengan ServiceWorker untuk meningkatkan prestasi laman web dan pengalaman luar talian. 1. Ia membolehkan pemaju menyimpan sumber secara manual seperti skrip, helaian gaya, gambar, dan lain -lain; 2. Ia boleh memadankan tindak balas cache mengikut permintaan; 3. Ia menyokong memotong cache tertentu atau membersihkan seluruh cache; 4. Ia boleh melaksanakan keutamaan cache atau strategi keutamaan rangkaian melalui perkhidmatan pekerja yang mendengar acara mengambil; 5. Ia sering digunakan untuk sokongan luar talian, mempercepat kelajuan akses berulang, sumber utama dan kandungan kemas kini latar belakang; 6. Apabila menggunakannya, anda perlu memberi perhatian kepada kawalan versi cache, sekatan penyimpanan dan perbezaan dari mekanisme caching HTTP.

Kaedah terbina dalam JavaScript seperti .map (), .filter () dan .reduce () dapat memudahkan pemprosesan data; 1) .map () digunakan untuk menukar elemen satu hingga satu untuk menghasilkan tatasusunan baru; 2) .filter () digunakan untuk menapis elemen mengikut keadaan; 3) .reduce () digunakan untuk mengagregatkan data sebagai nilai tunggal; Penyalahgunaan harus dielakkan apabila digunakan, mengakibatkan kesan sampingan atau masalah prestasi.

Gelung acara JavaScript menguruskan operasi tak segerak dengan menyelaraskan susunan panggilan, webapis, dan barisan tugas. 1. Stack panggilan melaksanakan kod segerak, dan ketika menghadapi tugas -tugas yang tidak segerak, ia diserahkan kepada Webapi untuk diproses; 2. Selepas Webapi melengkapkan tugas di latar belakang, ia meletakkan panggil balik ke dalam barisan yang sama (tugas makro atau tugas mikro); 3. Loop acara memeriksa sama ada timbunan panggilan kosong. Jika ia kosong, panggilan balik diambil dari barisan dan ditolak ke dalam tumpukan panggilan untuk pelaksanaan; 4. Tugas -tugas mikro (seperti janji. 5. Memahami gelung acara membantu mengelakkan menyekat benang utama dan mengoptimumkan pesanan pelaksanaan kod.
