Сервер-яҡ рендеринг (SSR) ҡушымталары өлкәһендә, һөҙөмтәле файҙаланыу Редуктор һиҙелерлек арттыра ала етештереүсәнлеге һәм ҡулланыусы тәжрибәһе. Көтөүсе булараҡ тәьмин итеүсе булараҡ, мин бында, нисек һөҙөмтәле ҡулланырға тураһында төшөнсәләр менән уртаҡлашырға CSR ҡушымтаһы Reducer.
ССР контексында редукторҙарҙы аңлау
Ғәмәлгә ашырыу нескәлектәренә тәрән инеп, был’s мөһим аңларға, нимә Көтөүсе. Редуктор — саф функция, хәҙерге хәлде һәм ғәмәлде индереүҙәр булараҡ ҡабул итә һәм яңы хәлде ҡайтара. SSR ҡушымтаһында, унда тәүге рендеринг серверҙа була, Редукторҙар ҡушымтаның дәүләте менән идара итеүҙә мөһим роль уйнай.
Төп өҫтөнлөгө ҡулланыу Rucder SSR ҡушымтаһында, тип, ул ярҙам итә, тип һаҡлау өсөн күҙаллана дәүләт идара итеү системаһы. SSR ҡушымталары серверҙа башланғыс HTML генерацияларға тейеш булғанлыҡтан, яҡшы билдәләнгән дәүләт идара итеү механизмына эйә булған сервер ағымдағы хәлгә нигеҙләнеп дөрөҫ ҡараш күрһәтә ала.
ССР ҡушымтаһында индукцияны ҡуйыу
1-се аҙым: Көтөүсе функцияны билдәләгеҙ
Беренсе аҙым – Редуктор функцияһын билдәләү. Бында ябай миҫал JavaScript:
``javascript const minterState = { мәғлүмәттәр: [], йөкләү: ялған, хата: нуль };
const datecuter Редуктор = (дәүләт = Башланғыс Стат, ғәмәл) => { өҙгөс (ғәмәл.тип) { осраҡта 'ФЕТЧ_ДАТА_СТАРТ': ҡайтарыу { ...дәүләт, йөкләү: дөрөҫ, хата: нуль }; осраҡта 'ФЕТЧ_ДАТА_SUCCESS': ҡайтарыу { ...дәүләт, йөкләү: ялған, мәғлүмәттәр: эш.түләү }; осраҡта 'ФЕТЧ_ДАТА_ЯНЫУ': ҡайтарыу { ...дәүләт, йөкләү: ялған, хата: эш.хата }; ғәҙәттәгесә: ҡайтарыу хәле; } }; ``
Был миҫалда,Мәғлүмәттәрдәүләт менән идара итә, мәғлүмәттәр алыу менән бәйле. Ул өс төрлө эш менән шөғөлләнә:ФЕТЧ_ДАТА_СТАРТ, 1990 й.ФЕТЧ_ДАТА_СУССС ., һәмФЕТЧ_ДАТА_ЯЛЫРҒА.
2-се аҙым: Сервер - Ян ҡушымтаһы менән Крекерҙы интеграциялау
Бер тапҡыр кәметергә билдәләнгән, уны SSR ҡушымтаһы менән интеграцияларға кәрәк. Express ҡулланып Node.js ҡушымтаһында, мәҫәлән, дәүләт менән идара итеү өсөн Redux кеүек дәүләт идара итеү китапханаһын ҡулланырға мөмкин.
``javascript const экспресс = талап('express'); const { cadteStore } = талап('redux'); консст ҡушымта = экспресс();
const магазин = булдырыу Store(dataReducer);
app.get('/', (req, res) => { // Мәғлүмәттәр магазинын алыу өсөн ғәмәлде ебәреүҙе.dispatch({ тип: 'FETCH_DATA_START' });
// Бында һеҙ, ғәҙәттә, API саҡырыу өсөн мәғлүмәт алыу өсөн // Ябайлыҡ өсөн, әйҙәгеҙ, беҙгә ҡайһы бер макет мәғлүмәттәре mockData = [ id: 1, исем: 'Пункт 1' }, id: 2, исем: 'Пункт 2' } ]; shop.dispatch({ тип: 'FETCH_DATA_SUCCESS', файҙалы йөк: mockData }); конст хәл = магазин.get State(); // Хәҙер һеҙ дәүләтте ҡулланып, башланғыс HTML html = ` <html> <hor> <h1>Мәғлүмәттәр исемлеге</h1> <ul> ${state.cate.map(ietem => `${исем}</li> `)} </ul> </for> </html> `; res.send(html);
});
порт = 3000; ҡушымта.тыңлай(порт, () => { консоль.лог(Сервер портта эшләй ${порт}); }); ``
Был кодта беҙ Redux магазинын булдырабыҙ, ярҙамындаМәғлүмәттәр. Ҡулланыусы тамыр маршрутын һорағанда, беҙ мәғлүмәттәрҙе моделләштереү һәм дәүләтте тейешле кимәлдә яңыртыу өсөн ғәмәлдәрҙе ебәрәбеҙ. Һуңынан беҙ дәүләт ҡулланыу өсөн генерациялау өсөн башланғыс HTML һәм клиентҡа ебәрергә.
ССР-ҙа редукторҙарҙы ҡулланыу осраҡтары алдынғы
Сервер - Ян мәғлүмәттәр алыу һәм кэшлау
SSR ҡушымтаһында, мәғлүмәттәр алыу етештереүсәнлеге тар муйын булыуы мөмкин. Редукторҙарҙы серверҙағы мәғлүмәттәрҙе кэшлау менән идара итеү өсөн ҡулланырға мөмкин. Мәҫәлән, әгәр бер үк мәғлүмәттәр бер нисә тапҡыр һораһа, Редуктор мәғлүмәттәрҙең инде дәүләттә булыуын тикшерә ала һәм кәрәкмәгән API шылтыратыуҙарынан ҡотолорға мөмкин.
``javascript const minterState = { cadeData: {}, йөкләү: ялған, хата: нуль };
const datecuter Редуктор = (дәүләт = башланғыс Статация, ғәмәл) => { өҙгөс (ғәмәл.тип) { осраҡта 'ФЕТЧ_КАЧЕД_ДАТА': конст кэш = хәл.кэшед Дата[ракция.ҡысы]; әгәр (кэш) { ҡайтарыу { ...дәүләт, йөкләү: ялған, мәғлүмәттәр: кэш }; } тағы { ҡайтарыу { ...дәүләт, йөкләү: дөрөҫ, хата: нуль }; . осраҡта 'ФЕТЧ_КАЧЕД_ДАТА_ФАЛЬЮР: ҡайтарыу { ...дәүләт, йөкләү: ялған, хата: эш.error }; ғәҙәттәгесә: ҡайтарыу хәле; } }; ``
Күп тапҡыр кәметеүселәр менән эш итеү
Ҙурыраҡ SSR ҡушымталарында, был’ы ғәҙәти булырға бер нисә редуктор менән идара итеү өсөн төрлө өлөштәре дәүләт. Һеҙ был Редукторҙарҙы берләштерә аласыз.комбайндары РедукторҙарРедукстан.
``javascript const { commenterters } = талап('redux');
const userReducer = (дәүләт = { puser: null }, ғәмәл) => { өҙгөс (ғәмәл.тип) { осраҡта 'SET_USER': ҡайтарыу { ...дәүләт, ҡулланыусы: эш. ғәҙәттәгесә: ҡайтарыу хәле; } };
const rootReduer = commedivers ({ dateo: мәғлүмәттәр: codeRucer, ҡулланыусы: userReduer });
const магазин = булдырыу Store(тамыр Редуктор); ``
ССР ҡушымталары өсөн төрлө типтағы редукторҙар
Көтөүсе булараҡ тәьмин итеүсе булараҡ, беҙ төрлө SSR ҡушымта талаптары өсөн яраҡлы төрлө редукторҙар тәҡдим итә.
Нема 34-се шестерня шестерня йәшниге
1990 й.Нема 34-се шестерня шестерня йәшниге- юғары - әйләнеш моменты редукторы, уларҙы SSR ҡушымталарында ҡулланырға мөмкин, унда теүәл хәрәкәт менән идара итеү кәрәк. Ул шыма һәм һөҙөмтәле энергия тапшырыу тәьмин итә, был ҡушымталар өсөн мөһим, ҡатмарлы 3D модель күрһәтеү йәки реаль ваҡыт мәғлүмәттәре ағымдарын эшкәртергә.
Уң мөйөшлө планеталарҙы кәметергә
1990 й.Уң мөйөшлө планеталарҙы кәметергәSSR ҡушымталары өсөн идеаль, улар кәрәк компакт һәм юғары - етештереүсәнлеге хәл итеү. Уның уң - мөйөшлө дизайн һығылмалы ҡуйыу мөмкинлеген бирә, уны сикләнгән урын менән ҡушымталар өсөн яраҡлы итә. Ул шулай уҡ юғары һөҙөмтәлелек һәм түбән кире реакция тәҡдим итә, ҡулланыуҙа дәүләт идара итеү дөрөҫ тәьмин итеү.
Ҡорттарҙы кәметергә
1990 й.Ҡорттарҙы кәметергәышаныслы һайлау өсөн SSR ҡушымталар, улар юғары кәметергә нисбәтен талап итә. Ул үҙ-үҙен тәьмин итеү функцияһын тәьмин итеү, был ҡушымталарҙа файҙалы була ала, унда дәүләтте һаҡларға кәрәк, хатта ҡөҙрәт өҙөлгән. Был типтағы редуктор йыш ҡына мәғлүмәттәрҙе һаҡлау һәм эҙләүҙе үҙ эсенә алған ҡушымталарҙа ҡулланыла.
Һығымта
Ҡулланыу Reducer серверҙа - ян рендеринг ҡушымтаһы етештереүсәнлеген һәм ҡулланыусы тәжрибәһен ныҡ яҡшырта ала. Үрҙә һүрәтләнгән аҙымдарҙы үтәп, һеҙ һөҙөмтәле интеграциялау мөмкин Reducer һеҙҙең SSR ҡушымтаһы һәм дәүләт менән идара итеү күҙаллау ысулы. Һеҙ ябай мәғлүмәттәр менән эш итеү йәки ҡатмарлы дәүләт идара итеү сценарийҙары, Редукторҙар ҡөҙрәтле хәл итеү тәҡдим итә.
Әгәр һеҙ ҡыҙыҡһыныу беҙҙең диапазоны тикшерергә һеҙҙең өсөн SSR ҡушымта, беҙ һеҙҙе беҙҙең менән бәйләнешкә инә, артабан фекер алышыу һәм һатып алыу өсөн. Беҙ үҙ өҫтөнә юғары тәьмин итеү өсөн үҙ өҫтөнә ала - сифатлы Редукторҙар, һеҙҙең аныҡ талаптарға яуап бирә.
Һылтанмалар
- Редукс Документация
- Экспресс.js Документация
- Node.js Документация






