Išnagrinėkite React „Concurrent Mode“ ir pertraukiamą atvaizdavimą. Sužinokite, kaip ši paradigmų kaita gerina programėlių našumą, jautrumą ir vartotojo patirtį visame pasaulyje.
React „Concurrent Mode“: Pertraukiamo Atvaizdavimo Įvaldymas Siekiant Geresnės Vartotojo Patirties
Nuolat besikeičiančioje front-end kūrimo aplinkoje vartotojo patirtis (UX) yra svarbiausia. Vartotojai visame pasaulyje tikisi, kad programėlės veiks greitai, sklandžiai ir reaguos į veiksmus, nepriklausomai nuo jų įrenginio, tinklo sąlygų ar atliekamos užduoties sudėtingumo. Tradiciniai atvaizdavimo mechanizmai tokiose bibliotekose kaip React dažnai sunkiai atitinka šiuos reikalavimus, ypač vykdant daug resursų reikalaujančias operacijas arba kai dėl naršyklės dėmesio konkuruoja keli atnaujinimai. Būtent čia įsikiša React „Concurrent Mode“ (dabar dažnai vadinamas tiesiog lygiagretumu React'e), pristatydamas revoliucinę koncepciją: pertraukiamą atvaizdavimą. Šiame tinklaraščio įraše gilinamasi į „Concurrent Mode“ subtilybes, aiškinama, ką reiškia pertraukiamas atvaizdavimas, kodėl tai keičia žaidimo taisykles ir kaip galite jį panaudoti kuriant išskirtinę vartotojo patirtį pasaulinei auditorijai.
Tradicinio Atvaizdavimo Apribojimų Supratimas
Prieš pasineriant į „Concurrent Mode“ privalumus, svarbu suprasti iššūkius, kuriuos kelia tradicinis, sinchroninis atvaizdavimo modelis, kurį React istoriškai naudojo. Sinchroniniame modelyje React apdoroja vartotojo sąsajos (UI) atnaujinimus po vieną, blokuojančiu būdu. Įsivaizduokite savo programėlę kaip vienos eismo juostos greitkelį. Kai prasideda atvaizdavimo užduotis, ji turi užbaigti savo kelionę, kol gali prasidėti bet kuri kita užduotis. Tai gali sukelti keletą vartotojo patirtį trikdančių problemų:
- UI Užšalimas: Jei sudėtingo komponento atvaizdavimas užtrunka ilgai, visa vartotojo sąsaja gali tapti nereaguojanti. Vartotojai gali paspausti mygtuką, bet ilgą laiką niekas nevyksta, kas sukelia nusivylimą.
- Praleisti Kadrai: Vykdant sunkias atvaizdavimo užduotis, naršyklė gali neturėti pakankamai laiko nupiešti ekrano tarp kadrų, todėl animacijos patirtis tampa trūkinėjanti ir nelygi. Tai ypač pastebima reikliose animacijose ar perėjimuose.
- Prastas Reagavimas: Net jei pagrindinis atvaizdavimas blokuoja, vartotojai vis tiek gali sąveikauti su kitomis programėlės dalimis. Tačiau, jei pagrindinis srautas yra užimtas, šios sąveikos gali būti atidėtos arba ignoruojamos, todėl programėlė atrodo lėta.
- Neefektyvus Resursų Naudojimas: Kol viena užduotis yra atvaizduojama, kitos, potencialiai aukštesnio prioriteto, užduotys gali laukti, net jei dabartinę atvaizdavimo užduotį būtų galima pristabdyti ar nutraukti.
Apsvarstykite įprastą scenarijų: vartotojas rašo į paieškos laukelį, o fone yra gaunamas ir atvaizduojamas didelis duomenų sąrašas. Sinchroniniame modelyje sąrašo atvaizdavimas gali blokuoti paieškos laukelio įvesties tvarkytuvą, todėl rašymo patirtis tampa vėluojanti. Dar blogiau, jei sąrašas yra itin didelis, visa programėlė gali atrodyti užšalusi, kol atvaizdavimas nebus baigtas.
Pristatome „Concurrent Mode“: Paradigmų Kaita
„Concurrent Mode“ nėra funkcija, kurią „įjungiate“ tradicine prasme; veikiau tai naujas React veikimo režimas, kuris įgalina tokias funkcijas kaip pertraukiamas atvaizdavimas. Iš esmės, lygiagretumas leidžia React valdyti kelias atvaizdavimo užduotis vienu metu ir prireikus jas pertraukti, pristabdyti ir atnaujinti. Tai pasiekiama per sudėtingą planuoklį, kuris nustato atnaujinimų prioritetus pagal jų skubumą ir svarbą.
Vėl pagalvokite apie mūsų greitkelio analogiją, bet šį kartą su keliomis eismo juostomis ir eismo valdymu. „Concurrent Mode“ pristato protingą eismo reguliuotoją, kuris gali:
- Nustatyti Juostų Prioritetus: Nukreipti skubų eismą (pvz., vartotojo įvestį) į laisvas juostas.
- Pristabdyti ir Atnaujinti: Laikinai sustabdyti lėtai judantį, mažiau skubų transportą (ilgą atvaizdavimo užduotį), kad praleistų greitesnius, svarbesnius automobilius.
- Keisti Juostas: Sklandžiai perjungti dėmesį tarp skirtingų atvaizdavimo užduočių, atsižvelgiant į besikeičiančius prioritetus.
Šis esminis perėjimas nuo sinchroninio, vieno po kito apdorojimo prie asinchroninio, prioritetizuoto užduočių valdymo yra pertraukiamo atvaizdavimo esmė.
Kas yra Pertraukiamas Atvaizdavimas?
Pertraukiamas atvaizdavimas yra React gebėjimas pristabdyti atvaizdavimo užduotį jos vykdymo viduryje ir atnaujinti ją vėliau, arba atsisakyti iš dalies atvaizduoto rezultato vardan naujesnio, aukštesnio prioriteto atnaujinimo. Tai reiškia, kad ilgai trunkanti atvaizdavimo operacija gali būti suskaidyta į mažesnes dalis, o React gali persijungti tarp šių dalių ir kitų užduočių (pvz., reaguoti į vartotojo įvestį) pagal poreikį.
Pagrindinės koncepcijos, įgalinančios pertraukiamą atvaizdavimą, yra šios:
- Laiko Skirstymas (Time Slicing): React gali skirti „laiko atkarpą“ atvaizdavimo užduotims. Jei užduotis viršija skirtą laiko atkarpą, React gali ją pristabdyti ir atnaujinti vėliau, neleisdamas jai blokuoti pagrindinio srauto.
- Prioritetizavimas: Planuoklis priskiria prioritetus skirtingiems atnaujinimams. Vartotojo sąveikos (pvz., rašymas ar paspaudimas) paprastai turi aukštesnį prioritetą nei fone vykdomas duomenų gavimas ar mažiau kritiški UI atnaujinimai.
- Užgrobimas (Preemption): Aukštesnio prioriteto atnaujinimas gali pertraukti žemesnio prioriteto atnaujinimą. Pavyzdžiui, jei vartotojas rašo į paieškos laukelį, kol atvaizduojamas didelis komponentas, React gali pristabdyti komponento atvaizdavimą, apdoroti vartotojo įvestį, atnaujinti paieškos laukelį ir vėliau potencialiai atnaujinti komponento atvaizdavimą.
Šis gebėjimas „pertraukti“ ir „atnaujinti“ yra tai, kas daro React lygiagretumą tokį galingą. Tai užtikrina, kad UI išliktų reaguojanti ir kad kritinės vartotojo sąveikos būtų tvarkomos greitai, net kai programėlė atlieka sudėtingas atvaizdavimo užduotis.
Pagrindinės Funkcijos ir Kaip Jos Įgalina Lygiagretumą
„Concurrent Mode“ atveria keletą galingų funkcijų, kurios remiasi pertraukiamo atvaizdavimo pagrindu. Išnagrinėkime keletą svarbiausių iš jų:
1. „Suspense“ Duomenų Gavimui
„Suspense“ yra deklaratyvus būdas tvarkyti asinchronines operacijas, tokias kaip duomenų gavimas, jūsų React komponentuose. Anksčiau kelių asinchroninių operacijų įkėlimo būsenų valdymas galėjo tapti sudėtingas ir sukelti įdėtą sąlyginį atvaizdavimą. „Suspense“ tai ženkliai supaprastina.
Kaip tai veikia su lygiagretumu: Kai komponentas, naudojantis „Suspense“, turi gauti duomenis, jis „sustabdo“ atvaizdavimą ir rodo atsarginę UI (pvz., įkėlimo suktuką). React planuoklis gali pristabdyti šio komponento atvaizdavimą, neblokuodamas likusios UI dalies. Tuo tarpu jis gali apdoroti kitus atnaujinimus ar vartotojo sąveikas. Kai duomenys gaunami, komponentas gali atnaujinti atvaizdavimą su tikraisiais duomenimis. Šis pertraukiamas pobūdis yra kritiškai svarbus; React neužstringa laukdamas duomenų.
Pasaulinis pavyzdys: Įsivaizduokite pasaulinę e. prekybos platformą, kurioje vartotojas Tokijuje naršo produkto puslapį. Tuo pačiu metu vartotojas Londone deda prekę į krepšelį, o kitas vartotojas Niujorke ieško produkto. Jei produkto puslapiui Tokijuje reikia gauti išsamias specifikacijas, kas užtrunka kelias sekundes, „Suspense“ leidžia likusiai programėlės daliai (pvz., krepšeliui Londone ar paieškai Niujorke) išlikti visiškai reaguojančiai. React gali pristabdyti Tokijo produkto puslapio atvaizdavimą, apdoroti Londono krepšelio atnaujinimą ir Niujorko paiešką, o tada atnaujinti Tokijo puslapį, kai jo duomenys bus paruošti.
Kodo Pavyzdys (Iliustracinis):
// Įsivaizduokime fetchData funkciją, kuri grąžina Promise
function fetchUserData() {
return new Promise(resolve => {
setTimeout(() => {
resolve({ name: 'Alice' });
}, 2000);
});
}
// Hipotetinis Suspense palaikantis duomenų gavimo kabliukas
function useUserData() {
const data = fetch(url);
if (data.status === 'pending') {
throw new Promise(resolve => {
// Būtent tai perima Suspense
setTimeout(() => resolve(null), 2000);
});
}
return data.value;
}
function UserProfile() {
const userData = useUserData(); // Šis iškvietimas gali sustabdyti
return Sveiki, {userData.name}!;
}
function App() {
return (
Kraunamas vartotojas...
2. Automatinis Grupavimas (Batching)
Grupavimas yra procesas, kai keli būsenos atnaujinimai sujungiami į vieną perpiešimą. Tradiciškai React grupavo tik tuos atnaujinimus, kurie įvykdavo įvykių tvarkytuvuose. Atnaujinimai, inicijuoti ne įvykių tvarkytuvuose (pvz., per „promises“ ar `setTimeout`), nebuvo grupuojami, kas sukeldavo nereikalingus perpiešimus.
Kaip tai veikia su lygiagretumu: Su „Concurrent Mode“ React automatiškai grupuoja visus būsenos atnaujinimus, nepriklausomai nuo jų kilmės. Tai reiškia, kad jei turite kelis būsenos atnaujinimus, vykstančius greitai vienas po kito (pvz., iš kelių užsibaigusių asinchroninių operacijų), React juos sujungs ir atliks vieną perpiešimą, taip pagerindamas našumą ir sumažindamas kelių atvaizdavimo ciklų pridėtines išlaidas.
Pavyzdys: Tarkime, gaunate duomenis iš dviejų skirtingų API. Kai abu procesai baigiasi, atnaujinate dvi atskiras būsenos dalis. Senesnėse React versijose tai galėtų sukelti du perpiešimus. „Concurrent Mode“ režime šie atnaujinimai yra grupuojami, todėl atliekamas vienas, efektyvesnis perpiešimas.
3. Perėjimai (Transitions)
Perėjimai yra nauja koncepcija, pristatyta siekiant atskirti skubius ir ne skubius atnaujinimus. Tai yra pagrindinis mechanizmas, įgalinantis pertraukiamą atvaizdavimą.
Skubūs Atnaujinimai: Tai atnaujinimai, reikalaujantys neatidėliotino grįžtamojo ryšio, pavyzdžiui, rašymas į įvesties laukelį, mygtuko paspaudimas ar tiesioginis UI elementų manipuliavimas. Jie turėtų jaustis akimirksniu.
Perėjimo Atnaujinimai: Tai atnaujinimai, kurie gali užtrukti ilgiau ir nereikalauja neatidėliotino grįžtamojo ryšio. Pavyzdžiai apima naujo puslapio atvaizdavimą paspaudus nuorodą, didelio sąrašo filtravimą ar susijusių UI elementų atnaujinimą, kurie tiesiogiai nereaguoja į paspaudimą. Šie atnaujinimai gali būti pertraukti.
Kaip tai veikia su lygiagretumu: Naudodami `startTransition` API, galite pažymėti tam tikrus būsenos atnaujinimus kaip perėjimus. React planuoklis tada traktuos šiuos atnaujinimus su žemesniu prioritetu ir galės juos pertraukti, jei įvyks skubesnis atnaujinimas. Tai užtikrina, kad kol vyksta ne skubus atnaujinimas (pvz., didelio sąrašo atvaizdavimas), skubūs atnaujinimai (pvz., rašymas į paieškos laukelį) yra prioritetizuojami, išlaikant UI reaguojančią.
Pasaulinis pavyzdys: Apsvarstykite kelionių rezervavimo svetainę. Kai vartotojas pasirenka naują kelionės tikslą, tai gali sukelti atnaujinimų kaskadą: skrydžių duomenų gavimą, viešbučių prieinamumo atnaujinimą ir žemėlapio atvaizdavimą. Jei vartotojas iškart nusprendžia pakeisti kelionės datas, kol pradiniai atnaujinimai dar apdorojami, `startTransition` API leidžia React pristabdyti skrydžių/viešbučių atnaujinimus, apdoroti skubų datos pakeitimą, o tada potencialiai atnaujinti ar iš naujo inicijuoti skrydžių/viešbučių gavimą pagal naujas datas. Tai apsaugo UI nuo užšalimo sudėtingos atnaujinimų sekos metu.
Kodo Pavyzdys (Iliustracinis):
import { useState, useTransition } from 'react';
function SearchResults() {
const [isPending, startTransition] = useTransition();
const [query, setQuery] = useState('');
const [results, setResults] = useState([]);
const handleQueryChange = (e) => {
const newQuery = e.target.value;
setQuery(newQuery);
// Pažymime šį atnaujinimą kaip perėjimą
startTransition(() => {
// Simuliuojame rezultatų gavimą, tai gali būti pertraukta
fetchResults(newQuery).then(res => setResults(res));
});
};
return (
{isPending && Kraunami rezultatai...}
{results.map(item => (
- {item.name}
))}
);
}
4. Bibliotekų ir Ekosistemos Integracija
„Concurrent Mode“ privalumai neapsiriboja React pagrindinėmis funkcijomis. Visa ekosistema prisitaiko. Bibliotekos, kurios sąveikauja su React, tokios kaip maršrutizavimo sprendimai ar būsenos valdymo įrankiai, taip pat gali pasinaudoti lygiagretumu, kad suteiktų sklandesnę patirtį.
Pavyzdys: Maršrutizavimo biblioteka gali naudoti perėjimus naršymui tarp puslapių. Jei vartotojas išeina iš puslapio, kol dabartinis puslapis dar nėra visiškai atvaizduotas, maršrutizavimo atnaujinimas gali būti sklandžiai pertrauktas ar atšauktas, o nauja navigacija gali įgyti pirmenybę. Tai užtikrina, kad vartotojas visada matytų naujausią vaizdą, kurį ketino pamatyti.
Kaip Įjungti ir Naudoti Lygiagretumo Funkcijas
Nors „Concurrent Mode“ yra esminis pokytis, jo funkcijų įjungimas paprastai yra nesudėtingas ir dažnai reikalauja minimalių kodo pakeitimų, ypač naujoms programėlėms arba diegiant tokias funkcijas kaip „Suspense“ ir „Transitions“.
1. React Versija
Lygiagretumo funkcijos yra prieinamos React 18 ir naujesnėse versijose. Įsitikinkite, kad naudojate suderinamą versiją:
npm install react@latest react-dom@latest
2. Šakninis API (`createRoot`)
Pagrindinis būdas pasirinkti lygiagretumo funkcijas yra naudoti naują `createRoot` API, kai montuojate savo programėlę:
// index.js arba main.jsx
import ReactDOM from 'react-dom/client';
import App from './App';
const container = document.getElementById('root');
const root = ReactDOM.createRoot(container);
root.render( );
Naudojant `createRoot` automatiškai įjungiamos visos lygiagretumo funkcijos, įskaitant automatinį grupavimą, perėjimus ir „Suspense“.
Pastaba: Senesnis `ReactDOM.render` API nepalaiko lygiagretumo funkcijų. Perėjimas prie `createRoot` yra pagrindinis žingsnis norint atrakinti lygiagretumą.
3. „Suspense“ Įgyvendinimas
Kaip parodyta anksčiau, „Suspense“ yra įgyvendinamas apgaubiant komponentus, atliekančius asinchronines operacijas, `<Suspense>` riba ir pateikiant `fallback` parametrą.
Gerosios Praktikos:
- Įdėkite `<Suspense>` ribas, kad galėtumėte detaliai valdyti įkėlimo būsenas.
- Naudokite pasirinktinius kabliukus (custom hooks), kurie integruojasi su „Suspense“, kad duomenų gavimo logika būtų švaresnė.
- Apsvarstykite galimybę naudoti bibliotekas, tokias kaip Relay ar Apollo Client, kurios turi aukščiausio lygio palaikymą „Suspense“.
4. Perėjimų Naudojimas (`startTransition`)
Identifikuokite ne skubius UI atnaujinimus ir apgaubkite juos `startTransition`.
Kada naudoti:
- Atnaujinant paieškos rezultatus po vartotojo įvesties.
- Naviguojant tarp maršrutų.
- Filtruojant didelius sąrašus ar lenteles.
- Kraunant papildomus duomenis, kurie neturi tiesioginio poveikio vartotojo sąveikai.
Pavyzdys: Sudėtingam didelio duomenų rinkinio filtravimui lentelėje, jūs nustatytumėte filtro užklausos būseną ir tada iškviestumėte `startTransition` faktiniam lentelės eilučių filtravimui ir perpiešimui. Tai užtikrina, kad jei vartotojas greitai vėl pakeis filtro kriterijus, ankstesnė filtravimo operacija gali būti saugiai pertraukta.
Pertraukiamo Atvaizdavimo Privalumai Pasaulinei Auditorijai
Pertraukiamo atvaizdavimo ir „Concurrent Mode“ privalumai sustiprėja atsižvelgiant į pasaulinę vartotojų bazę su įvairiomis tinklo sąlygomis ir įrenginių galimybėmis.
- Pagerintas Juntamas Našumas: Net esant lėtesniam ryšiui ar mažiau galingiems įrenginiams, UI išlieka reaguojanti. Vartotojai patiria greitesnę programėlę, nes kritinės sąveikos niekada nėra ilgam blokuojamos.
- Padidintas Prieinamumas: Suteikiant prioritetą vartotojo sąveikoms, programėlės tampa prieinamesnės vartotojams, kurie naudojasi pagalbinėmis technologijomis arba turi kognityvinių sutrikimų, kuriems naudinga nuosekliai reaguojanti sąsaja.
- Sumažintas Nusivylimas: Pasauliniai vartotojai, dažnai veikiantys skirtingose laiko juostose ir su skirtingomis techninėmis sąrankomis, vertina programėles, kurios neužšąla ar nevėluoja. Sklandi UX lemia didesnį įsitraukimą ir pasitenkinimą.
- Geresnis Resursų Valdymas: Mobiliuosiuose įrenginiuose ar senesnėje aparatinėje įrangoje, kur CPU ir atmintis dažnai yra riboti, pertraukiamas atvaizdavimas leidžia React efektyviai valdyti resursus, pristabdant neesmines užduotis, kad būtų vietos kritinėms.
- Nuosekli Patirtis Įvairiuose Įrenginiuose: Nesvarbu, ar vartotojas naudojasi aukščiausios klasės staliniu kompiuteriu Silicio slėnyje, ar biudžetiniu išmaniuoju telefonu Pietryčių Azijoje, pagrindinis programėlės reagavimas gali būti išlaikytas, taip sumažinant atotrūkį tarp aparatinės įrangos ir tinklo galimybių.
Apsvarstykite kalbų mokymosi programėlę, kurią naudoja studentai visame pasaulyje. Jei vienas studentas siunčiasi naują pamoką (potencialiai ilga užduotis), o kitas bando atsakyti į greitą žodyno klausimą, pertraukiamas atvaizdavimas užtikrina, kad žodyno klausimas būtų atsakytas akimirksniu, net jei siuntimas tebevyksta. Tai yra labai svarbu edukacinėms priemonėms, kur tiesioginis grįžtamasis ryšys yra gyvybiškai svarbus mokymuisi.
Galimi Iššūkiai ir Svarstymai
Nors „Concurrent Mode“ siūlo reikšmingų privalumų, jo pritaikymas taip pat reikalauja mokymosi ir tam tikrų svarstymų:
- Derinimas (Debugging): Derinti asinchronines ir pertraukiamas operacijas gali būti sudėtingiau nei derinti sinchroninį kodą. Suprasti vykdymo eigą ir kada užduotys gali būti pristabdytos ar atnaujintos reikalauja atidaus dėmesio.
- Mentalinio Modelio Pokytis: Programuotojai turi pritaikyti savo mąstymą nuo grynai nuoseklaus vykdymo modelio prie labiau lygiagretaus, įvykiais pagrįsto požiūrio. Svarbu suprasti `startTransition` ir „Suspense“ pasekmes.
- Išorinės Bibliotekos: Ne visos trečiųjų šalių bibliotekos yra atnaujintos, kad būtų suderinamos su lygiagretumu. Naudojant senesnes bibliotekas, kurios atlieka blokuojančias operacijas, vis tiek gali atsirasti UI užšalimų. Svarbu užtikrinti, kad jūsų priklausomybės būtų suderinamos.
- Būsenos Valdymas: Nors React integruotos lygiagretumo funkcijos yra galingos, sudėtingi būsenos valdymo scenarijai gali reikalauti atidaus apsvarstymo, siekiant užtikrinti, kad visi atnaujinimai būtų tvarkomi teisingai ir efektyviai lygiagretumo paradigmoje.
React Lygiagretumo Ateitis
React kelionė į lygiagretumą tęsiasi. Komanda toliau tobulina planuoklį, pristato naujus API ir gerina programuotojo patirtį. Funkcijos, tokios kaip Offscreen API (leidžianti komponentus atvaizduoti nepažeidžiant vartotojo matomos UI, naudinga išankstiniam atvaizdavimui ar fono užduotims), toliau plečia galimybes, kurias galima pasiekti su lygiagrečiu atvaizdavimu.
Kadangi internetas tampa vis sudėtingesnis, o vartotojų lūkesčiai dėl našumo ir reagavimo nuolat auga, lygiagretus atvaizdavimas tampa ne tik optimizavimu, bet ir būtinybe kuriant modernias, įtraukiančias programėles, skirtas pasaulinei auditorijai.
Išvada
React „Concurrent Mode“ ir jo pagrindinė pertraukiamo atvaizdavimo koncepcija yra reikšminga evoliucija, kaip mes kuriame vartotojo sąsajas. Suteikdami React galimybę pristabdyti, atnaujinti ir nustatyti prioritetus atvaizdavimo užduotims, galime kurti programėles, kurios yra ne tik našios, bet ir neįtikėtinai reaguojančios bei atsparios, net esant didelei apkrovai ar ribotose aplinkose.
Pasaulinei auditorijai tai reiškia teisingesnę ir malonesnę vartotojo patirtį. Nesvarbu, ar jūsų vartotojai prieina prie jūsų programėlės iš greitaeigio šviesolaidinio ryšio Europoje, ar iš mobiliojo tinklo besivystančioje šalyje, „Concurrent Mode“ padeda užtikrinti, kad jūsų programėlė jaustųsi greita ir sklandi.
Priimti tokias funkcijas kaip „Suspense“ ir „Transitions“ bei pereiti prie naujojo Root API yra esminiai žingsniai siekiant išnaudoti visą React potencialą. Suprasdami ir taikydami šias koncepcijas, galite kurti naujos kartos interneto programėles, kurios tikrai džiugins vartotojus visame pasaulyje.
Pagrindinės Išvados:
- React „Concurrent Mode“ leidžia pertraukiamą atvaizdavimą, išsilaisvinant iš sinchroninio blokavimo.
- Tokios funkcijos kaip „Suspense“, automatinis grupavimas ir „Transitions“ yra sukurtos ant šio lygiagretumo pagrindo.
- Naudokite `createRoot`, kad įjungtumėte lygiagretumo funkcijas.
- Identifikuokite ir pažymėkite ne skubius atnaujinimus su `startTransition`.
- Lygiagretus atvaizdavimas žymiai pagerina UX pasauliniams vartotojams, ypač esant skirtingoms tinklo sąlygoms ir įrenginiams.
- Sekite naujausias React lygiagretumo funkcijas, kad pasiektumėte optimalų našumą.
Pradėkite tyrinėti „Concurrent Mode“ savo projektuose jau šiandien ir kurkite greitesnes, labiau reaguojančias ir malonesnes programėles visiems.