Читаоци попут вас помажу у подршци МУО. Када обавите куповину користећи везе на нашем сајту, можда ћемо зарадити провизију за партнере. Опширније.

Као Реацт или Реацт Нативе програмер, важно је разумети концепт контејнерских и презентационих компоненти.

Ови обрасци дизајна помажу у правилном раздвајању брига. Можете користити овај концепт да бисте осигурали да структурирате свој код на начин који је лакше одржавати и скалабилнији.

Шта су компоненте контејнера?

Компоненте контејнера, познате и као паметне компоненте, одговорне су за управљање подацима и логиком у вашој апликацији. Они се баве задацима попут преузимања података из АПИ-ја, ажурирања стања и обраде интеракција корисника.

Да бисте имплементирали ову структуру, можете користити библиотека као што је Реацт-Редук да повежете своје компоненте са радњом и проследите податке и радње доле вашим подређеним компонентама или компонентама презентације.

Шта су презентацијске компоненте?

Презентационе компоненте су одговорне за приказивање података из својих надређених компоненти. Често су без држављанства и фокусирају се на кориснички интерфејс и визуелни приказ података.

instagram viewer

Ово стање их чини лаким за манипулисање и тестирање, због чега добијају назив глупих компоненти. Глупо стање презентационих компоненти омогућава вам да их поново користите у целој апликацији. Ово избегава лош и понављајући код.

Зашто користити контејнерске и презентацијске компоненте?

Кратак и једноставан одговор на питање је: Раздвајање брига. Ово је кључни принцип у неколико парадигми, укључујући објектно оријентисано, функционално и аспектно оријентисано програмирање. Међутим, многи Реацт програмери имају тенденцију да игноришу ове концепте и одлучују се за писање кода који једноставно функционише.

Код који само ради је одличан, све док не престане да ради. Лоше организован код је теже одржавати и ажурирати. Ово може отежати додавање нових функција или довођење других програмера да раде на пројекту. Отклањање ових проблема када су већ створени представља оптерећење и боље их је спречити од почетка.

Примена шаблона дизајна контејнера и компоненти презентације обезбеђује да свака компонента у оквиру вашег пројекта има јасан задатак којим се бави. Ово постиже модуларну структуру у којој се свака оптимизована компонента спаја да доврши вашу апликацију.

Ваше компоненте се и даље могу преклапати; подела дужности између контејнера и презентационе компоненте није увек јасна. Међутим, као опште правило, требало би да фокусирате своје презентацијске компоненте на визуелне податке, а компоненте контејнера на податке и логику.

Како користити контејнерске и презентацијске компоненте у Реацт Нативе-у

У типичној Реацт Нативе апликацији, уобичајено је креирати компоненте које садрже и презентацијски и логички код. Можете преузети податке из АПИ-ја, управљати стањем обрасца и приказати излаз све у једној класи. Размислите о једноставној апликацији која ће преузети листу корисника из АПИ-ја и приказати њихова имена и године.

То можете да урадите са једном компонентом, али то ће резултирати кодом који је тешко читати, који се не може поново користити и тежи за тестирање и одржавање.

На пример:

увоз Реагујте, { усеСтате, усеЕффецт } из'реаговати';
увоз { Приказ, текст, равна листа } из'реацт-нативе';

конст УсерЛист = () => {
конст [корисници, сетУсерс] = усеСтате([]);

усеЕффецт(() => {
конст фетцхУсерс = асинц () => {
конст одговор = чекати донеси (' https://example.com/users');
конст подаци = чекати респонсе.јсон();
сетУсерс (подаци);
};

фетцхУсерс();
}, []);

повратак (
подаци={корисници}
кеиЕктрацтор={итем => итем.ид}
рендерИтем={({ итем }) => (

Назив: {итем.наме}</Text>
Старост: {итем.аге}</Text>
</View>
)}
/>
);
};

извозУобичајено УсерЛист;

У овом примеру, УсерЛист је одговоран за управљање стањем поља за унос, преузимање података из АПИ-ја и приказивање података.

Бољи и ефикаснији начин да се ово примени је да се логика у УсерЛист-у одвоји на компоненте презентације и контејнера.

Можете креирати а УсерЛистЦонтаинер компонента која је одговорна за преузимање и управљање корисничким подацима. Затим може проследити ове податке у компоненту презентације, УсерЛист, као реквизит.

увоз Реагујте, { усеСтате, усеЕффецт } из'реаговати';

// Компонента контејнера
конст УсерЛистЦонтаинер = () => {
конст [корисници, сетУсерс] = усеСтате([]);

усеЕффецт(() => {
конст фетцхУсерс = асинц () => {
конст одговор = чекати донеси (' https://example.com/users');
конст подаци = чекати респонсе.јсон();
сетУсерс (подаци);
};

фетцхУсерс();
}, []);

повратак<УсерЛисткорисника={усерс} />;
};

извозУобичајено УсерЛистЦонтаинер;

Можете да одвојите презентацију између две компоненте: Корисник и УсерЛист. Сваки је одговоран за једноставно генерисање ознака на основу улазних реквизита које прима.

увоз { Приказ, текст, равна листа } из'реацт-нативе';

// Презентациона компонента
конст Корисник = ({ име година }) => (

Име: {наме}</Text>
Старост: {аге}</Text>
</View>
);

// Презентациона компонента
конст УсерЛист = ({ корисника }) => (
подаци={корисници}
кеиЕктрацтор={итем => итем.ид}
рендерИтем={({ итем }) => <Корисникиме={Назив производа}старости={итем.аге} />}
/>
);

Нови код одваја оригиналну компоненту на две презентацијске компоненте, Корисник и УсерЛисти једна компонента контејнера, УсерЛистЦонтаинер.

Најбоље праксе за примену контејнерских и презентационих компоненти

Када користите компоненте контејнера и презентације, важно је да следите неке најбоље праксе како бисте били сигурни да компоненте раде како је предвиђено.

  1. Свака компонента треба да има јасну и специфичну улогу. Компонента контејнера треба да управља стањем, а компонента за презентацију треба да управља визуелном презентацијом.
  2. Где је могуће, користите функционалне компоненте уместо компоненти класе. Једноставније су, лакше се тестирају и пружају боље перформансе.
  3. Избегавајте укључивање логике или функционалности у компоненту која није релевантна за њену намену. Ово помаже да компоненте буду фокусиране и лаке за одржавање и тестирање.
  4. Користите реквизите за комуникацију између компоненти, јасно одвајајући бриге и избегавајући тесно повезане компоненте.
  5. Непотребна ажурирања стања могу довести до проблема са перформансама, тако да је важно ажурирати стање само када је то неопходно.

Праћење ових најбољих пракси осигурава да ваш контејнер и компоненте презентације ефикасно раде заједно обезбедите чисто, организовано и скалабилно решење за управљање стањем и визуелном презентацијом у вашој Реацт Нативе апликацији.

Предности коришћења контејнерских и презентационих компоненти

Контејнерске и презентацијске компоненте могу пружити неколико предности. Они могу помоћи у побољшању структуре кода, могућности одржавања и скалабилности. Они такође резултирају бољом сарадњом и делегирањем задатака међу тимовима. Они чак могу довести до повећања перформанси и оптимизације ваше Реацт Нативе апликације.

Пратите најбоље праксе за имплементацију ових компоненти и можете да направите боље и скалабилније Реацт Нативе апликације.