Yuqori unumdorlikka ega, sezgir global ilovalarni yaratish uchun React'ning bir vaqtda renderlash scheduler'i va uning kadr vaqti byudjetini boshqarish texnikalarini chuqur o'rganish.
React'ning Concurrent Rendering Scheduler'ini O'zlashtirish: Kadr Vaqti Byudjetini Boshqarish
Doimiy rivojlanib borayotgan veb-dasturlash sohasida uzluksiz va sezgir foydalanuvchi tajribasini (UX) taqdim etish juda muhimdir. Dunyo bo'ylab foydalanuvchilar o'zlarining qurilmasi, tarmoq sharoitlari yoki UI murakkabligidan qat'i nazar, ilovalarning tez, silliq va interaktiv bo'lishini kutishadi. Zamonaviy JavaScript freymvorklari, xususan React, bu talablarni qondirishda sezilarli yutuqlarga erishdi. React'ning bunga erishish qobiliyatining asosida uning murakkab Concurrent Rendering Scheduler (Bir vaqtda renderlash rejalashtiruvchisi) yotadi — bu renderlash ishini va, eng muhimi, uning Kadr Vaqti Byudjetini yanada oqilona boshqarish imkonini beruvchi kuchli mexanizmdir.
Ushbu keng qamrovli qo'llanma React'ning bir vaqtda renderlash scheduler'ining nozik jihatlarini, xususan, uning kadr vaqti byudjetini qanday boshqarishini chuqur o'rganadi. Biz uning asosidagi tamoyillarni, u hal qiladigan muammolarni va dasturchilar uchun ushbu xususiyatdan yuqori unumdorlikka ega va global miqyosda foydalanish mumkin bo'lgan ilovalarni yaratish uchun foydalanishning amaliy strategiyalarini ko'rib chiqamiz.
Kadr Vaqti Byudjetini Boshqarishning Zarurati
React'ning maxsus implementatsiyasiga kirishdan oldin, nima uchun kadr vaqti byudjetini boshqarish zamonaviy veb-ilovalar uchun juda muhim ekanligini tushunish zarur. "Kadr" tushunchasi ekranning bir marta yangilanishini anglatadi. Ko'pgina displeylarda bu soniyasiga 60 marta sodir bo'ladi, ya'ni har bir kadrni renderlash uchun taxminan 16,67 millisekund (ms) vaqt bor. Bu odatda 16ms byudjeti deb ataladi.
Agar veb-ilova bir kadrni renderlash uchun ushbu byudjetdan ko'proq vaqt sarflasa, brauzer o'sha kadrni "tashlab yuboradi", bu esa sekin ishlaydigan, qotib qoladigan yoki sezgirsiz UIga olib keladi. Bu, ayniqsa, animatsiyalar, skrolling yoki forma kiritishlari kabi interaktiv komponentlarda foydalanuvchilar uchun darhol seziladi va g'ashga tegarli bo'ladi.
An'anaviy Renderlashdagi Qiyinchiliklar:
- Uzoq Davom Etadigan Vazifalar: Bir vaqtda renderlash davridan oldin React (va boshqa ko'plab freymvorklar) bitta, sinxron oqimda ishlagan. Agar komponentning renderi juda uzoq davom etsa, u asosiy oqimni bloklab qo'yardi va renderlash tugamaguncha foydalanuvchi o'zaro ta'sirlarini (masalan, bosish yoki yozish) qayta ishlashga to'sqinlik qilardi.
- Oldindan Aytib Bo'lmaydigan Unumdorlik: Render unumdorligi juda oldindan aytib bo'lmaydigan bo'lishi mumkin edi. Ma'lumotlardagi yoki UI murakkabligidagi kichik o'zgarish mutlaqo boshqa renderlash vaqtlariga olib kelishi mumkin edi, bu esa silliq tajribani kafolatlashni qiyinlashtirardi.
- Ustuvorlikning Yo'qligi: Barcha renderlash vazifalari bir xil ahamiyatga ega edi. Shoshilinch yangilanishlarni (masalan, foydalanuvchi kiritishi) kamroq muhimlaridan (masalan, fonda ma'lumotlarni yuklash) ustun qo'yish uchun ichki mexanizm mavjud emas edi.
Bu qiyinchiliklar global kontekstda yanada kuchayadi. Internet infratuzilmasi unchalik mustahkam bo'lmagan yoki eski qurilmalarga ega bo'lgan mintaqalardagi foydalanuvchilar yanada kattaroq to'siqlarga duch kelishadi. Yomon boshqariladigan kadr vaqti byudjeti global foydalanuvchilar bazasining muhim qismi uchun ilovani deyarli foydalanishga yaroqsiz qilib qo'yishi mumkin.
React'ning Bir Vaqtda Renderlashini Tanishtirish
React Concurrent Mode (hozirda React 18'da standart) React'ning ilovalarni renderlash usulida fundamental o'zgarish kiritdi. Asosiy g'oya React'ga renderlashni to'xtatib turish, pauza qilish va davom ettirish imkoniyatini berishdir. Bunga brauzerning renderlash quvuridan xabardor bo'lgan va vazifalarni shunga mos ravishda ustuvorlashtira oladigan yangi scheduler orqali erishiladi.
Asosiy Tushunchalar:
- Vaqtni Bo'lish (Time Slicing): Scheduler katta, sinxron renderlash vazifalarini kichikroq qismlarga bo'ladi. Bu qismlar bir necha kadr davomida bajarilishi mumkin, bu esa React'ga qismlar orasida boshqaruvni brauzerga qaytarish imkonini beradi. Bu asosiy oqimning foydalanuvchi o'zaro ta'sirlari va hodisalarni qayta ishlash kabi muhim vazifalar uchun bo'sh qolishini ta'minlaydi.
- Qayta Kirish Imkoniyati (Re-entrancy): React endi komponentning hayotiy sikli o'rtasida renderlashni to'xtatib turishi va keyinroq, ehtimol boshqa tartibda yoki boshqa vazifalar bajarilgandan so'ng davom ettirishi mumkin. Bu turli xil yangilanishlarni aralashtirish uchun juda muhimdir.
- Ustuvorliklar (Priorities): Scheduler turli renderlash vazifalariga ustuvorliklar belgilaydi. Masalan, shoshilinch yangilanishlar (masalan, kiritish maydoniga yozish) API'dan olingan ro'yxatni yangilash kabi kamroq shoshilinch yangilanishlarga qaraganda yuqoriroq ustuvorlikka ega bo'ladi.
Asosiy mohiyat shundaki, bir vaqtda renderlash ishni oqilona rejalashtirish va bo'lish orqali kadr vaqti byudjetini boshqarishdan iborat.
React Scheduler: Bir Vaqtda Renderlashning Dvigateli
React scheduler'i bir vaqtda renderlashning orqasidagi orkestr dirijyoridir. U qachon, nimani va kadr vaqti byudjetiga sig'dirish uchun ishni qanday bo'lish kerakligini hal qilish uchun mas'uldir. U vazifalarni samarali rejalashtirish uchun brauzerning requestIdleCallback va requestAnimationFrame API'lari bilan o'zaro aloqada bo'ladi.
U qanday ishlaydi:
- Vazifalar Navbati: Scheduler vazifalar (masalan, komponent yangilanishlari, hodisalarni qayta ishlovchilar) navbatini saqlaydi.
- Ustuvorlik Darajalari: Har bir vazifaga ustuvorlik darajasi belgilanadi. React diskret ustuvorlik darajalari tizimiga ega, eng yuqorisidan (masalan, foydalanuvchi kiritishi) eng pastigacha (masalan, fon ma'lumotlarini yuklash).
- Rejalashtirish Qarorlari: Brauzer bo'sh bo'lganda (ya'ni, kadr byudjeti ichida vaqt bor bo'lganda), scheduler navbatdagi eng yuqori ustuvorlikka ega vazifani tanlaydi va uni bajarish uchun rejalashtiradi.
- Amalda Vaqtni Bo'lish: Agar vazifa joriy kadrning qolgan vaqtida bajarish uchun juda katta bo'lsa, scheduler uni "bo'ladi". U ishning bir qismini bajaradi, keyin brauzerga qaytadi va ishning qolgan qismini kelajakdagi kadr uchun rejalashtiradi.
- To'xtatish va Davom Ettirish: Agar past ustuvorlikdagi vazifa qayta ishlanayotganda yuqoriroq ustuvorlikdagi vazifa paydo bo'lsa, scheduler past ustuvorlikdagi vazifani to'xtatishi, yuqori ustuvorlikdagisini qayta ishlashi va keyinroq to'xtatilgan vazifani davom ettirishi mumkin.
Ushbu dinamik rejalashtirish React'ga eng muhim yangilanishlar birinchi bo'lib qayta ishlanishini ta'minlashga imkon beradi, bu esa asosiy oqimning bloklanishini oldini oladi va UI'ni sezgir saqlaydi.
Amalda Kadr Vaqti Byudjetini Boshqarishni Tushunish
Scheduler'ning asosiy maqsadi renderlash ishi mavjud kadr vaqtidan oshib ketmasligini ta'minlashdir. Bu bir nechta asosiy strategiyalarni o'z ichiga oladi:
1. Ishni Vaqtga Bo'lish
React katta renderlash operatsiyasini bajarishi kerak bo'lganda, masalan, katta komponentlar daraxtini renderlash yoki murakkab holat yangilanishini qayta ishlash kerak bo'lganda, scheduler aralashadi. Butun operatsiyani bir urinishda bajarish o'rniga (bu ko'p millisekundlar talab qilishi va 16ms byudjetidan oshib ketishi mumkin), u ishni kichikroq birliklarga bo'ladi.
Misol: Tasavvur qiling, renderlash kerak bo'lgan katta elementlar ro'yxati bor. Sinxron modelda React barcha elementlarni bir vaqtning o'zida renderlashga harakat qiladi. Agar bu 50ms vaqt olsa, UI o'sha vaqt davomida qotib qoladi. Vaqtni bo'lish bilan React dastlabki 10 ta elementni renderlashi, keyin esa to'xtashi mumkin. Keyingi kadrda u keyingi 10 tasini renderlaydi va hokazo. Bu foydalanuvchi ro'yxatning asta-sekin paydo bo'lishini ko'rishini, ammo UI jarayon davomida sezgir bo'lib qolishini anglatadi.
Scheduler doimiy ravishda o'tgan vaqtni kuzatib boradi. Agar u kadr byudjetining oxiriga yaqinlashayotganini aniqlasa, joriy ishni to'xtatadi va qolgan qismini keyingi mavjud imkoniyat uchun rejalashtiradi.
2. Yangilanishlarni Ustuvorlashtirish
React'ning scheduler'i turli xil yangilanishlarga har xil ustuvorlik darajalarini belgilaydi. Bu unga muhimroq yangilanishlar foydasiga kamroq ahamiyatli ishlarni kechiktirish imkonini beradi.
Ustuvorlik Darajalari (Konseptual):
- `Immediate` (Eng yuqori): Foydalanuvchi kiritishi kabi darhol javob talab qiladigan narsalar uchun.
- `UserBlocking` (Yuqori): Foydalanuvchi kutayotgan muhim UI yangilanishlari uchun, masalan, modalning paydo bo'lishi yoki forma yuborilishining tasdiqlanishi.
- `Normal` (O'rta): Darhol ko'rinmaydigan elementlar ro'yxatini renderlash kabi kamroq muhim yangilanishlar uchun.
- `Low` (Past): Foydalanuvchining bevosita o'zaro ta'siriga ta'sir qilmaydigan ma'lumotlarni yuklash kabi fon vazifalari uchun.
- `Offscreen` (Eng past): Hozirda foydalanuvchiga ko'rinmaydigan komponentlar uchun.
Yuqori ustuvorlikdagi yangilanish yuzaga kelganda (masalan, foydalanuvchi tugmani bosganda), scheduler darhol davom etayotgan har qanday past ustuvorlikdagi ishni to'xtatadi. Bu UI'ning foydalanuvchi harakatlariga darhol javob berishini ta'minlaydi, bu esa turli tarmoq tezligi va qurilma imkoniyatlariga ega bo'lgan turli xil aholi tomonidan ishlatiladigan ilovalar uchun juda muhimdir.
3. Bir Vaqtdagi Xususiyatlar va Ularning Ta'siri
React 18 bir vaqtda renderlash va uning kadr vaqti byudjetini boshqarish imkoniyatlaridan foydalanadigan bir nechta xususiyatlarni taqdim etdi:
startTransition: Ushbu API sizga ma'lum holat yangilanishlarini "o'tishlar" deb belgilash imkonini beradi. O'tishlar shoshilinch bo'lmagan va UI'ni bloklashi shart bo'lmagan yangilanishlardir. Bu katta ro'yxatni filtrlash yoki sahifalar o'rtasida navigatsiya qilish kabi operatsiyalar uchun juda mos keladi, bu yerda UI yangilanishidagi qisqa kechikish qabul qilinadi. Scheduler UI'ni sezgir saqlashga ustuvorlik beradi va o'tish yangilanishini fonda renderlaydi.useDeferredValue:startTransitionga o'xshab,useDeferredValuesizga UI'ning bir qismini yangilashni kechiktirish imkonini beradi. Bu foydalanuvchi tajribasiga salbiy ta'sir qilmasdan kechiktirilishi mumkin bo'lgan qimmat hisob-kitoblar yoki renderlash uchun foydalidir. Masalan, agar foydalanuvchi qidiruv maydoniga yozayotgan bo'lsa, qidiruv natijalarini renderlashni foydalanuvchi yozishni tugatguncha yoki qisqa pauza yuzaga kelguncha kechiktirishingiz mumkin.- Avtomatik Batching (Guruhlash): React'ning oldingi versiyalarida hodisalarni qayta ishlovchi ichidagi bir nechta holat yangilanishlari birga guruhlangan. Biroq, promise'lar, timeout'lar yoki mahalliy hodisalarni qayta ishlovchilardan kelgan yangilanishlar guruhlanmas edi. React 18 kelib chiqishidan qat'i nazar, barcha holat yangilanishlarini avtomatik ravishda guruhlaydi, bu esa qayta renderlashlar sonini sezilarli darajada kamaytiradi va unumdorlikni oshiradi. Bu bilvosita umumiy renderlash ishini kamaytirish orqali kadr vaqti byudjetiga yordam beradi.
Ushbu xususiyatlar global ilovalarni yaratishda o'yin qoidalarini o'zgartiradi. Kam o'tkazuvchanlikka ega mintaqadagi foydalanuvchi silliqroq navigatsiya va o'zaro ta'sirlarni boshdan kechirishi mumkin, chunki scheduler yangilanishlar qachon va qanday qo'llanilishini oqilona boshqaradi.
Bir Vaqtda Renderlash Bilan Ilovangizni Optimallashtirish Strategiyalari
React'ning scheduler'i og'ir ishning ko'p qismini o'z zimmasiga olsa-da, dasturchilar o'z ilovalarini yanada optimallashtirish va ularning global miqyosda yaxshi ishlashini ta'minlash uchun strategiyalarni qo'llashlari mumkin va kerak.
1. Qimmat Hisob-Kitoblarni Aniqlash va Izolyatsiya Qilish
Birinchi qadam hisob-kitob jihatidan qimmat bo'lgan komponentlar yoki operatsiyalarni aniqlashdir. React DevTools Profiler kabi vositalar unumdorlikdagi zaif nuqtalarni aniqlashda bebaho yordam beradi.
Amaliy Maslahat: Aniqlangandan so'ng, komponentlar uchun React.memo yoki qiymatlar uchun useMemo yordamida qimmat hisob-kitoblarni memoizatsiya qilishni ko'rib chiqing. Biroq, ehtiyotkor bo'ling; haddan tashqari memoizatsiya ham qo'shimcha yuk keltirishi mumkin.
2. startTransition va useDeferredValue dan To'g'ri Foydalanish
Ushbu bir vaqtda renderlash xususiyatlari muhim bo'lmagan yangilanishlarni boshqarishda sizning eng yaxshi do'stlaringizdir.
Misol: Ko'plab vidjetlarga ega boshqaruv panelini ko'rib chiqing. Agar foydalanuvchi bir vidjet ichidagi jadvalni filtrlasa, bu filtrlash operatsiyasi hisob-kitob jihatidan intensiv bo'lishi mumkin. Butun boshqaruv panelini bloklash o'rniga, filtrlashni ishga tushiradigan holat yangilanishini startTransition ga o'rang. Bu foydalanuvchining jadval filtrlanayotganda boshqa vidjetlar bilan o'zaro aloqada bo'lishini ta'minlaydi.
Misol (Global Kontekst): Ko'p millatli elektron tijorat saytida mahsulotlar ro'yxati sahifasi bo'lishi mumkin, bu yerda filtrlarni qo'llash vaqt talab qilishi mumkin. Filtr yangilanishi uchun startTransition dan foydalanish navigatsiya yoki "savatga qo'shish" tugmalari kabi boshqa UI elementlarining sezgir bo'lib qolishini ta'minlaydi, bu esa sekinroq ulanish yoki kamroq quvvatli qurilmalardagi foydalanuvchilar uchun yaxshiroq tajriba taqdim etadi.
3. Komponentlarni Kichik va Maqsadli Saqlang
Kichikroq, aniqroq maqsadga yo'naltirilgan komponentlarni scheduler uchun boshqarish osonroq. Komponent kichik bo'lganda, uning renderlash vaqti odatda qisqaroq bo'ladi, bu esa uni kadr byudjetiga sig'dirishni osonlashtiradi.
Amaliy Maslahat: Katta, murakkab komponentlarni kichikroq, qayta foydalanish mumkin bo'lgan qismlarga ajrating. Bu nafaqat unumdorlikni oshiradi, balki global dasturlash jamoangiz bo'ylab kodni saqlash va qayta foydalanish imkoniyatini ham yaxshilaydi.
4. Ma'lumotlarni Yuklash va Holatni Boshqarishni Optimallashtirish
Ma'lumotlarni qanday yuklashingiz va boshqarishingiz renderlash unumdorligiga sezilarli ta'sir qilishi mumkin. Samarali bo'lmagan ma'lumotlarni yuklash keraksiz qayta renderlashlarga yoki bir vaqtning o'zida katta hajmdagi ma'lumotlarni qayta ishlashga olib kelishi mumkin.
Amaliy Maslahat: Sahifalarga bo'lish, "dangasa" yuklash (lazy loading) va ma'lumotlarni normallashtirish kabi samarali ma'lumotlarni yuklash strategiyalarini joriy qiling. React Query yoki Apollo Client kabi kutubxonalar server holatini samarali boshqarishga yordam beradi, bu esa komponentlaringiz va scheduler'ga tushadigan yukni kamaytiradi.
5. Kodni Bo'lish va "Dangasa" Yuklash
Katta ilovalar uchun, ayniqsa tarmoq o'tkazuvchanligi cheklangan bo'lishi mumkin bo'lgan global auditoriyaga mo'ljallangan ilovalar uchun kodni bo'lish va "dangasa" yuklash juda muhimdir. Bu foydalanuvchilar faqat joriy ko'rinish uchun zarur bo'lgan JavaScript kodini yuklab olishini ta'minlaydi.
Misol: Murakkab hisobot vositasida ko'plab turli modullar bo'lishi mumkin. React.lazy va Suspense dan foydalanib, siz ushbu modullarni talab bo'yicha yuklashingiz mumkin. Bu dastlabki yuklash vaqtini qisqartiradi va scheduler'ga avval ilovaning ko'rinadigan qismlarini renderlashga e'tibor qaratish imkonini beradi.
6. Profilerlash va Iterativ Optimallashtirish
Unumdorlikni optimallashtirish doimiy jarayondir. Ilovangizni, ayniqsa yangi xususiyatlarni qo'shgandan yoki muhim o'zgarishlar kiritgandan so'ng, muntazam ravishda profillang.
Amaliy Maslahat: Unumdorlik regressiyalarini aniqlash uchun React DevTools Profiler'dan production build'larda (yoki production'ga o'xshash staging muhitida) foydalaning. Renderlash paytida vaqt qayerga sarflanayotganini va scheduler bu vazifalarni qanday boshqarayotganini tushunishga e'tibor qarating.
Global Mulohazalar va Eng Yaxshi Amaliyotlar
Global auditoriya uchun ilovalar yaratishda kadr vaqti byudjetini boshqarish yanada muhimroq bo'ladi. Foydalanuvchi muhitlarining xilma-xilligi unumdorlikka proaktiv yondashuvni talab qiladi.
1. Tarmoq Kechikishi va O'tkazuvchanligi
Dunyoning turli burchaklaridagi foydalanuvchilar mutlaqo boshqa tarmoq sharoitlarini boshdan kechirishadi. Tez-tez, katta hajmdagi ma'lumotlarni uzatishga qattiq bog'liq bo'lgan ilovalar past o'tkazuvchanlikka ega mintaqalarda yomon ishlaydi.
Eng Yaxshi Amaliyot: Ma'lumotlar yuklamalarini optimallashtiring, kesh mexanizmlaridan foydalaning va kerak bo'lganda offline-first strategiyalarini ko'rib chiqing. Doimiy server aloqasiga tayanmasdan, qimmat mijoz tomonidagi hisob-kitoblar scheduler tomonidan samarali boshqarilishini ta'minlang.
2. Qurilma Imkoniyatlari
Dunyo bo'ylab ishlatiladigan qurilmalar diapazoni yuqori darajadagi smartfonlar va ish stollaridan tortib eski, kamroq quvvatli kompyuterlar va planshetlargacha keskin farq qiladi.
Eng Yaxshi Amaliyot: Bosqichma-bosqich degradatsiyani hisobga olgan holda loyihalashtiring. Hatto kamroq quvvatli qurilmalarda ham ilova foydalanishga yaroqli va sezgir bo'lib qolishini ta'minlash uchun bir vaqtda renderlash xususiyatlaridan foydalaning. Agar ular muhim bo'lmasa va turli qurilmalarda unumdorlik uchun sinchkovlik bilan sinovdan o'tkazilmagan bo'lsa, hisob-kitob jihatidan og'ir animatsiyalar yoki effektlardan saqlaning.
3. Xalqarolashtirish (i18n) va Mahalliylashtirish (l10n)
Scheduler'ga bevosita bog'liq bo'lmasa-da, ilovangizni xalqarolashtirish va mahalliylashtirish jarayoni unumdorlik bilan bog'liq mulohazalarni keltirib chiqarishi mumkin. Katta tarjima fayllari yoki murakkab formatlash mantig'i renderlash yukini oshirishi mumkin.
Eng Yaxshi Amaliyot: i18n/l10n kutubxonalaringizni optimallashtiring va dinamik ravishda yuklangan har qanday tarjimalar samarali boshqarilishini ta'minlang. Scheduler, agar darhol ko'rinmasa, mahalliylashtirilgan kontentni renderlashni kechiktirish orqali yordam berishi mumkin.
4. Turli Muhitlarda Sinovdan O'tkazish
Ilovangizni real dunyo global sharoitlarini simulyatsiya qiladigan muhitlarda sinovdan o'tkazish juda muhimdir.
Eng Yaxshi Amaliyot: Turli tarmoq sharoitlari va qurilma turlarini simulyatsiya qilish uchun brauzer ishlab chiquvchi vositalaridan foydalaning. Agar iloji bo'lsa, turli geografik joylashuvlardan va turli xil apparat konfiguratsiyalariga ega bo'lgan shaxslar bilan foydalanuvchi sinovlarini o'tkazing.
React Renderlashining Kelajagi
React'ning bir vaqtda renderlash bilan sayohati hali ham rivojlanmoqda. Ekosistema rivojlanib, ko'proq dasturchilar ushbu yangi paradigmalarni qabul qilgan sari, renderlash unumdorligini boshqarish uchun yanada murakkab vositalar va texnikalarni kutishimiz mumkin.
Kadr vaqti byudjetini boshqarishga bo'lgan e'tibor React'ning barcha foydalanuvchilar uchun, hamma joyda yuqori sifatli foydalanuvchi tajribasini taqdim etishga sodiqligining isbotidir. Bir vaqtda renderlash va uning rejalashtirish mexanizmlari tamoyillarini tushunib va qo'llab, dasturchilar nafaqat funksiyalarga boy, balki foydalanuvchining joylashuvi yoki qurilmasidan qat'i nazar, ajoyib darajada unumdor va sezgir ilovalarni yaratishlari mumkin.
Xulosa
React'ning Concurrent Rendering Scheduler'i, o'zining murakkab kadr vaqti byudjetini boshqarish bilan, unumdor veb-ilovalarni yaratishda muhim bir oldinga sakrashni anglatadi. Ishni bo'lish, yangilanishlarni ustuvorlashtirish va o'tishlar va kechiktirilgan qiymatlar kabi xususiyatlarni yoqish orqali React murakkab renderlash operatsiyalari paytida ham foydalanuvchi interfeysi sezgir bo'lib qolishini ta'minlaydi.
Global auditoriya uchun bu texnologiya shunchaki optimallashtirish emas; bu zaruratdir. U turli xil tarmoq sharoitlari, qurilma imkoniyatlari va foydalanuvchi kutishlari natijasida yuzaga kelgan bo'shliqni to'ldiradi. Bir vaqtda renderlash xususiyatlaridan faol foydalanish, ma'lumotlarni qayta ishlashni optimallashtirish va profillash hamda sinovdan o'tkazish orqali unumdorlikka e'tibor qaratish bilan dasturchilar dunyo bo'ylab foydalanuvchilarni xursand qiladigan chinakam ajoyib foydalanuvchi tajribalarini yaratishlari mumkin.
React'ning scheduler'ini o'zlashtirish zamonaviy veb-dasturlashning to'liq salohiyatini ochishning kalitidir. Bir vaqtda renderlashni qabul qiling va hamma uchun tez, silliq va qulay ilovalar yarating.