React Suspense
React Suspense sizga kod yoki ma’lumotlar yuklanishini kutayotganda muqobil HTMLni ko‘rsatish imkonini beradi.
Muqobil HTML component, matn yoki har qanday tegishli kontent bo‘lishi mumkin.
Suspense nima?
Suspense - bu kod yoki ma’lumotlar yuklanishini kutayotganda componentlaringizga muqobil HTMLni ko‘rsatishga imkon beruvchi React xususiyati.
Eng keng tarqalgan foydalanish holatlari:
- Suspens-faylli frameworklar yordamida ma’lumotlarni olish
React.lazy()yordamida componentlarni dinamik ravishda yuklash
Suspense-dan foydalanish
Agar componentni yuklash uchun vaqt kerak bo‘lsa, siz Suspense componentidan foydalanishingiz mumkin va u component yuklanayotganda zaxira tarkibni ko‘rsatadi.
Misol
Fruits componentini yuklash uchun ikki soniya vaqt ketadi, shuning uchun yuklanayotgan vaqtda yuklash xabarini ko‘rsatish uchun uni Suspense componentiga o‘rab olamiz.
import { createRoot } from 'react-dom/client';
import { Suspense } from 'react';
import Fruits from './Fruits';
function App() {
return (
<div>
<Suspense fallback={<div>Loading...</div>}>
<Fruits />
</Suspense>
</div>
);
}
createRoot(document.getElementById('root')).render(
<App />
);
Suspense’ni lazy loading (kechiktirilgan yuklash) bilan ishlatish
Suspense componentidan yana bir keng tarqalgan foydalanish lazy yuklangan componentlarni import qilishdir:
Yuqoridagi misolda biz yuklash xabarini ko‘rish uchun ikki soniyalik kechikishni soxtalashtirishimiz kerak edi. Massivdan uchta mevani ko‘rsatish kabi vazifa yuklash xabarini umuman ko‘rish uchun juda tez bo‘ladi.
Ammo lazy yuklanishi bilan biz componentni dinamik ravishda import qilishimiz mumkin va u yuklanayotganda yuklash xabarini ko‘rsatadi,
vazifa juda tez bo‘lsa ham.
Keling, avval lazy yuklashdan foydalanmasdan misol yarataylik, bu yerda biz ikki soniya kechikishni soxta qilmaymiz:
Misol
Ushbu misol yuklash xabarini ko‘rish uchun juda tez:
import { createRoot } from 'react-dom/client';
import { Suspense } from 'react';
import Cars from './Cars';
function App() {
return (
<div>
<Suspense fallback={<div>Loading...</div>}>
<Cars />
</Suspense>
</div>
);
}
createRoot(document.getElementById('root')).render(
<App />
);
Keling, lazy yuklash yordamida WITH misolini yarataylik:
Misol
Yuqoridagi misolning o‘zi, lekin lazy yuklash bilan:
import { createRoot } from 'react-dom/client';
import { Suspense, lazy } from 'react';
const Cars = lazy(() => import('./Cars'));
function App() {
return (
<div>
<Suspense fallback={<div>Loading...</div>}>
<Cars />
</Suspense>
</div>
);
}
createRoot(document.getElementById('root')).render(
<App />
);
Misol tushuntirildi
lazy()componentni dinamik ravishda yuklash imkonini beradiSuspensecomponent yuklanayotganda orqaga qaytishni ko‘rsatadi
Bir nechta componentlar
Bitta Suspense componenti bir nechta lazy (kechiktirib yuklanadigan) componentlarni o‘rashi mumkin:
Misol
import { createRoot } from 'react-dom/client';
import { Suspense, lazy } from 'react';
const Header = lazy(() => import('./Header'));
const Content = lazy(() => import('./Content'));
const Sidebar = lazy(() => import('./Sidebar'));
function App() {
return (
<div>
<Suspense fallback={<div>Loading...</div>}>
<Header />
<div style={{ display: 'flex' }}>
<Sidebar />
<Content />
</div>
</Suspense>
</div>
);
}
createRoot(document.getElementById('root')).render(
<App />
);
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
