Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

Ako vývojár React alebo React Native je dôležité pochopiť koncept kontajnerových a prezentačných komponentov.

Tieto dizajnové vzory pomáhajú pri správnom oddelení obáv. Tento koncept môžete použiť na zabezpečenie toho, aby ste svoj kód štruktúrovali lepšie udržiavateľným a škálovateľným spôsobom.

Čo sú komponenty kontajnera?

Komponenty kontajnera, známe aj ako inteligentné komponenty, sú zodpovedné za správu údajov a logiky vo vašej aplikácii. Zaoberajú sa úlohami, ako je načítanie údajov z rozhrania API, aktualizácia stavu a spracovanie interakcií používateľov.

Na implementáciu tejto štruktúry môžete použiť knižnica, ako je React-Redux na pripojenie vašich komponentov k obchodu a odovzdanie údajov a akcií vašim podriadeným komponentom alebo prezentačným komponentom.

Čo sú to prezentačné komponenty?

Prezentačné komponenty sú zodpovedné za zobrazovanie údajov zo svojich nadradených komponentov. Často sú bez štátnej príslušnosti a zameriavajú sa na používateľské rozhranie a vizuálnu reprezentáciu údajov.

instagram viewer

Tento stav uľahčuje manipuláciu a testovanie, čím si vyslúžili meno hlúpych komponentov. Blbý stav prezentačných komponentov vám umožňuje ich opätovné použitie v celej vašej aplikácii. Vyhnete sa tak mizernému a opakujúcemu sa kódu.

Prečo používať kontajnerové a prezentačné komponenty?

Krátka a jednoduchá odpoveď na otázku znie: Oddelenie obáv. Toto je kľúčový princíp v niekoľkých paradigmách, vrátane objektovo orientovaného, ​​funkčného a aspektovo orientovaného programovania. Mnohí vývojári Reactu však majú tendenciu ignorovať tieto koncepty a rozhodnú sa písať kód, ktorý jednoducho funguje.

Kód, ktorý jednoducho funguje, je skvelý, kým neprestane fungovať. Zle organizovaný kód sa ťažšie udržiava a aktualizuje. To môže sťažiť pridávanie nových funkcií alebo privádzanie ďalších programátorov do práce na projekte. Oprava týchto problémov, ktoré už boli vytvorené, je pracovná záťaž a je lepšie im predchádzať hneď od začiatku.

Použitie vzoru dizajnu kontajnerov a prezentačných komponentov zaistí, že každý komponent v rámci vášho projektu bude mať jasnú úlohu, ktorú zvládne. Dosiahne sa tak modulárna štruktúra, v ktorej sa každý optimalizovaný komponent spája a dopĺňa vašu aplikáciu.

Vaše komponenty sa môžu stále prekrývať; rozdelenie povinností medzi kontajner a prezentačný komponent nie je vždy zreteľné. Vo všeobecnosti by ste však mali svoje prezentačné komponenty zamerať na vizuálne údaje a komponenty kontajnera na údaje a logiku.

Ako používať kontajnerové a prezentačné komponenty v React Native

V typickej aplikácii React Native je bežné vytvárať komponenty, ktoré obsahujú prezentačný aj logický kód. Môžete načítať údaje z API, spravovať stav formulára a zobraziť výstup všetko v jednej triede. Zvážte jednoduchú aplikáciu, ktorá vám pomôže načítať zoznam používateľov z rozhrania API a zobraziť ich mená a vek.

Môžete to urobiť s jedným komponentom, ale výsledkom bude kód, ktorý sa ťažko číta, nedá sa opakovane použiť a ťažšie sa testuje a udržiava.

Napríklad:

importovať Reaguj, { useState, useEffect } od'reagovať';
importovať { View, Text, FlatList } od„react-native“;

konšt UserList = () => {
konšt [users, setUsers] = useState([]);

useEffect(() => {
konšt fetchUsers = async () => {
konšt odpoveď = čakať priniesť (' https://example.com/users');
konšt údaje = čakať response.json();
setUsers (údaje);
};

fetchUsers();
}, []);

vrátiť (
data={users}
keyExtractor={item => item.id}
renderItem={({ item }) => (

Názov: {item.name}</Text>
Vek: {item.age}</Text>
</View>
)}
/>
);
};

exportpredvolená UserList;

V tomto príklade UserList je zodpovedný za riadenie stavu vstupného poľa, získavanie údajov z API a vykresľovanie údajov.

Lepší a efektívnejší spôsob implementácie je rozdeliť logiku v UserList na komponenty prezentácie a kontajnera.

Môžete vytvoriť a UserListContainer komponent, ktorý je zodpovedný za získavanie a správu užívateľských údajov. Potom môže tieto údaje odovzdať prezentačnému komponentu, UserList, ako rekvizita.

importovať Reaguj, { useState, useEffect } od'reagovať';

// Komponent kontajnera
konšt UserListContainer = () => {
konšt [users, setUsers] = useState([]);

useEffect(() => {
konšt fetchUsers = async () => {
konšt odpoveď = čakať priniesť (' https://example.com/users');
konšt údaje = čakať response.json();
setUsers (údaje);
};

fetchUsers();
}, []);

vrátiť<UserListpoužívateľov={users} />;
};

exportpredvolená UserListContainer;

Prezentáciu môžete rozdeliť medzi dve prezentačné zložky: Používateľ a UserList. Každý je zodpovedný za jednoduché generovanie značiek na základe vstupných rekvizít, ktoré dostane.

importovať { View, Text, FlatList } od„react-native“;

// Prezentačný komponent
konšt Používateľ = ({ meno, vek }) => (

Meno: {name}</Text>
Vek: {age}</Text>
</View>
);

// Prezentačný komponent
konšt UserList = ({ používatelia }) => (
data={users}
keyExtractor={item => item.id}
renderItem={({ položka }) => <Používateľnázov={názov položky}Vek={item.age} />}
/>
);

Nový kód rozdeľuje pôvodný komponent na dva prezentačné komponenty, Používateľ a UserLista jeden komponent kontajnera, UserListContainer.

Osvedčené postupy na implementáciu kontajnerových a prezentačných komponentov

Keď používate kontajnerové a prezentačné komponenty, je dôležité dodržiavať niektoré osvedčené postupy, aby ste zabezpečili, že komponenty budú fungovať tak, ako majú.

  1. Každý komponent by mal mať jasnú a špecifickú úlohu. Kontajnerový komponent by mal riadiť stav a prezentačný komponent by mal zvládnuť vizuálnu prezentáciu.
  2. Ak je to možné, použite funkčné komponenty namiesto komponentov triedy. Sú jednoduchšie, ľahšie testovateľné a poskytujú lepší výkon.
  3. Vyhnite sa zahrnutiu logiky alebo funkčnosti do komponentu, ktorý nie je relevantný pre jeho účel. To pomáha udržať komponenty sústredené a ľahko sa udržiavajú a testujú.
  4. Na komunikáciu medzi komponentmi používajte rekvizity, jasne oddeľujte obavy a vyhýbajte sa tesne prepojeným komponentom.
  5. Nepotrebné aktualizácie stavu môžu viesť k problémom s výkonom, preto je dôležité aktualizovať stav iba v prípade potreby.

Dodržiavanie týchto osvedčených postupov zaisťuje, že váš kontajner a prezentačné komponenty budú efektívne spolupracovať poskytujú čisté, organizované a škálovateľné riešenie na správu stavu a vizuálnej prezentácie vo vašej aplikácii React Native.

Výhody používania kontajnerových a prezentačných komponentov

Kontajnerové a prezentačné komponenty môžu poskytnúť niekoľko výhod. Môžu pomôcť zlepšiť štruktúru kódu, udržiavateľnosť a škálovateľnosť. Výsledkom je tiež lepšia spolupráca a delegovanie úloh medzi tímami. Môžu dokonca viesť k zvýšeniu výkonu a optimalizácii vašej aplikácie React Native.

Postupujte podľa osvedčených postupov implementácie týchto komponentov a môžete vytvárať lepšie a škálovateľnejšie aplikácie React Native.