Jadual Kandungan
hello everyone
Rumah hujung hadapan web tutorial js Cara Menggunakan TanStack (React Query)

Cara Menggunakan TanStack (React Query)

Jul 20, 2024 am 08:48 AM

Dalam pembangunan web moden hari ini, permintaan HTTP sangat penting untuk aplikasi, jadi keperluan untuk pengurusan data yang cekap menjadi semakin kritikal. Artikel ini akan mendedahkan anda kepada Tanstack, ciri utamanya dan cara untuk bermula.

Tanstack

Tanstack ialah perpustakaan yang menakjubkan untuk pengurusan data dalam aplikasi, ia menangani isu pengurusan data untuk operasi data tak segerak. Ia membantu pembangun melaksanakan permintaan HTTP dengan mudah.

Apakah permintaan HTTP?

Permintaan HTTP (Hypertext Transfer Protocol) biasanya mesej yang dihantar oleh penyemak imbas ke pelayan untuk memulakan komunikasi dan untuk meminta data atau tindakan. HTTP adalah sangat penting kepada World Wide Web, ia adalah bahagian asas web. Tanpanya, kami mungkin tidak mempunyai aplikasi.

Permintaan HTTP membenarkan aplikasi bahagian hadapan melakukan tindakan GET, POST, PUT, DELETE, PATCH dll pada pelayan melalui titik akhir.

Faedah menggunakan Tanstack

Caching dan Penyegerakan Data: Dengan mekanisme caching terbina dalam, tanstack mengoptimumkan prestasi aplikasi anda dengan menyimpan data secara setempat. Ini mengurangkan bilangan permintaan, yang akan menjadikan permohonan anda menjadi lebih pantas.

Kemas Kini Optimis: Tanstack memudahkan kemas kini optimistik, ini membolehkan pembangun mengemas kini UI dengan sewajarnya. Ia mempunyai keadaan yang menakjubkan seperti, ralat, isLoading. Anda boleh menggunakan ini untuk memberikan keadaan pemuatan secara bersyarat semasa data sedang dimuatkan.

Penomboran Automatik dan Pemuatan Tak Terhingga: Mengendalikan set data yang besar menjadi mudah dengan sokongan tanstack untuk penomboran automatik dan pemuatan tak terhingga. Pembangun boleh mengambil dan memaparkan data dalam ketulan dengan lancar, meningkatkan prestasi aplikasi dan pengalaman pengguna.
Cara menggunakan Tanstack

Mula-mula, kita perlu memasang tanstack dengan menjalankan npm i react-query pada terminal kita.

Kami perlu menyuntik QueryClientProvider dalam aplikasi kami supaya kami boleh menggunakan Tanstack. Kami juga akan menyediakannya dengan queryClient sebagai prop. Anda boleh mencipta ini dalam fail index.js aplikasi anda.


import React daripada "react";
import ReactDOM daripada "react-dom/client";
import "./index.css";
import Apl daripada "./App";
import reportWebVitals daripada "./reportWebVitals";
import Nav daripada "./Nav";
import { BrowserRouter } daripada "react-router-dom";
import { QueryClientProvider, QueryClient } daripada "react-query";

const root = ReactDOM.createRoot(document.getElementById("root"));
const queryClient = new QueryClient();
root.render(








);

reportWebVitals();

Cara Mengambil Data Dengan Tanstack

Sekarang, kami akan mengambil beberapa data dari titik akhir menggunakan Tanstack. Kita perlu mengimport useQuery daripada react-query (Tanstack).

import { useQuery } daripada "react-query";

Kemudian kami akan memusnahkannya dan mendapatkan isLoading, data dan keadaan ralat daripadanya. Keadaan ini akan membolehkan kami melaksanakan kemas kini UI yang optimistik. Ini akan membolehkan kami memberikan UI berbeza secara bersyarat berdasarkan keadaan data.


const id = useParams()
const { isLoading, data, error } = useQuery(["post", id.id], () =>
getSignleQueryFunc(id.id)
)

Kemudian kita perlu menghantar pertanyaan, pertanyaan ialah pergantungan deklaratif pada sumber data tak segerak yang terikat pada kunci unik. Pertanyaan ini akan membantu kami mengambil data. Dalam kes kami, kami mempunyai tatasusunan rentetan (siaran) dan id setiap siaran. Ia tidak penting, cuma pastikan ia unik.

Berikut ialah contoh daripada dokumentasi Tanstack.

