Программа тәьминәте архитектураһы өлкәһендә Flux архитектураһы ҡушымта дәүләте менән идара итеү өсөн ҡөҙрәтле ҡалып булып сыҡты, бигерәк тә ҙур масштаблы JavaScript ҡушымталарында. Был архитектураның төп нигеҙендә редуктор ята, был мөһим компонент, ҡушымтаның дәүләтен һаҡлау һәм яңыртыуҙа төп роль уйнай. Редуктор булараҡ тәьмин итеүсе булараҡ, мин яҡшы - редукторҙар эске эшмәкәрлеген һәм улар нисек дөйөм һөҙөмтәлелегенә һәм тотороҡлолоғона булышлыҡ итеү Flux - нигеҙләнгән ҡушымта.
Flux архитектураһын аңлау
Ҡайһы бер осраҡта был нисек эшләүен тәрәнәйткәнсе, был мөһим, аныҡ аңлау өсөн Flux архитектураһы. Flux — ҡатмарлы ҡушымталарҙа дәүләт менән идара итеү проблемаларын хәл итеү өсөн Facebook тарафынан индерелгән архитектура ҡалыбы. Ул бер йүнәлешле мәғлүмәттәр ағымы буйынса, был ҡушымтаның хәлен күҙаллаусаныраҡ һәм отладканы еңелерәк итеүҙә ярҙам итә.
Flux архитектураһы дүрт төп өлөштән тора: диспетчер, магазиндар, ҡараштар һәм ғәмәлдәр. Actions — ҡушымтанан (мәҫәлән, ҡулланыусылар үҙ-ара эш итеүе) Диспетчерға мәғлүмәттәр ебәргән мәғлүмәттәрҙең файҙалы йөктәре. Диспетчер — үҙәк үҙәк, бөтә ғәмәлдәрҙе ала һәм уларҙы магазиндарға тапшыра. Магазиндар ҡушымтаның хәлен тота һәм логиканы үҙ эсенә ала, был дәүләтте яңыртыу өсөн. Ниһайәт, ҡараштар өсөн яуаплы рендеринг UI нигеҙендә дәүләт һаҡланған магазиндарҙа.
Нимә ул Кредка?
Редуктор — Flux-та саф функция — архитектура кеүек (мәҫәлән, Rudux, был Flux өлгөһөн популяр тормошҡа ашырыу). Таҙа функция — бер үк индереүҙе иҫәпкә алып, һәр ваҡыт бер үк сығышты ҡайтарасаҡ һәм яҡтан - эффекттар юҡ. Flux контексында редуктор ҡушымтаның хәҙерге торошон һәм ғәмәлде индереүҙәр һәм яңы хәлде ҡайтара тип ала.
Редуктор функцияһының дөйөм формаһын түбәндәгесә күрһәтергә мөмкин:
функцияһын кәметкән(дәүләт, ғәмәл) { өҙгөс (ғәмәл.тип) { осраҡта 'ACTION_TYPE_1': // логика яңыртыу өсөн дәүләт нигеҙендә ACTION_TYPE_1 ҡайтарыу newState; осраҡта 'ACTION_TYPE_2': // логика яңыртыу өсөн дәүләт нигеҙендә ACTION_TYPE_2 ҡайтарыу newState; ғәҙәттәгесә: ҡайтарыу хәле; } }.
1990 й.дәүләтпараметр ҡушымтаның хәҙерге хәлен күрһәтә, әғәмәлпараметр — кәмендә а булған объект.типүҙенсәлеге, был башҡарылған ғәмәлдәрҙең төрөн һүрәтләй, һәм теләк буйынса башҡа мәғлүмәттәр менән бәйле ғәмәл.
Көтөүсе нисек эшләй
Әйҙәгеҙ, процесын тарҡатайыҡ, нисек эшләй редуктор аҙым-аҙым.
1. Ағымдағы дәүләтте һәм ғәмәлде ҡабул итеү
Flux ҡушымтаһында ғәмәл ебәрелгәндә, диспетчер бөтә тейешле редукторҙарға ғәмәлде ебәрә. Артабан һәр редуктор ҡушымтаның хәҙерге хәлен һәм ғәмәлгә ашырыу объекты менән ала. Мәҫәлән, электрон сауҙа ҡушымтаһында, бәлки, автомобиль арбаһы дәүләте менән идара итеү өсөн редуктор булыуы мөмкин. Ҡулланыусы арбаға әйбер өҫтәгәндә, ғәмәл ебәрелә, ә сауҙа арбаһы редукторы арбаның хәҙерге хәлен һәм әйбер өҫтәүҙе күрһәткән ғәмәлде ала.
2. Тип Типты баһалау
Редуктор ҡуллана а .һүндергесбелдереүҙе йәки шартлы логика баһалау өсөнтипғәмәл объектының үҙенсәлеге. Экшен тибына нигеҙләнеп, редуктор дәүләтте нисек яңыртыу тураһында билдәләй. Мәҫәлән, әгәр ҙә ғәмәл тибы .АДД_ITEM_TO_CART, редуктор өҫтәйәсәк пункт күрһәтелгән ғәмәл’ы файҙалы йөк сауҙа арба дәүләте.
const misterState = { пункттар: [] }; функцияһы artRecuter(дәүләт = misters State, ғәмәл) { өҙгөс (ғәмәл.тип) { осраҡта 'ҠУҒЫШ_ITEM_TO_CART': ҡайтарыу { ...дәүләт, әйберҙәр: [...дәүләт.әйтәмдәр, ғәмәл.түләүле йөк] }; осраҡта 'REMOVE_ITEM_FROM_CART': ҡайтарыу { ...дәүләт, әйберҙәр: хәл.ietems.pilter(плекс => пункт.ид!== эш.payload.id) } }; ғәҙәттәгесә: ҡайтарыу хәле; } }.
3. Яңы дәүләтте ҡайтарыу
Акция тибы нигеҙендә дәүләтте нисек яңыртыуҙы билдәләгәндән һуң, редуктор яңы дәүләт объектын ҡайтара. Был’s мөһим, тип билдәләне редуктор туранан-тура тәүге хәл объектын мутацияларға тейеш түгел. Уның урынына ул яңыртылған хәлде күрһәткән яңы объект булдыра. Был үҙгәрешлелек Flux-та төп принцип булып тора - архитектуралар кеүек, сөнки ул дәүләтте күҙаллаусаныраҡ итә һәм еңел отладка һәм ваҡыт үткәреү мөмкинлеген бирә - үҫеш ҡоралдарында сәйәхәт итә.
Өҫтөнлөктәре ҡулланыу редукторҙары Flux архитектураһында
Flux архитектураһында редукторҙар ҡулланыу өсөн бер нисә өҫтөнлөк бар:
Күҙаллаусанлыҡ
Редукторҙар саф функциялар булғанлыҡтан, бер үк индереү (ағымдағы хәл һәм ғәмәл), улар һәр ваҡыт бер үк сығыш (яңы хәл) етештерәсәк. Был күҙаллаусанлыҡ ҡушымтаның дәүләт үҙгәрештәрен аңлау һәм отладка еңеләйтә. Төҙөүселәр еңел генә редукторҙарҙы төрлө индереүҙәрҙе тәьмин итеү һәм сығыштарҙы тикшерергә мөмкин.
Immutability
Алда әйтелгәнсә, редукторҙар үҙгәрмәй торғанлыҡты үтәй. Immutability ваҡыт үткән һайын дәүләткә үҙгәрештәрҙе күҙәтеүҙә ярҙам итә, сөнки һәр яңы дәүләт – айырым объект. Ул шулай уҡ ябайлаштыра тормошҡа ашырыу функциялары кеүек кире ҡайтарыу/rede һәм ваҡыт - сәйәхәт отладка.
Һаҡлау мөмкинлеге
Редукторҙар дәүләтте тарҡата - логиканы яңыртыу бәләкәй, идара итеү функциялары. Һәр редуктор өсөн яуаплы аныҡ өлөшө ҡушымта’s дәүләт, код базаһы күберәк модулле һәм еңел һаҡлау. Яңы функция өҫтәлгәндә йәки булған функция үҙгәртелә, был’ы асыҡ, ниндәй редукторҙар яңыртыу кәрәк.
Беҙҙең Көтөүсе тәҡдимдәр
Редуктор булараҡ тәьмин итеүсе булараҡ, беҙ тәҡдим итәбеҙ, киң спектр редукторҙар төрлө ихтыяждарын ҡәнәғәтләндерергә төрлө ҡушымталар. Беҙҙә [Аллой тимер концентрик өҙгөс](/прит - иретеп йәбештереү - монтажлау/тыштырыу/алло - концентрик - редуктор.хтмл), [Углеродлы тимер концентрик редуктор](/юл - иретеп йәбештереү - йыһазландырыу/көсләү/углерод - концентрик - концентрик.html), һәм [Торошһоҙ тимер концентрик редукция](/bott - иретеп йәбештереү - арматура/күрһәтеүсе/төшөрөүсе - тимер - концентрик - редуктор.html) варианттары бар. Был редукторҙар юғары - сифатлы материалдар һәм теүәл инженерия менән эшләнгән, оптималь эшмәкәрлекте һәм ныҡлыҡты тәьмин итеү өсөн.
Һығымта
Һүҙҙе йомғаҡлап, редукторҙар Flux архитектураһының мөһим өлөшө булып тора. Улар төп роль уйнай идара итеү һәм яңыртыу ҡушымта’s дәүләт күҙаллау һәм һөҙөмтәле рәүештә. Таҙа функциялар һәм үҙгәрмәй торған принциптарҙы үтәп, редукторҙар ҙур масштаблы ҡушымталарҙы эшләү һәм хеҙмәтләндереүҙе күпкә еңеләйтә.
Әгәр һеҙ эҙләйһегеҙ юғары - һеҙҙең өсөн сифатлы редукторҙар Flux - нигеҙендә ҡушымта, беҙ бында һеҙгә ярҙам итеү өсөн. Һеҙгә кәрәкме, заказ - дизайн редуктор йәки беҙҙең стандарт тәҡдимдәренең береһе, беҙҙең команда белгестәр һеҙгә иң яҡшы хәл итеү мөмкинлеге бирә ала. Бөгөн беҙҙең менән бәйләнешкә инеү өсөн фекер алышыу башлау өсөн һеҙҙең аныҡ талаптар һәм нисек беҙ һеҙгә ярҙам итә ала, һеҙҙең ғариза маҡсаттарына ирешергә.
Һылтанмалар
- Facebook Асыҡ Сығанаҡ. (нд). Flux: React өсөн ҡушымта архитектураһы. https://facebook.github.io/flux/-тан алынған.
- Редукс Документация. (нд). Redux: JS Apps өсөн күҙаллана торған дәүләт контейнер. https://redux.js.org/
