Две основни идеи во Redux
Пред да започнеме со изучување на библиотеката Redux, да се запознаеме со нејзините две основни идеи. Првата идеја, која се однесува на управување со состојба, ќе ја разгледаме на пример на обичен бројач користeјќи 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 во овој случај ни предлага да создадеме едно место во апликацијата, кое ќе ја содржи глобалната состојба и одредени шаблони на однесување при ажурирање на таа состојба. Токму во ова и се состои првата основна идеја (!).
Втората идеја е поврзана со иммутабилност, односно со непроменливоста на податоците. Вие, се разбира, се сеќавате од JavaScript, дека низите и објектите можат да се менуваат. Директното менување на податоците во Redux, како и во другите рамки, се смета за лоша практика и може да доведе до непредвидливи последици. Затоа во Redux нашите почетни објекти и низи треба да останат иммутабилни, а менуваме можеме само нивните копии.
Раскажете, во што се состои првата основна идеја на Redux.
Раскажете, во што се состои втората основна идеја на Redux.