import { useQuery } from 'react-query'

function App() {
  const info = useQuery('todos', fetchTodoList)
}
Salin selepas log masuk

Seterusnya, kita perlu memasukkan fungsi pertanyaan, fungsi pertanyaan ini membolehkan kita mengambil data dari titik akhir. Dalam kes kami, kami mencipta fungsi kami dalam fail berasingan dan mengimportnya. Berikut ialah fungsi pertanyaan kami

export async function getSignleQueryFunc(id) {
  const response = await fetch(
    `https://jsonplaceholder.typicode.com/posts/${id}`
  );
  return response.json();
}
Salin selepas log masuk

Ini adalah keputusan akhir

import { useQuery } from "react-query";

import { getSignleQueryFunc } from "./getSignlePost";
import { useParams } from "react-router-dom";

export default function Posts() {
  const id = useParams();
  const { isLoading, data, error } = useQuery(["post", id.id], () =>
    getSignleQueryFunc(id.id)
  );

  if (error && data == undefined) return <p>Error fetching post</p>;

  return (
    <main>
      <h1>post</h1>
      <div>
        {isLoading ? (
          <div>Loading...</div>
        ) : (
          <div>
            <h3>{data.title}</h3>
            <p>{data.body}</p>
            <p>the number is {data.id}</p>
          </div>
        )}
      </div>
    </main>
  );
}
Salin selepas log masuk

Seperti yang anda boleh lihat dengan jelas betapa mudahnya menggunakan Tanstack (pertanyaan bertindak balas) untuk mengambil data. Anda tidak perlu menggunakan useStates lagi untuk menentukan keadaan data anda. Dalam contoh ini, kami mengambil siaran tunggal.

React query

Mutasi

Mutasi membolehkan anda mencipta, memadam dan mengemas kini data. Tanstack mempunyai useMutation yang akan anda gunakan untuk mencipta, memadam dan mengemas kini data.

Kami perlu menghantar fungsi mutasi kepada useMutation, dan kemudian membekalkan fungsi dengan parameter yang diperlukan untuk operasi mutasi khusus yang anda ingin lakukan. Dalam kes kami, kami akan mengemas kini siaran.

Here is how it is done
`
import { editPostFunc } from "./editPost";
import { useQuery, useMutation } from "react-query";
import { useParams } from "react-router-dom";
import { useState, useEffect } from "react";
import { getSignleQueryFunc } from "./getSignlePost";

export default function UpdatePost() {
const id = useParams();
const { data } = useQuery(["post", id.id], () => getSignleQueryFunc(id.id));
const [title, setTitle] = useState("");
const [body, setBody] = useState("");

useEffect(() => {
if (data) {
setTitle(data.title || "");
setBody(data.body || "");
}
}, [data]);

const itemUpdate = useMutation(editPostFunc, {
onSuccess: () => {

  console.log("Post updated successfully");
},
onError: (error) => {

  console.error("Error updating post:", error);
},
Salin selepas log masuk

});

const handleSubmit = (e) => {
e.preventDefault();
const updatedData = {
id: id.id,
title: title,
body: body,
userId: data.userId,
};
itemUpdate.mutate(updatedData);
};

return (

hello everyone



type="text"
placeholder="first input"
name="title"
value={title}
onChange={(e) => setTitle(e.target.value)}
/>
type="text"
placeholder="second input"
name="body"
value={body}
onChange={(e) => setBody(e.target.value)}
/>
click
</main>
Salin selepas log masuk

);
}`

How To Use TanStack (React Query)

Here is how our editPostFunc looks like


