Унапредите управљање стањем ваше Реацт апликације помоћу Јотаи-а: једноставнија алтернатива Редук-у и савршена за мање пројекте!
Управљање стањем у малим пројектима је генерално једноставно користећи Реацт куке и реквизите. Међутим, како апликација расте и јавља се потреба за дељењем и приступом подацима у различитим компонентама, то често доводи до бушења подупирача. Нажалост, бушење подупирача може брзо затрпати базу кода и довести до изазова скалабилности.
Док Редук нуди одлично решење за управљање стањем, његов АПИ може бити неодољив за релативно мале пројекте. Насупрот томе, Јотаи, минимална библиотека за управљање стањем која користи независне јединице држава које се називају атоми за управљање стање, елиминише изазове као што је пробушење и омогућава једноставније и скалабилније управљање стањем приступ.
Шта је Јотаи и како функционише?
Јотаи је библиотека за управљање стањем која нуди једноставно решење за управљање стањем за разлику од сложенијих алтернатива као што је Редук. Користи независне јединице стања које се називају атоми за управљање стањем у апликацији Реацт.
У идеалном случају, различите компоненте у апликацији, приступају и ажурирају ове атоме помоћу куке коју је обезбедио Јотаи под називом усеАтом. Ево једноставног примера како да направите Јотаи атом:
увоз { атом} из'јотаи';
конст цоунтАтом = атом(1);
Да бисте приступили и радили са атомима у Јотаи, можете једноставно користити усеАтом кука која, као и др Реаговати куке, омогућава вам приступ и ажурирање вредности стања унутар функционалне компоненте.
Ево примера који показује његову употребу:
увоз { усеАтом } из'јотаи';
конст цоунтАтом = атом(1);
функцијаМиЦомпонент() {
конст [цоунт, сетЦоунт] = усеАтом (цоунтАтом);
конст прираст = () => сетЦоунт((превЦоунт) => превЦоунт + 1);
повратак (Број: {цоунт}</p>
У овом примеру, усеАтом кука се користи за приступ цоунтАтом атом и његова придружена вредност. Тхе сетЦоунт функција се користи за ажурирање вредности атома и све повезане компоненте ће се аутоматски поново приказати са ажурираном вредношћу.
Само покретањем погођених компоненти, смањује се непотребно поновно приказивање широм апликације. Овај циљани приступ поновном приказивању побољшава укупне перформансе апликације.
Уз основне ствари на путу, хајде да направимо једноставну То-до Реацт апликацију да бисмо боље разумели Јотаи-јеве могућности управљања стањем.
Овде можете пронаћи изворни код овог пројекта ГитХуб спремиште.
Управљање државом у Реацту користећи Јотаи
Започети, креирајте Реацт апликацију. Алтернативно, можете користите Вите за постављање Реацт пројекта. Када поставите основну Реацт апликацију, наставите и инсталирајте Јотаи у своју апликацију.
нпм инсталл јотаи
Затим, да бисте користили Јотаи у својој апликацији, морате да умотате целу апликацију са Провајдер саставни део. Ова компонента садржи складиште које служи као централно чвориште за обезбеђивање вредности атома у целој апликацији.
Поред тога, омогућава вам да декларирате почетно стање атома. Умотавањем ваше апликације са Провајдер, све компоненте у апликацији добијају приступ атомима које сте дефинисали, а затим могу да ступе у интеракцију са и ажурирају стање преко усеАтом кука.
увоз { Провајдер } из"јотаи";
Сада умотајте апликацију у индек.јс или маин.јск како је приказано испод.
увоз Реаговати из'реаговати'
увоз РеацтДОМ из'реацт-дом/цлиент'
увоз Апликација из'./Апп.јск'
увоз'./индек.цсс'
увоз { Провајдер } из"јотаи";
РеацтДОМ.цреатеРоот(документ.гетЕлементБиИд('корен')).дати, пружити(
</Provider>
</React.StrictMode>,
)
Конфигуришите складиште података
Продавница делује као централно спремиште за стање апликације. Обично садржи дефиницију атома, селектора и било које друге повезане функције потребне за управљање стањем користећи Јотаи.
У овом случају, управља атомима за управљање листом ставки за апликацију То-до. У срц именик, креирај ТодоСторе.јск датотеку и додајте код испод.
увоз { атом} из"јотаи";
извозконст ТодосАтом = атом([]);
Креирањем и извозом ТодосАтом, можете удобно да комуницирате и ажурирате стање обавеза у различитим компонентама у апликацији.
Имплементирајте функционалност апликације То-До
Сада када сте конфигурисали Јотаи у апликацији Реацт и креирали атом за управљање стањем апликације, идите унапред и креирајте једноставну компоненту обавеза која ће управљати функцијама додавања, брисања и уређивања за задатак ставке.
Створити нова компоненте/Тодо.јск фајл у срц именик. У ову датотеку додајте код испод:
- Увезите складиште података и усеАтом кука.
увоз Реагујте, { усеСтате } из'реаговати';
увоз { ТодосАтом } из'../ТодоСторе';
увоз { усеАтом } из'јотаи'; - Креирајте функционалну компоненту и додајте ЈСКС елементе.
Компонента представља једноставан кориснички интерфејс за управљање листом обавеза.конст Тодо = () => {
повратак (
плацехолдер="Нови задатак"
вредност={вредност}
онЦханге={евент => сетВалуе (евент.таргет.валуе)}
/>
извозУобичајено Урадити;
- Коначно, имплементирајте функције додавања и брисања обавеза.
конст [валуе, сетВалуе] = усеСтате('');
конст [тодос, сетТодос] = усеАтом (ТодосАтом);конст хандлеАдд = () => {
ако (валуе.трим() !== '') {
сетТодос(превТодос => [
...превТодос,
{
ид: Датум.Сада(),
текст: вредност
},
]);
подешена вредност('');
}
};конст хандлеДелете = ид => {
сетТодос(превТодос => превТодос.филтер(урадити => тодо.ид !== ид));
};
Тхе хандлеАдд функција је одговорна за додавање нове ставке обавеза на листу ставки. Прво, проверава да ли вредност променљиве није празна. Затим креира нову ставку обавеза са јединственим ИД-ом и унетом обавезом као њеним садржајем.
Тхе сетТодос функција се затим позива да ажурира листу обавеза у атому додавањем нове ставке. На крају, вредност стање се ресетује на празан стринг након операције сабирања.
С друге стране, хандлеДелете функција је одговорна за уклањање ставке обавеза са листе. Филтрира ставку обавеза користећи наведени ИД са постојеће листе користећи превТодос.филтер методом. Затим ажурира листу користећи сетТодос функција—ефективно брисање наведене ставке обавеза са листе.
Коришћење Јотаи-а за управљање стањем у Реацт апликацијама
Овај водич је пружио увод у коришћење Јотаија као решења за управљање државом. Без обзира на то, постоје и друге сјајне карактеристике као што је могућност креирања асинхроних атома посебно дизајнираних за управљање стањем које укључује асинхроне операције као што су АПИ позиви.
Поред тога, можете креирати и изведене атоме, који се користе за израчунавање и извођење вредности из постојећих атома, омогућавајући вам да управљате сложеним стањима на основу других делова апликације.
Користећи ове функције управљања стањем, можете креирати робусније и скалабилније Реацт апликације.