⊗jsrtPmRtNS 43 of 47 menu

Naršymo būsena React Router

Jei mes spustelėjame produktus sąraše, matome, kad pirmą kartą produktų puslapis įkeliamas su delsimo, o kitus jau greitai, tas pats pridedant ir atnaujinant produktą, kadangi mes turime podėlį vartotojo pusėje.

Šioje pamokoje mes parodysime vartotojui kokia būsena yra mūsų pushlapis. Tai mums gali padėti kabliukas useNavigation. Savo darbo rezultatą šis kabliukas grąžina objektą su keletu savybių. Mus domins viena iš jų - savybė state.

Savybė state gali turėti 3 reikšmes: 'idle' (nieko nevyksta), 'submitting' (kai siunčiant formą per POST, PUT, PATCH ar DELETE iškviečiamas action maršruto), 'loading' (kai iškviečiamas įkėliklis kitam maršrutui, kad atvaizduotų kitą puslapį). Mus bus dominti paskutinė reikšmė.

Ženkime į failą root.jsx ir importuokime šį kabliuką:

import { useNavigation } from 'react-router-dom';

Tada, grąžinamam kabliuko rezultatui, sukursime kintamąjį navigation funkcijoje Root - prieš return:

const { products } = useLoaderData(); const navigation = useNavigation();

O dabar panaudokime jos savybę state, jei tai bus reikšmė 'loading', tai nustatysime klasę loading div'ui, kuriame mums vyksta produkto duomenų atvaizdavimas:

<div id="product" className={navigation.state === 'loading' ? 'loading' : ''}> <Outlet /> </div>

Mums liko pridėti stilių klasei loading index.css. Tegul įkėlimo būsenos atveju tiesiog padidiname opacity:

div.loading { opacity: 0.3; }

Dabar, jei, perkrovę svetainę, spustelėsime produktus sąraše ar, pavyzdžiui, pridėsime naują produktą, mes pamatysime, kad esamas puslapis kažkuriuo momentu nublankš, prieš pasirodant kitas.

Paimkite programėlę, kurią sukūrėte užduotyse ankstesnėse pamokose. Naudodamiesi pamokos medžiaga, naudodami kabliuką useNavigation padarykite taip, kad vartotojas galėtų matyti, kad kitas pushlapis su studento duomenimis įkeliamas.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti