⊗jsrtPmRtNS 43 of 47 menu

React Router-da navigasiýa ýagdaýy

Eger biz sanawdaky önümler üstüne basýan bolsak, ilkinji gezek önüm sahypasynyň gijikmek bilen ýüklenýändigini görýäris, galan bolsa çalt, önüm goşulanda we ýenilende hem şonuň ýaly, sebäbi müşderi tarapynda keş bar.

Bu sapakda biz ulanyjya sahypamyzyň nähili ýagdaýda ýerleşýändigini görkezeris. Bize useNavigation gollary ýardam edip biler. Öz işiniň netijesinde bu gollaryň birnäçe aýratynlyklary bolan bir obýekt çykarýar. Bizi olaryň birinden - state aýratynlygyndan gyzyklanar.

State aýratynlygy 3 bahadan ybarat bolup biler: 'idle' (hiç zat bolmaýar), 'submitting' (forma POST, PUT, PATCH ýa-da DELETE arkaly iberilende action ýollary çagyrylan bolsa), 'loading' (indiki sahypany çyzdyrmak üçin indiki ýol üçin ýükleýji çagyrylan bolsa). Bizi iň soňky baha gyzyklandyrar.

Geliň root.jsx faýlyna girip we bu gollary import edeliň:

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

Soňra, gollaryň yzyna gaýtaryşy üçin, Root funksiýasynda return öň navigation üýtgeýjisini düzeliň:

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

Indi bolsa onuň aýratynlygyndan state peýdalanyň, eger bu baha 'loading' bolsa, onda biz klas loading önümiň maglumatlarynyň çyzylýan ýerleşýän ýeri üçin div üçin:

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

Bizä klas üçin stil goşmak galdy loading içinde index.css. Geliň ýükleme ýagdaýynda ýöne opacity artyryş edeliň:

div.loading { opacity: 0.3; }

Indi, saýty täzeden ýükäp, sanawdaky önümlere basanyňyz ýa-da, mysal üçin, täze önüm goşanyňyz, biz indiki sahypa peýda bolmanka häzirki sahypanyň birneme reňksizleşýändigini göreris.

Öňki sapaklardaky wezipeleriňizde döreden programmanyňyzy alyň. Sapak materiallaryndan peýdalanyp, gollaryň ýardamy bilen useNavigation ulanyjy indiki talyp baradaky maglumatlaryň ýükländigini görmegi üpjün ediň.

Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et