⊗jsrxPmBsCs 2 of 57 menu

Redux-ի երկու հիմնական գաղափարները

Նախքան Redux գրադարանն ուսումնասիրելը, եկեք ծանոթանանք նրա երկու հիմնական գաղափարներին: Առաջին գաղափարը, որը վերաբերում է վիճակի կառավարմանը, մենք կդիտարկենք React-ի սովորական հաշվիչի օրինակով վիճակի վրա.

function Counter() { // Վիճակ const [count, setCount] = useState(0) // Գործողություն. function clickHandler() { setCount(count + 1) } // Ներկայացում. return ( <div> <span>{count}</span> <button onClick={clickHandler}>+</button> </div> ) }

Այս կոդում մենք տեսնում ենք վիճակ count փոփոխականի համար - սա հաշվիչի ճշմարտության աղբյուրն է: Ապա մենք տեսնում ենք գործողություն (action) - իրադարձություն, որը օգտագործողի կտտոցով առաջացնում է վիճակի թարմացում: Եվ, վերջապես, ներկայացում (view), որի օգնությամբ մենք ցուցադրում ենք օգտատիրոջ ինտերֆեյսը:

Այսպիսով, սխեման բավականին պարզ է. կոճակը սեղմվում է - count վիճակը (State) սեղմման արդյունքում (Action) փոխվում է, հետևաբար փոխվում է ներկայացումը (View) - մեր դեպքում դա էկրանին երևացող թիվն է:

Սակայն, ամեն ինչ ավելի բարդ կլինի, եթե մենք ունենք բազմաթիվ բաղադրիչներ, որոնք պետք է օգտագործեն մեկ և նույն վիճակը: Միանգամայն հնարավոր է, օրինակ, բարձրացնել վիճակը դեպի ծնողական բաղադրիչներ, բայց նման լուծումը միշտ չէ, որ կարող է ազատել խնդրից: Redux-ն այս դեպքում առաջարկում է մեզ ստեղծել դիմումի մեջ մեկ տեղ, որը կպարունակի գլոբալ վիճակ և վիճակի այդ թարմացման ժամանակ որոշակի վարքագծի օրինաչափություններ: Հենց սրանում է կայանում առաջին հիմնական գաղափարը (!):

Երկրորդ գաղափարը կապված է իմուտաբելության, այսինքն՝ տվյալների անփոփոխելիության հետ: Դուք, անշուշտ, հիշում եք JavaScript-ից, որ զանգվածները և օբյեկտները կարելի է փոփոխել: Տվյալների ուղղակի փոփոխությունը Redux-ում, ինչպես նաև այլ ֆրեյմվորքներում, համարվում է վատ ոճ և կարող է հանգեցնել անկանխատեսելի հետևանքների: Ուստի Redux-ում մեր սկզբնական օբյեկտները և զանգվածները պետք է մնան իմուտաբել, իսկ փոփոխել կարող ենք միայն դրանց պատճենները:

Պատմեք, թե ինչում է կայանում Redux-ի առաջին հիմնական գաղափարը:

Պատմեք, թե ինչում է կայանում Redux-ի երկրորդ հիմնական գաղափարը:

Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել