⊗jsrxPmBsCs 2 of 57 menu

Две основни идеи в Redux

Преди да започнем изучаването на библиотеката Redux, нека се запознаем с двете й основни идеи. Първата идея, касаеща управлението на състоянието, ще разгледаме с примера на обикновен брояч със state в React:

function Counter() { // State const [count, setCount] = useState(0) // Action: function clickHandler() { setCount(count + 1) } // View: return ( <div> <span>{count}</span> <button onClick={clickHandler}>+</button> </div> ) }

В този код виждаме state за променливата count - това е източникът на истина за брояча. След това виждаме действие (action) - събитие, което при клик на потребителя причинява актуализация на state. И накрая, представяне (view), с което показваме потребителския интерфейс.

По този начин схемата е доста проста: бутонът се натиска - state count (State) при натискане (Action) се променя, следователно се променя представянето (View) - в нашия случай това е числото на екрана.

Въпреки това, всичко ще бъде по-сложно, ако имаме множество компоненти, които трябва да използват едно и също state. Може, разбира се, например да издигнем state нагоре до родителски компоненти, но такова решение не винаги може да реши проблема. Redux в този случай ни предлага да създадем едно място в приложението, което да съдържа глобалното състояние и определени модели на поведение при актуализиране на това състояние. Exactly in this и се състои първата основна идея (!).

Втората идея е свързана с имютабилност, тоест с неизменността на данните. Вие, разбира се, помните от JavaScript, че масиви и обекти могат да се променят. Промяната на данни директно в Redux, както и в други frameworks се счита за лош тон и може да доведе до непредсказуеми последствия. Затова в Redux нашите първоначални обекти и масиви трябва да останат имютабилни, а променять можем само техни копия.

Разкажете, в какво се състои първата основна идея на Redux.

Разкажете, в какво се състои втората основна идея на Redux.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне