Ez az eszköz leegyszerűsíti az adatok hatékony lekérésének és gyorsítótárazásának folyamatát a React alkalmazásokban.
A Tanstack Query, más néven React Query egy népszerű könyvtár a React alkalmazásokban történő adatlekéréshez. A React Query leegyszerűsíti az adatok lekérésének, gyorsítótárazásának és frissítésének folyamatát a webalkalmazásokban. Ez a cikk a React Query használatával foglalkozik az adatlekéréssel egy React alkalmazásban.
A React Query telepítése és beállítása
A React Queryt npm vagy yarn használatával telepítheti. Az npm használatával történő telepítéshez futtassa a következő parancsot a terminálon:
npm i @tanstack/react-query
A fonal használatával történő telepítéshez futtassa a következő parancsot a terminálon:
fonal add @tanstack/react-query
A React Query könyvtár telepítése után a teljes alkalmazást becsomagolja a QueryClientProvider összetevő. A QueryClientProvider összetevő becsomagolja az egész alkalmazást, és egy példányt biztosít a QueryClient minden gyermekkomponenséhez.
A QueryClient a React Query központi része. A QueryClient kezeli az összes adatlekérési és gyorsítótárazási logikát. A QueryClientProvider komponens veszi a QueryClient kellékként, és elérhetővé teszi az alkalmazás többi része számára.
Ahhoz, hogy a QueryClientProvider és a QueryClient alkalmazásában importálnia kell őket a @tanstack/react-query könyvtár:
import Reagál tól től'reagál';
import ReactDOM tól től'react-dom/client';
import App tól től'./Alkalmazás';
import { QueryClientProvider, QueryClient } tól től"@tanstack/react-query";const queryClient = új QueryClient();
ReactDOM.createRoot(dokumentum.getEementd('gyökér')).Vakol(
</QueryClientProvider>
</React.StrictMode>
)
A useQuery Hook megértése
A useQuery A hook a React Query könyvtár által biztosított funkció, amely adatokat kér le egy szerverről vagy API-ról. A következő tulajdonságokkal rendelkező objektumot fogadja el: queryKey (a lekérdezés kulcsa) és queryFn (egy olyan függvény, amely ígéretet ad vissza, amely feloldja a lekérni kívánt adatokat).
A queryKey azonosítja a lekérdezést; egyedinek kell lennie az alkalmazás minden lekérdezéséhez. A kulcs bármilyen érték lehet, például karakterlánc, objektum vagy tömb.
Az adatok lekéréséhez a useQuery horog, importálnia kell a @tanstack/react-query könyvtár, bérlet a queryKey és használja a queryFn hogy lekérje az adatokat egy API-ból.
Például:
import Reagál tól től'reagál';
import axiók tól től"axiók";
import { useQuery } tól től"@tanstack/react-query";funkcióitthon() {
const postQuery = useQuery({
queryKey: ["bejegyzések"],
queryFn: async () => {
const válasz = várja axios.get(' https://jsonplaceholder.typicode.com/posts');
const adatok = várja válasz.adatok;
Visszatérés adat;
}
})ha( postQuery.isLoading ) Visszatérés ( <h1>Betöltés...h1>)
ha( postQuery.isError ) Visszatérés (<h1>Hiba az adatok betöltésekor!!!h1>)
Visszatérés (Kezdőlap</h1>
{ postQuery.data.map( (tétel) => ( <pkulcs={tárgy azonosító}>{item.title}p>)) }
</div>
)
}
exportalapértelmezett Itthon;
A useQuery A hook egy objektumot ad vissza, amely a lekérdezésről tartalmaz információkat. A postQuery az objektum tartalmazza a isBetöltés, isError, és a Siker Államok. A isBetöltés, isError, és a Siker államok kezelik az adatvisszakeresési folyamat életciklusát. A postQuery.data tulajdonság tartalmazza az API-ból lekért adatokat.
A isBetöltés state egy logikai érték, amely jelzi, hogy a lekérdezés jelenleg tölt-e be adatokat. Amikor az isBetöltés állapot igaz, a lekérdezés folyamatban van, és a kért adatok nem érhetők el.
A isError Az állapot egy logikai érték is, amely azt jelzi, hogy történt-e hiba az adatlekérés során. Amikor isError igaz, a lekérdezésnek nem sikerült lekérnie az adatokat.
A a Siker Az állapot egy logikai érték, amely jelzi, hogy a lekérdezés sikeresen lekérte-e az adatokat. Amikor a Siker igaz, megjelenítheti az alkalmazásban lekért adatokat.
Megjegyzés: elérheti a queryKey használni a queryFn. A queryFn egyetlen érvet vesz fel. Ez az argumentum egy objektum, amely tartalmazza az API-kéréshez szükséges paramétereket. Ezen paraméterek egyike a queryKey.
Például:
useQuery({
queryKey: ["bejegyzések"],
queryFn: async (obj) => {
konzol.log( obj.queryKey );
}
})
Elévült adatok kezelése
A React query számos módot kínál az elavult adatok kezelésére. A React Query könyvtár biztosítja, hogy automatikusan új lekérési kérést küldjön az API-nak, amikor a lekért adatok elavultak. Ez garantálja, hogy Ön folyamatosan a legfrissebb adatokat jeleníti meg.
A segítségével szabályozhatja, hogy az adatok milyen gyorsan avuljanak el, és mennyi idő teljen el az egyes automatikus lekérések között staleTime és refetchInterval lehetőségek. A staleTime Az opció egy olyan tulajdonság, amely megadja, hogy a gyorsítótárazott adatok hány ezredmásodpercben érvényesek, mielőtt elavulnak.
A refetchInterval Az opció egy olyan tulajdonság, amely megadja a React Query könyvtár egyes automatikus lekérési kérelmei közötti ezredmásodpercek számát.
Például:
useQuery({
queryKey: ['...'],
queryFn: () => {...},
staleTime: 1000;
})
Ebben a példában a staleTime 1000 ezredmásodperc (1 másodperc). A lekért adatok 1 másodperc múlva elavulnak, majd a React Query könyvtár újabb lekérési kérelmet küld az API-nak.
Itt használja a refetchInterval lehetőség az egyes automatikus lekérési kérések közötti időintervallum szabályozására:
useQuery({
queryKey: ['...'],
queryFn: () => {...},
újratöltési időköz: 6000;
})
A refetchInterval 6000 ezredmásodperc (6 másodperc). A React Query 6 másodperc elteltével automatikusan elindít egy új lekérési kérést a gyorsítótárazott adatok frissítésére.
A useMutation Hook megértése
A useMutation hook egy hatékony eszköz a React Query könyvtárban. Azt aszinkron műveletet hajt végre mutációk, például adatok létrehozása vagy frissítése a szerveren. Használni a useMutation hook segítségével könnyedén frissítheti az alkalmazás állapotát és felhasználói felületét a mutációra adott válasz alapján.
Az alábbiakban létrehoztunk egy AddPost komponens, amely a űrlap egy beviteli mezővel és egy elküldés gombbal. Ez az űrlapösszetevő a useMutation hook segítségével frissíti az állapotot:
import Reagál tól től'reagál'
funkcióAddPost() {
const[post, setPost] = React.useState({
cím: ""
})funkciófogantyúChange(esemény) {
setPost( (prevState) => ({
...prevState,
[esemény.cél.név]: esemény.célérték
}) )
}Visszatérés (
exportalapértelmezett AddPost;
Benne AddPost komponens egy állapot hozzászólás amely egy tulajdonságú tárgyként szolgál, cím.
A fogantyúChange funkció frissíti az állapotot hozzászólás amikor a felhasználók beírják a beviteli mezőket. Miután létrehozta a AddPost komponenst, importáljuk a useMutation horog, és használja az API frissítéséhez.
Például:
import { useMutation } tól től"@tanstack/react-query"
import axiók tól től"axiók";
const newPostMutation = useMutation({
mutációFn: async () => {
const válasz = várja axios.post('', {
cím: post.title,
});
const adat = válasz.adatok;
Visszatérés adat;
}
})
A useMutation hook kezeli az új bejegyzés létrehozására irányuló HTTP-kérést. A newPostMutation konstans a mutációs függvényt és annak konfigurációs lehetőségeit jelenti.
A mutációFn egy aszinkron függvény, amely POST kérést küld az API végpontnak. A kérés tartalmaz egy objektumot, amely tartalmazza a cím érték a hozzászólás tárgy.
Futtatni a mutációFn, fel kell hívnia a newPostMutation.mutate() módszer:
const handleSubmit = async (esemény) => {
event.preventDefault();newPostMutation.mutate();
}
Visszatérés (
Az űrlap elküldésével futni fog a handleSubmit funkció. A handleSubmit függvény egy aszinkron függvény, amely kiváltja a mutációs függvényt newPostMutation.mutate().
Hatékony adatlekérés Tanstack Query segítségével
Ez a cikk bemutatja, hogyan kezelheti az adatlekérést egy React alkalmazásban a tanstack/react-query könyvtár használatával.
A tanstack/react-query könyvtár hatékony és rugalmas eszközt biztosít az adatok lekéréséhez és gyorsítótárazásához a React alkalmazásokban. Könnyen használható, gyorsítótárazási képességei pedig hatékonyak és érzékenyek.
Akár egy kisebb személyes projektet, akár egy kiterjedt vállalati alkalmazást épít, a tanstack/react-query könyvtár segíthet az adatok hatékony és eredményes kezelésében és megjelenítésében. A React mellett a Next.js számos beépített folyamatot és harmadik féltől származó könyvtárat is biztosít az adatlekérés kezelésére.