export async function editPostFunc(updatedData) {
const res = await fetch(
https://jsonplaceholder.typicode.com/posts/${updatedData.id}`,
{
method: "PUT",
body: JSON.stringify({
id: updatedData.id,
title: updatedData.title,
body: updatedData.body,
userId: updatedData.userId,
}),
headers: {
"Content-type": "application/json; charset=UTF-8",
},
}
);
return res.json();
}
`

As you can see, we are fetching each post and storing the values in the useStates so that we can be able to edit them in the input fields. Once we are done editing it, we call the handleSubmit function. In this function, we are creating an object with the necessary property values, this includes the states we updated.

We will then send the object to the mutation function for the update. We also check if the edit was successful or not by console logging the result we are getting whenever we try to update a post.

You can clearly see how easy it is to carryout HTTP requests with Tanstack.

Difference between useQuery and useMutation

Use cases: useQuery is used to fetch data while useMutation is used for modifying data.

Conclusion

HTTP request is a very essential part of modern web development, it allow browsers to initiate a communication with a server to perform some actions like GET, POST, PUT, DELETE, PATCH etc. Tanstack on the other hand helps to make things easier for developers, it has some many benefits like optimistic UI updates, simplified data fetching etc.

I believe you have seen how easy it is to use Tanstack to handle HTTP requests and data management. Check out the Tanstack documentation here for more understanding and to explore other features of Tanstack.

Happy coding!

Atas ialah kandungan terperinci Cara Menggunakan TanStack (React Query). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1670
14
Tutorial PHP
1276
29
Tutorial C#
1256
24
Python vs JavaScript: Keluk Pembelajaran dan Kemudahan Penggunaan Python vs JavaScript: Keluk Pembelajaran dan Kemudahan Penggunaan Apr 16, 2025 am 12:12 AM

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Dari C/C ke JavaScript: Bagaimana semuanya berfungsi Dari C/C ke JavaScript: Bagaimana semuanya berfungsi Apr 14, 2025 am 12:05 AM

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

JavaScript dan Web: Fungsi teras dan kes penggunaan JavaScript dan Web: Fungsi teras dan kes penggunaan Apr 18, 2025 am 12:19 AM

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.

JavaScript in Action: Contoh dan projek dunia nyata JavaScript in Action: Contoh dan projek dunia nyata Apr 19, 2025 am 12:13 AM

Aplikasi JavaScript di dunia nyata termasuk pembangunan depan dan back-end. 1) Memaparkan aplikasi front-end dengan membina aplikasi senarai TODO, yang melibatkan operasi DOM dan pemprosesan acara. 2) Membina Restfulapi melalui Node.js dan menyatakan untuk menunjukkan aplikasi back-end.

Memahami Enjin JavaScript: Butiran Pelaksanaan Memahami Enjin JavaScript: Butiran Pelaksanaan Apr 17, 2025 am 12:05 AM

Memahami bagaimana enjin JavaScript berfungsi secara dalaman adalah penting kepada pemaju kerana ia membantu menulis kod yang lebih cekap dan memahami kesesakan prestasi dan strategi pengoptimuman. 1) aliran kerja enjin termasuk tiga peringkat: parsing, penyusun dan pelaksanaan; 2) Semasa proses pelaksanaan, enjin akan melakukan pengoptimuman dinamik, seperti cache dalam talian dan kelas tersembunyi; 3) Amalan terbaik termasuk mengelakkan pembolehubah global, mengoptimumkan gelung, menggunakan const dan membiarkan, dan mengelakkan penggunaan penutupan yang berlebihan.

Python vs JavaScript: Komuniti, Perpustakaan, dan Sumber Python vs JavaScript: Komuniti, Perpustakaan, dan Sumber Apr 15, 2025 am 12:16 AM

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Python vs JavaScript: Persekitaran dan Alat Pembangunan Python vs JavaScript: Persekitaran dan Alat Pembangunan Apr 26, 2025 am 12:09 AM

Kedua -dua pilihan Python dan JavaScript dalam persekitaran pembangunan adalah penting. 1) Persekitaran pembangunan Python termasuk Pycharm, Jupyternotebook dan Anaconda, yang sesuai untuk sains data dan prototaip cepat. 2) Persekitaran pembangunan JavaScript termasuk node.js, vscode dan webpack, yang sesuai untuk pembangunan front-end dan back-end. Memilih alat yang betul mengikut keperluan projek dapat meningkatkan kecekapan pembangunan dan kadar kejayaan projek.

Peranan C/C dalam JavaScript Jurubah dan Penyusun Peranan C/C dalam JavaScript Jurubah dan Penyusun Apr 20, 2025 am 12:01 AM

C dan C memainkan peranan penting dalam enjin JavaScript, terutamanya digunakan untuk melaksanakan jurubahasa dan penyusun JIT. 1) C digunakan untuk menghuraikan kod sumber JavaScript dan menghasilkan pokok sintaks abstrak. 2) C bertanggungjawab untuk menjana dan melaksanakan bytecode. 3) C melaksanakan pengkompil JIT, mengoptimumkan dan menyusun kod hot-spot semasa runtime, dan dengan ketara meningkatkan kecekapan pelaksanaan JavaScript.

See all articles