Laksanakan mekanisme pengendalian ralat untuk pertanyaan pangkalan data dalam React Query

WBOY
Lepaskan: 2023-09-28 14:40:44
asal
1366 orang telah melayarinya

在 React Query 中实现数据库查询的错误处理机制

Melaksanakan mekanisme pengendalian ralat pertanyaan pangkalan data dalam React Query

React Query ialah perpustakaan yang digunakan untuk mengurus dan cache data. medan akhir semakin popular. Dalam aplikasi, kita sering perlu berinteraksi dengan pangkalan data, dan pertanyaan pangkalan data boleh menyebabkan pelbagai ralat. Oleh itu, melaksanakan mekanisme pengendalian ralat yang berkesan adalah penting untuk memastikan kestabilan aplikasi dan pengalaman pengguna.

Langkah pertama ialah memasang React Query. Tambahkannya pada projek menggunakan arahan berikut:

npm install react-query
Salin selepas log masuk

Setelah pemasangan selesai, kami boleh mengimport komponen dan fungsi yang diperlukan dalam aplikasi dan mula menulis kod.

Pertama, kita perlu mencipta contoh QueryClient bagi React Query dan membungkusnya dalam komponen akar aplikasi.

import { QueryClient, QueryClientProvider } from "react-query";

const queryClient = new QueryClient();

function App() {
  return (
    <QueryClientProvider client={queryClient}>
      {/* 应用程序的其他组件 */}
    </QueryClientProvider>
  );
}

export default App;
Salin selepas log masuk

Seterusnya, kita memerlukan fungsi untuk melaksanakan pertanyaan pangkalan data. Fungsi ini akan membuat permintaan menggunakan API pengambilan JavaScript dan menghuraikan hasilnya ke dalam format JSON.

async function fetchResource(url) {
  const response = await fetch(url);
  if (!response.ok) {
    throw new Error("请求出错");
  }
  return response.json();
}
Salin selepas log masuk

Dalam fungsi pertanyaan kami, kami menentukan sama ada permintaan itu berjaya dengan menyemak kod status respons. Jika kod status tidak berada dalam julat 200-299, kami membuang ralat. Ini akan mencetuskan mekanisme pengendalian ralat React Query.

Seterusnya, kami boleh memanggil fungsi pertanyaan kami dan memproses hasilnya dengan menggunakan cangkuk useQuery React Query.

import { useQuery } from "react-query";

function Resource() {
  const { data, error, isLoading } = useQuery("resource", () =>
    fetchResource("/api/resource")
  );

  if (isLoading) {
    return <div>Loading...</div>;
  }

  if (error) {
    return <div>发生错误:{error.message}</div>;
  }

  return <div>数据:{JSON.stringify(data)}</div>;
}

export default Resource;
Salin selepas log masuk

Dalam contoh ini, kami menggunakan cangkuk useQuery untuk mendapatkan data bernama "sumber". Argumen kedua yang kami berikan kepada useQuery ialah fungsi yang melaksanakan fungsi pertanyaan kami, fetchResource. React Query akan mengendalikan caching data dan logik ketidaksahihan secara automatik Kami hanya perlu menumpukan pada status permintaan dan pengendalian ralat.

Apabila data sedang dimuatkan, isLoading akan menjadi benar dan kami boleh memaparkan penunjuk pemuatan. Apabila ralat berlaku dan ralat tidak kosong, kami boleh memaparkan mesej ralat. Apabila permintaan berjaya dan tiada ralat, data akan mengandungi data yang dikembalikan daripada pelayan.

Akhir sekali, kami perlu menggunakan komponen Sumber kami dalam komponen lain aplikasi.

import Resource from "./Resource";

function App() {
  return (
    <QueryClientProvider client={queryClient}>
      <Resource />
    </QueryClientProvider>
  );
}

export default App;
Salin selepas log masuk

Dengan tetapan ini, kami boleh melaksanakan mekanisme pengendalian ralat pertanyaan pangkalan data dalam React Query. Sama ada ralat rangkaian atau ralat yang dikembalikan oleh pelayan, kami boleh menggunakan mekanisme React Query untuk mengendalikannya secara seragam dan memberikan pengalaman pengguna yang baik.

Atas ialah kandungan terperinci Laksanakan mekanisme pengendalian ralat untuk pertanyaan pangkalan data dalam React Query. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!