Ismerje meg a React experimental_postpone funkciĂłját Ă©s a halasztott vĂ©grehajtásĂş memĂłriakezelĂ©st, hogy optimalizálhassa a renderelĂ©st Ă©s javĂthassa a komplex alkalmazások felhasználĂłi Ă©lmĂ©nyĂ©t.
TeljesĂtmĂ©ny felszabadĂtása: MĂ©lyrehatĂł betekintĂ©s a React experimental_postpone Ă©s a halasztott vĂ©grehajtásĂş memĂłria működĂ©sĂ©be
A React, a nĂ©pszerű JavaScript könyvtár a felhasználĂłi felĂĽletek kĂ©szĂtĂ©sĂ©hez, folyamatosan fejlĹ‘dik. Az egyik legĂşjabb Ă©s legĂ©rdekesebb fejlesztĂ©s az experimental_postpone funkciĂł, amely a halasztott vĂ©grehajtásĂş memĂłriakezelĂ©ssel egyĂĽtt Ăşj, hatĂ©kony mĂłdszereket kĂnál a renderelĂ©si teljesĂtmĂ©ny optimalizálására, kĂĽlönösen a komplex alkalmazások esetĂ©ben. Ez a cikk az experimental_postpone Ă©s a halasztott vĂ©grehajtás rejtelmeibe merĂĽl, elmagyarázva, hogyan működnek, milyen elĹ‘nyökkel járnak, Ă©s hogyan használhatja Ĺ‘ket simább, reszponzĂvabb felhasználĂłi Ă©lmĂ©ny megteremtĂ©sĂ©re egy globális közönsĂ©g számára.
A probléma megértése: A renderelés blokkolása
MielĹ‘tt a megoldásba belemerĂĽlnĂ©nk, kulcsfontosságĂş megĂ©rteni a problĂ©mát, amelyet az experimental_postpone kezel. A hagyományos React renderelĂ©s során a frissĂtĂ©sek gyakran szinkron mĂłdon kerĂĽlnek feldolgozásra. Ez azt jelenti, hogy ha egy komponens renderelĂ©se jelentĹ‘s idĹ‘t vesz igĂ©nybe (komplex számĂtások, nagy adathalmazok vagy hálĂłzati kĂ©rĂ©sek miatt), az blokkolhatja a fĹ‘ szálat, ami akadozĂł vagy nem reagálĂł felhasználĂłi felĂĽlethez vezet. Ez kĂĽlönösen Ă©szrevehetĹ‘ a korlátozott feldolgozási teljesĂtmĂ©nyű eszközökön vagy lassĂş hálĂłzati kapcsolatok esetĂ©n, amelyek a világ számos rĂ©szĂ©n gyakoriak.
VegyĂĽnk egy olyan forgatĂłkönyvet, ahol egy e-kereskedelmi platformot Ă©pĂt. A termĂ©k rĂ©szletes oldala a következĹ‘ket tartalmazza:
- Nagy felbontású kép galéria
- RĂ©szletes termĂ©kleĂrások
- Külső API-ból lekérdezett vásárlói vélemények
- Kapcsolódó termékek ajánlásai
Ha mindezen komponensek egyszerre prĂłbálnak renderelĹ‘dni, kĂĽlönösen, ha a vásárlĂłi vĂ©lemĂ©nyek lekĂ©rĂ©se idĹ‘be telik, az egĂ©sz oldal lefagyhat, amĂg az adatok betöltĹ‘dnek Ă©s feldolgozásra kerĂĽlnek. Ez rossz felhasználĂłi Ă©lmĂ©ny, ami frusztráciĂłhoz Ă©s potenciálisan elvesztett eladásokhoz vezet. KĂ©pzelje el, hogy egy indiai felhasználĂł lassabb internetkapcsolattal tapasztalja ezt a kĂ©slekedĂ©st – lehet, hogy teljesen elhagyja az oldalt.
A React Concurrent Mode és a Suspense bemutatása
Ezeknek a teljesĂtmĂ©nybeli kihĂvásoknak a kezelĂ©sĂ©re a React bevezette a Concurrent Mode-ot (elĂ©rhetĹ‘ a React 18-as Ă©s kĂ©sĹ‘bbi verziĂłiban). A Concurrent Mode lehetĹ‘vĂ© teszi a React számára, hogy megszakĂtsa, szĂĽneteltesse Ă©s folytassa a renderelĂ©si feladatokat, ezzel simább frissĂtĂ©seket Ă©s jobb reszponzivitást biztosĂtva. A Concurrent Mode kulcsfontosságĂş eleme a React Suspense, egy mechanizmus, amely lehetĹ‘vĂ© teszi egy komponens renderelĂ©sĂ©nek „felfĂĽggesztĂ©sĂ©t”, amĂg az aszinkron adatok betöltĹ‘dnek. A React Suspense lehetĹ‘vĂ© teszi aszinkron API hĂvások vĂ©grehajtását Ă©s a válasz „megvárását”, miközben tartalĂ©k tartalmat, pĂ©ldául egy töltĂ©sjelzĹ‘t mutat.
A React Suspense lehetĹ‘vĂ© teszi az aszinkron fĂĽggĹ‘sĂ©gek, pĂ©ldául API hĂvások vagy kĂ©pbetöltĂ©sek, becsomagolását egy tartalĂ©k komponenssel. AmĂg az adatok töltĹ‘dnek, a React a tartalĂ©k tartalmat jelenĂti meg, Ăgy a felhasználĂłi felĂĽlet reszponzĂv marad. Amint az adatok kĂ©szen állnak, a React zökkenĹ‘mentesen átvált a teljesen renderelt komponensre.
Például:
import React, { Suspense } from 'react';
function ProductDetails({ productId }) {
const product = useProduct(productId); // Custom hook to fetch product data
return (
<div>
<h2>{product.name}</h2>
<p>{product.description}</p>
<img src={product.imageUrl} alt={product.name} />
</div>
);
}
function ProductDetailsPage() {
return (
<Suspense fallback={<p>Loading product details...</p>}>
<ProductDetails productId="123" />
</Suspense>
);
}
export default ProductDetailsPage;
Ebben a pĂ©ldában a ProductDetails komponens egy Suspense komponensbe van csomagolva egy tartalĂ©kkal. AmĂg a useProduct hook lekĂ©ri a termĂ©kadatokat, a „TermĂ©kadatok betöltĂ©se...” tartalĂ©k szöveg jelenik meg. Amint az adatok rendelkezĂ©sre állnak, a ProductDetails komponens normálisan renderelĹ‘dik.
Az experimental_postpone szerepe
Bár a Suspense hatĂ©kony, nem mindig old meg minden teljesĂtmĂ©nybeli szűk keresztmetszetet. NĂ©ha elĹ‘fordulhat, hogy van egy komponens, ami renderelhetĹ‘ lenne, de az azonnali renderelĂ©se negatĂvan befolyásolná a felhasználĂłi Ă©lmĂ©nyt. Itt jön kĂ©pbe az experimental_postpone.
Az experimental_postpone egy olyan funkció, amely lehetővé teszi egy komponens renderelésének későbbre *halasztását*. Lényegében azt mondja a Reactnak, „Ez a komponens nem kritikus a kezdeti rendereléshez. Rendereld később, amikor a fő szál kevésbé foglalt.” Ez különösen hasznos lehet olyan komponenseknél, amelyek:
- A hajtás alatt vannak (a felhasználó számára nem azonnal láthatók)
- Nem létfontosságú tartalmat tartalmaznak
- SzámĂtásigĂ©nyes a renderelĂ©sĂĽk
Az experimental_postpone használata jelentĹ‘sen javĂthatja az alkalmazás Ă©rzĂ©kelt teljesĂtmĂ©nyĂ©t. A kritikus komponensek renderelĂ©sĂ©nek priorizálásával biztosĂthatja, hogy a felhasználĂł gyorsan lásson valamit, mĂ©g akkor is, ha az oldal más rĂ©szei mĂ©g a háttĂ©rben töltĹ‘dnek.
Hogyan működik az experimental_postpone
Az experimental_postpone funkciĂł egy visszahĂvást fogad el, amely egy React elemet ad vissza. A React ezután ĂĽtemezi ennek az elemnek a renderelĂ©sĂ©t, hogy kĂ©sĹ‘bb kerĂĽljön vĂ©grehajtásra, potenciálisan a kezdeti megjelenĂtĂ©s után. A halasztott renderelĂ©s pontos idĹ‘zĂtĂ©sĂ©t a React ĂĽtemezĹ‘je kezeli, Ă©s kĂĽlönbözĹ‘ tĂ©nyezĹ‘ktĹ‘l fĂĽgg, mint pĂ©ldául a rendelkezĂ©sre állĂł CPU idĹ‘ Ă©s más feladatok prioritása.
Íme egy egyszerű példa az experimental_postpone használatára:
import React, { unstable_postpone as postpone } from 'react';
function BelowTheFoldComponent() {
// This component contains content that's below the fold
return (
<div>
<p>This content will be rendered later.</p>
</div>
);
}
function MyComponent() {
return (
<div>
<h1>Critical Content</h1>
<p>This content is rendered immediately.</p>
{postpone(() => <BelowTheFoldComponent />)}
</div>
);
}
export default MyComponent;
Ebben a pĂ©ldában a BelowTheFoldComponent a MyComponent kezdeti renderelĂ©se után fog renderelĹ‘dni, javĂtva ezzel a kezdeti betöltĂ©si idĹ‘t.
Halasztott végrehajtású memória: A mögöttes mechanizmus megértése
Az experimental_postpone ereje a React halasztott végrehajtású memóriakezelésével való integrációjában rejlik. Amikor egy komponenst elhalasztanak, a React nem foglal azonnal memóriát a rendereléséhez. Ehelyett létrehoz egy helyőrzőt, és a tényleges renderelést későbbre ütemezi. Ennek a halasztott végrehajtásnak jelentős hatása van a memóriahasználatra.
A halasztott végrehajtású memória előnyei:
- Csökkentett kezdeti memĂłrialábnyom: A nem kritikus komponensek memĂłriafoglalásának kĂ©sleltetĂ©sĂ©vel az alkalmazás kezdeti memĂłrialábnyoma jelentĹ‘sen csökken. Ez kĂĽlönösen fontos a korlátozott memĂłriával rendelkezĹ‘ eszközökön, pĂ©ldául mobiltelefonokon vagy rĂ©gebbi számĂtĂłgĂ©peken. KĂ©pzelje el, hogy egy fejlĹ‘dĹ‘ országbeli felhasználĂł egy alacsony kategĂłriás okostelefonon Ă©ri el az alkalmazását – a halasztott vĂ©grehajtás hatalmas kĂĽlönbsĂ©get jelenthet az Ă©lmĂ©nyĂ©ben.
- JavĂtott indĂtási idĹ‘: A kisebb kezdeti memĂłrialábnyom gyorsabb indĂtási idĹ‘t eredmĂ©nyez. A böngĂ©szĹ‘nek kevesebb adatot kell betöltenie Ă©s feldolgoznia, ami gyorsabb interaktivitást eredmĂ©nyez. Ez a javĂtott indĂtási idĹ‘ növelheti a felhasználĂłi elkötelezĹ‘dĂ©st Ă©s csökkentheti a visszafordulási arányt.
- Simább görgetĂ©s Ă©s interakciĂłk: A hajtás alatti tartalom renderelĂ©sĂ©nek halasztásával a fĹ‘ szál kevĂ©sbĂ© terhelt, ami simább görgetĂ©st Ă©s interakciĂłkat eredmĂ©nyez. A felhasználĂłk reszponzĂvabb Ă©s gördĂĽlĂ©kenyebb felhasználĂłi felĂĽletet tapasztalnak, mĂ©g komplex oldalakon is.
- Jobb erĹ‘forrás-kihasználás: A halasztott vĂ©grehajtás lehetĹ‘vĂ© teszi a React számára, hogy priorizálja a kritikus komponensek renderelĂ©sĂ©t, biztosĂtva az erĹ‘források hatĂ©kony elosztását. Ez jobb általános teljesĂtmĂ©nyhez Ă©s csökkentett akkumulátor-fogyasztáshoz vezethet, kĂĽlönösen mobil eszközökön.
Bevált gyakorlatok az experimental_postpone és a halasztott végrehajtás használatához
Az experimental_postpone és a halasztott végrehajtás hatékony kihasználásához vegye figyelembe a következő bevált gyakorlatokat:
- AzonosĂtsa a nem kritikus komponenseket: Gondosan elemezze az alkalmazását, Ă©s azonosĂtsa azokat a komponenseket, amelyek nem nĂ©lkĂĽlözhetetlenek a kezdeti renderelĂ©shez. Ezek kiválĂł jelöltek a halasztásra. PĂ©ldák:
- Hajtás alatti tartalom
- Analitikai követőkódok
- Ritkán használt funkciók
- Komplex vizualizációk
- Használjon Suspense-t adatlekéréshez: Kombinálja az
experimental_postpone-t a Suspense-szel az aszinkron adatlekĂ©rĂ©s kezelĂ©sĂ©re. Ez lehetĹ‘vĂ© teszi egy töltĂ©si állapot megjelenĂtĂ©sĂ©t, amĂg az adatok lekĂ©rĂ©se folyamatban van, tovább javĂtva a felhasználĂłi Ă©lmĂ©nyt. - Profilozza az alkalmazását: Használja a React profilozĂł eszközeit a teljesĂtmĂ©nybeli szűk keresztmetszetek Ă©s azon terĂĽletek azonosĂtására, ahol az
experimental_postponea legnagyobb hatást Ă©rheti el. - Tesztelje kĂĽlönbözĹ‘ eszközökön Ă©s hálĂłzatokon: Alaposan tesztelje az alkalmazását kĂĽlönbözĹ‘ eszközökön Ă©s hálĂłzati körĂĽlmĂ©nyek között, hogy biztosĂtsa, a halasztott vĂ©grehajtás a várt teljesĂtmĂ©nyelĹ‘nyöket nyĂşjtja. Fontolja meg az emulált alacsony kategĂłriás eszközökön Ă©s lassĂş hálĂłzati kapcsolatokon törtĂ©nĹ‘ tesztelĂ©st, hogy szimulálja a valĂłs világbeli forgatĂłkönyveket a kĂĽlönbözĹ‘ rĂ©giĂłkban.
- Figyelje a memĂłriahasználatot: Tartsa szemmel a memĂłriahasználatot, hogy biztosĂtsa, a halasztott vĂ©grehajtás nem vezet memĂłriaszivárgáshoz vagy tĂşlzott memĂłriafogyasztáshoz az idĹ‘ mĂşlásával.
- Fokozatos javĂtás (Progressive Enhancement): Használja az
experimental_postpone-t a fokozatos javĂtás egy formájakĂ©nt. BiztosĂtsa, hogy az alkalmazása akkor is működĹ‘kĂ©pes maradjon, ha a halasztott komponensek nem renderelĹ‘dnek. - KerĂĽlje a tĂşlzott használatot: Bár az
experimental_postponehatĂ©kony eszköz lehet, kerĂĽlje a tĂşlzott használatát. TĂşl sok komponens halasztása töredezett felhasználĂłi Ă©lmĂ©nyhez Ă©s potenciálisan a teljesĂtmĂ©ny romlásához vezethet.
Gyakorlati példák: Gyakori UI minták optimalizálása
Nézzünk néhány gyakorlati példát arra, hogyan használhatjuk az experimental_postpone-t a gyakori UI minták optimalizálására:
1. Végtelen görgetésű listák
A vĂ©gtelen görgetĂ©sű listák gyakori UI minták nagy adathalmazok megjelenĂtĂ©sĂ©re. A lista összes elemĂ©nek egyszerre törtĂ©nĹ‘ renderelĂ©se nagyon költsĂ©ges lehet, kĂĽlönösen, ha minden elem kĂ©peket vagy komplex komponenseket tartalmaz. Az experimental_postpone használatával elhalaszthatja a nem azonnal láthatĂł elemek renderelĂ©sĂ©t.
import React, { useState, useEffect, unstable_postpone as postpone } from 'react';
function InfiniteScrollList() {
const [items, setItems] = useState([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
// Simulate fetching data from an API
setTimeout(() => {
setItems(generateDummyItems(50));
setLoading(false);
}, 1000);
}, []);
const generateDummyItems = (count) => {
const dummyItems = [];
for (let i = 0; i < count; i++) {
dummyItems.push({ id: i, name: `Item ${i}` });
}
return dummyItems;
};
return (
<div style={{ height: '300px', overflowY: 'scroll' }}>
{loading ? (
<p>Loading...</p>
) : (
items.map((item) =>
postpone(() => (
<div key={item.id} style={{ padding: '10px', borderBottom: '1px solid #ccc' }}>
{item.name}
</div>
))
)
)}
</div>
);
}
export default InfiniteScrollList;
Ebben a pĂ©ldában a lista minden eleme postpone-ba van csomagolva. Ez biztosĂtja, hogy csak a kezdetben láthatĂł elemek renderelĹ‘djenek azonnal, a többi pedig halasztva lesz. Ahogy a felhasználĂł lefelĂ© görget, a React fokozatosan rendereli a fennmaradĂł elemeket.
2. FĂĽles felĂĽletek
A fĂĽles felĂĽletek gyakran tartalmaznak olyan tartalmat, amely nem azonnal láthatĂł a felhasználĂł számára. Az inaktĂv fĂĽlek renderelĂ©sĂ©nek halasztása jelentĹ‘sen javĂthatja az oldal kezdeti betöltĂ©si idejĂ©t.
import React, { useState, unstable_postpone as postpone } from 'react';
function TabbedInterface() {
const [activeTab, setActiveTab] = useState('tab1');
const renderTabContent = (tabId) => {
switch (tabId) {
case 'tab1':
return <div>Content for Tab 1</div>;
case 'tab2':
return <div>Content for Tab 2</div>;
case 'tab3':
return <div>Content for Tab 3</div>;
default:
return null;
}
};
return (
<div>
<ul>
<li onClick={() => setActiveTab('tab1')}>Tab 1</li>
<li onClick={() => setActiveTab('tab2')}>Tab 2</li>
<li onClick={() => setActiveTab('tab3')}>Tab 3</li>
</ul>
{activeTab === 'tab1' ? renderTabContent('tab1') : postpone(() => renderTabContent('tab1'))}
{activeTab === 'tab2' ? renderTabContent('tab2') : postpone(() => renderTabContent('tab2'))}
{activeTab === 'tab3' ? renderTabContent('tab3') : postpone(() => renderTabContent('tab3'))}
</div>
);
}
export default TabbedInterface;
Ebben a pĂ©ldában csak az aktĂv fĂĽl tartalma renderelĹ‘dik azonnal. Az inaktĂv fĂĽlek tartalmát az experimental_postpone segĂtsĂ©gĂ©vel halasztjuk. Amikor a felhasználĂł egy másik fĂĽlre vált, annak a fĂĽlnek a tartalma fog renderelĹ‘dni.
Megfontolások és figyelmeztetések
Bár az experimental_postpone jelentĹ‘s teljesĂtmĂ©nyelĹ‘nyöket kĂnál, fontos tisztában lenni a korlátaival Ă©s lehetsĂ©ges hátrányaival:
- KĂsĂ©rleti státusz: Ahogy a neve is sugallja, az
experimental_postponeegy kĂsĂ©rleti funkciĂł. Az API-ja Ă©s viselkedĂ©se megváltozhat a jövĹ‘beli React kiadásokban. Ă“vatosan használja, Ă©s legyen kĂ©szen a kĂłdja szĂĽksĂ©g szerinti adaptálására. - Vizuális hibák lehetĹ‘sĂ©ge: A halasztott renderelĂ©s nĂ©ha vizuális hibákhoz vezethet, ha nem körĂĽltekintĹ‘en valĂłsĂtják meg. PĂ©ldául, ha egy halasztott komponenst a kezdeti megjelenĂtĂ©s után renderelnek, az enyhe elrendezĂ©sbeli eltolĂłdást okozhat.
- Hatás a SEO-ra: Ha az
experimental_postpone-t olyan tartalom renderelĂ©sĂ©nek halasztására használja, amely fontos a SEO szempontjábĂłl, az negatĂvan befolyásolhatja a keresĹ‘motoros helyezĂ©seit. BiztosĂtsa, hogy a kritikus tartalom szerveroldalon renderelĹ‘djön, vagy elĂ©g gyorsan renderelĹ‘djön ahhoz, hogy a keresĹ‘motorok feltĂ©rkĂ©pezĹ‘i indexelni tudják. - Komplexitás: Az
experimental_postponehasználata növeli a kĂłdbázis komplexitását. Fontos alaposan mĂ©rlegelni, hogy a teljesĂtmĂ©nyelĹ‘nyök felĂĽlmĂşlják-e a megnövekedett komplexitást.
Az experimental_postpone alternatĂvái
MielĹ‘tt az experimental_postpone-t használná, fontolja meg, hogy vannak-e alternatĂv megoldások, amelyek megfelelĹ‘bbek lehetnek az Ă–n specifikus felhasználási esetĂ©re:
- Kód felosztás (Code Splitting): A kód felosztása lehetővé teszi az alkalmazás kisebb csomagokra bontását, amelyek igény szerint tölthetők be. Ez jelentősen csökkentheti az alkalmazás kezdeti betöltési idejét.
- Lusta betöltĂ©s (Lazy Loading): A lusta betöltĂ©s lehetĹ‘vĂ© teszi a kĂ©pek Ă©s egyĂ©b eszközök betöltĂ©sĂ©t csak akkor, amikor szĂĽksĂ©g van rájuk. Ez javĂthatja a sok kĂ©pet tartalmazĂł oldalak teljesĂtmĂ©nyĂ©t.
- MemoizáciĂł: A memoizáciĂł egy technika a költsĂ©ges fĂĽggvĂ©nyhĂvások eredmĂ©nyeinek gyorsĂtĂłtárazására. Ez javĂthatja a gyakran azonos props-okkal ĂşjrarenderelĹ‘dĹ‘ komponensek teljesĂtmĂ©nyĂ©t.
- Szerveroldali renderelĂ©s (SSR): Az SSR lehetĹ‘vĂ© teszi az alkalmazás szerveren törtĂ©nĹ‘ renderelĂ©sĂ©t Ă©s a teljesen renderelt HTML elkĂĽldĂ©sĂ©t a kliensnek. Ez javĂthatja az alkalmazás kezdeti betöltĂ©si idejĂ©t Ă©s SEO-ját.
A React teljesĂtmĂ©nyoptimalizálás jövĹ‘je
Az experimental_postpone Ă©s a halasztott vĂ©grehajtásĂş memĂłriakezelĂ©s jelentĹ‘s elĹ‘relĂ©pĂ©st jelentenek a React teljesĂtmĂ©nyoptimalizálásában. Ahogy a React tovább fejlĹ‘dik, mĂ©g hatĂ©konyabb eszközökre Ă©s technikákra számĂthatunk a nagy teljesĂtmĂ©nyű felhasználĂłi felĂĽletek Ă©pĂtĂ©sĂ©hez. Ezen fejlesztĂ©sekkel kapcsolatos tájĂ©kozottság Ă©s az Ăşj funkciĂłkkal valĂł kĂsĂ©rletezĂ©s kulcsfontosságĂş lesz a modern, reszponzĂv webalkalmazások Ă©pĂtĂ©sĂ©hez, amelyek nagyszerű felhasználĂłi Ă©lmĂ©nyt nyĂşjtanak egy globális közönsĂ©g számára.
Összegzés
A React experimental_postpone funkciĂłja, a halasztott vĂ©grehajtásĂş memĂłriakezelĂ©ssel párosĂtva, hatĂ©kony mechanizmust biztosĂt a renderelĂ©si teljesĂtmĂ©ny optimalizálására Ă©s a felhasználĂłi Ă©lmĂ©ny javĂtására, kĂĽlönösen a komplex alkalmazások esetĂ©ben. A nem kritikus komponensek renderelĂ©sĂ©nek stratĂ©giai halasztásával csökkentheti a kezdeti memĂłrialábnyomot, javĂthatja az indĂtási idĹ‘t, Ă©s simább, reszponzĂvabb felhasználĂłi felĂĽletet hozhat lĂ©tre. Bár az experimental_postpone mĂ©g kĂsĂ©rleti funkciĂł Ă©s gondos mĂ©rlegelĂ©st igĂ©nyel, ĂgĂ©retes megközelĂtĂ©st kĂnál a nagy teljesĂtmĂ©nyű React alkalmazások Ă©pĂtĂ©sĂ©hez egy globális, kĂĽlönbözĹ‘ eszközökkel Ă©s hálĂłzati feltĂ©telekkel rendelkezĹ‘ közönsĂ©g számára. Ne felejtse el profilozni az alkalmazását, alaposan tesztelni Ă©s figyelni a memĂłriahasználatot, hogy biztosĂtsa a kĂvánt teljesĂtmĂ©nyelĹ‘nyök elĂ©rĂ©sĂ©t anĂ©lkĂĽl, hogy nem szándĂ©kolt mellĂ©khatásokat vezetne be. Ahogy a React tovább fejlĹ‘dik, ezen Ăşj technikák elsajátĂtása elengedhetetlen lesz a kivĂ©teles felhasználĂłi Ă©lmĂ©nyek nyĂşjtásához.