Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ redux: ΠΡΠ°ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Redux Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Redux ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ? β Π₯Π°Π±Ρ Q&A
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Redux ΡΠ΅Π±Π΅ Π½ΡΠΆΠ½ΠΎ Π½ΠΎΡΠΌ Π²ΠΊΡΡΠΈΠ²Π°ΡΡ React.
Π₯ΠΎΡΡ Π±Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΡΠ³Π°ΡΡΡΡ props.
ΠΡΡΡ Ρ ΡΠ΅Π±Ρ React. ΠΡΠΎ Π²ΡΠ΅ ΠΏΡΠΎΡΡΠΎ JS ΠΎΠ±ΡΠ΅ΠΊΡΡ.<Component />
— ΡΠ°ΠΊ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ Π΄Π²ΠΈΠΆΠΎΠΊ jsx, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈ React Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½Π°Ρ, ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄ΡΠΌΠ°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°ΠΊΠΎΠΉ: ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ Π½ΠΎΠ²ΡΡ ΡΠ²ΠΎΠΉΡΡΠ² — props ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ — state.
Π§ΡΠΎΠ±Ρ ΡΠ΅Π±Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π΄Π°Π»ΡΠ½ΠΈΠ΅ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ- ΡΠ΅Π±Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈ Π³Π΄Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° — ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ±ΡΠΎΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΡ.
Π§ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Redux:
ΠΠ½ Π½Π΅ ΠΏΡΠΈΠ·ΡΠ²Π°Π΅Ρ ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΎΡ state.
ΠΠΎ Π΅ΡΡΡ ΠΎΠ±ΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄Π°Π½Π½ΡΡ . Π ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅Π½ΡΡΡΡΡ — ΠΌΠ΅Π½ΡΡΡΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅.
ΠΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ — Π²ΡΠ·ΡΠ²Π°Π΅ΡΡ dispatch — ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ reducer ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° ΡΡΠΎ — ΠΈ ΠΌΠ΅Π½ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ΅Π±Π΅ Π½ΡΠΆΠ½ΠΎ. ΠΠΎΠ³Π΄Π° Π΄Π°Π½Π½ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΡΡΡΡ — ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Propvider — Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ΅Π½Π΄Π΅Ρ Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° (ΡΠΎΡ ΡΡΠΎ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°Π΅Ρ Provider).
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
<Provider>
<MyComponent />//ΠΠΎΡ ΡΡΠ΄Π° Provider ΠΏΡΠΎΠ±ΡΠΎΡΠΈΡ (Π·Π°ΠΏΠΈΡΠ΅Ρ) Π½ΠΎΠ²ΡΠ΅ props.
</Provider>
ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΎΠ½ ΡΡΠΎ ΡΠ°ΠΌΠΎΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ — ΠΏΠ΅ΡΠ΅ΡΠΈΡΡΡΡΡΡ.
mapStateToProps — ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΊΡΡ ΡΠ°ΡΡΡ ΡΡΠΎΠ³ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ provider.
ΠΡΠ»ΠΈ Ρ ΡΠ΅Π±Ρ ΠΎΠ½ΠΎ ΡΠ°ΠΊΠΎΠ΅:
{
chunkStore: {},
some: {}
}
Π’ΠΎ Π΅ΡΠ»ΠΈ mapStateToProps Π²Π΅ΡΠ½Π΅Ρ{store: store.chunkStore}
ΡΠΎ Provider Π² props ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠ° ΠΏΡΠΎΠ±ΡΠΎΡΠΈΡ ΡΠ°ΠΊΠΎΠ΅: store: store.chunkStore. Π ΡΡ Π±ΡΠ΄Π΅ΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Π²Π½ΡΡΡΠΈ ΠΊ store, Π½ΠΎ ΡΠ°ΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ chunkStore (Π½Π΅ Π²Π΅ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, Π° Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅).
mapDispatchToProps — Ρ.ΠΊ. subscribe Π½Π΅Ρ, ΡΠΎ ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²Π½ΡΡΡΠΈ ΡΠ΅Π±Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ dispatch().
action — ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎ ΡΡΠΎ ΠΈ Π½Π° ΡΡΠΎ ΡΡ Ρ ΠΎΡΠ΅ΡΡ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ. ΠΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΡΠ΄Π° ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Redux?. ΠΠ΅Π΄Π°Π²Π½ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ ΠΌΠ½Π΅ Π·Π°Π΄Π°Π»ΠΈβ¦ | by Ivan Eroshkin
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ AndrΓ© Santiago: How Does Redux Work?
ΠΠ΅Π΄Π°Π²Π½ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ ΠΌΠ½Π΅ Π·Π°Π΄Π°Π»ΠΈ Π²ΠΎΠΏΡΠΎΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Redux Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ To Do ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ²ΡΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΈ Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ. ΠΡΠΎ Π±ΡΠ»ΠΎ Π²Π΅ΡΡΠΌΠ° Π·Π°ΡΡΡΠ΄Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π½Π΅ Π±ΡΠ»ΠΎ ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠΉ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π²ΡΠ΅, ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΎ β ΡΡΠΎ ΡΡΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ ΠΌΠ½Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ», ΠΈ ΠΎΠ±ΠΎΡΠΎΡΠ½Π°Ρ ΡΡΠΎΡΠΎΠ½Π° ΠΌΠΎΠ΅Π³ΠΎ ΡΠ΅Π·ΡΠΌΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΈΡΠ°ΡΡ.
Π‘ΠΈΠ΄Ρ Ρ ΡΡΡΠΊΠΎΠΉ Π² ββΡΡΠΊΠ΅, Ρ ΠΎΠ±Π΄ΡΠΌΡΠ²Π°Π» ΡΡΠΎ.
Π Π°Π½ΡΡΠ΅ Ρ ΠΈΡΠΏΡΡΡΠ²Π°Π» ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅: ΠΎΡΡΡΠ°Π» ΡΠ΅Π±Ρ Π·Π°ΡΡΠΈΠ³Π½ΡΡΡΠΌ Π²ΡΠ°ΡΠΏΠ»ΠΎΡ Π½Π° ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ. Π ΡΡΠ°ΡΡΡΡ, Ρ ΡΠΆΠ΅ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅Π» ΠΎΠ±ΠΈΠ»ΠΈΠ΅ Π±ΠΎΠΌΠ±Π°ΡΠ΄ΠΈΡΠΎΠ²ΠΎΠΊ Π½Π° ΠΌΠΎΠΈΡ ΠΏΠ΅ΡΠ²ΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ, ΡΠ°ΠΊ ΡΡΠΎ ΡΡΠΎ Π±ΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΠΏΠ»ΠΎΡ ΠΎ.
Π Π΅Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠ°ΠΊΠΎΠ²Π°, ΡΡΠΎ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ β ΡΡΠΎ Π½Π°Π²ΡΠΊ, ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ»ΡΡΡΠΈΡΡ Π΅Π³ΠΎ β ΡΡΠΎ ΠΏΠΎΡΠ΅ΡΠΏΠ΅ΡΡ Π½Π΅ΡΠ΄Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠ»Π°Π±ΠΎΡΡΠΈ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΠ½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΌΠ΅Π½Ρ ΡΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ . ΠΡΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΠ³ΡΡΠΆΠ°ΡΡΡΡ Π³Π»ΡΠ±ΠΆΠ΅ Π² Π°Π·Ρ ΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π»ΡΡΡΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ. ΠΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎ, ΡΡΠΎ Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π²ΡΠ΅ΠΌ.
ΠΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉ ΡΡΠΈΡΡΡΡ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Redux?
ΠΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Redux:
Redux β ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ Π΄Π»Ρ JavaScript ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. (ΠΠ΅ ΠΏΡΡΠ°ΡΡ Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ WordPress β Redux Framework.)
ΠΠ½ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π²Π°ΠΌ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ°Π·Π½ΡΡ ΡΡΠ΅Π΄Π°Ρ (ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ , ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΈ Π½Π°ΡΠΈΠ²Π½ΡΡ ), ΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠΌ ΠΊΠΎΠ΄Π°.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Redux Π²ΠΌΠ΅ΡΡΠ΅ Ρ React ΠΈΠ»ΠΈ Ρ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Π΄Π»Ρ View. Redux ΠΊΡΠ°ΠΉΠ½Π΅ ΠΌΠ°Π» (2 ΠΠ, Π²ΠΊΠ»ΡΡΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ).
ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Redux ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π²Π°ΡΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π½Π° Π»ΡΠ±ΠΎΠΌ JavaScript ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, React, Meteor ΠΈΠ»ΠΈ Angular.
Redux Π²ΠΎΠ·Π½ΠΈΠΊ ΠΈΠ· ΠΈΠ΄Π΅ΠΈ Flux β Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ½Π°, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ°ΠΌΠΈ ΠΈΠ· Facebook.
Π§ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Redux ΠΎΡΠΎΠ±Π΅Π½Π½ΡΠΌ?
ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Redux ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ API ΠΈΠ»ΠΈ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ API, ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ Ρ.Π΄.
ΠΡΠΎ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΡΡΡΠΎ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ·ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠ°, Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ?
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ Redux β Store, Actions, Reducers ΠΈ Subscriptions.
Initial state
ΠΠ°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ β ΡΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π² Π½Π°ΡΠ°Π»Π΅.
ΠΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΎ ΠΏΠΎΠ»ΠΊΠ°Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°. ΠΠ΄Π΅ΡΡ Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ²Ρ, ΡΡΡΠΊΡΡ, Ρ Π»Π΅Π±, ΠΌΠΎΠ»ΠΎΠΊΠΎ ΠΈ Β«bodega catΒ».
Redux β ΠΠ°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (Initial state)
Actions/Dispatches
Π§ΡΠΎΠ±Ρ ΠΊΡΠΏΠΈΡΡ Π΅Π΄Ρ, Π½ΡΠΆΠ½ΠΎ Π²ΠΎΠΉΡΠΈ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½. Π‘ Redux ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ β ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅, ΡΡΠΎ Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎ-ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²ΠΎΠΊΡΡΠ³ Π²Π°Ρ.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅(action), ΠΎΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ(dispatch).
Redux β ΠΠ΅ΠΉΡΡΠ²ΠΈΡ (Actions)
Reducers
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ Π²ΠΎΠΉΡΠΈ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π½ΠΈΠΌ. ΠΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ-ΡΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ ΡΠ΅Π΄ΡΡΠ΅ΡΡ(Reducers)
Π Π΅Π΄ΡΡΠ΅ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ: ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠ°ΠΊ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ(Initial state), ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅(Action). ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ΅Π΄ΡΡΠ΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ.
Redux β Π Π΅Π΄ΡΡΠ΅ΡΡ(Reducer)
Store
Π£ Π½Π°Ρ Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ(Actions) ΠΈ Π½Π°Ρ ΡΠ΅Π΄ΡΡΠ΅Ρ(Reducers), ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π°ΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΎΠΊΠ°ΠΆΠ΅ΠΌΡΡ Π²Π½ΡΡΡΠΈ Π½Π΅Π³ΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π³ β Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅(Store). ΠΡΠΎ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π΅Π³ΠΎ, Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠ΅Π΄ΡΡΠ΅Ρ ΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
Redux β Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅(Store)
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ store. getState(). ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ, ΠΏΡΠΎΡ ΠΎΠ΄Ρ ΡΠ΅ΡΠ΅Π· ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅(action/dispatch):
Redux β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ store.getState()
Subscribe
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ(Subscribe) Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅(Store) Π΄Π»Ρ Π»ΡΠ±ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π΅Ρ Π»ΡΠ±ΡΠ΅ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ(Dispatch), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
Redux β ΠΠΎΠ΄ΠΏΠΈΡΠΊΠ° Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅(Subscriptions)
ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅, ΠΏΠ΅ΡΠ²ΡΠΉ console.log Ρ Π½Π΅ΠΉΡΡΠ°Π»ΡΠ½ΡΠΌ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΈΠ΅ΠΌ Β«bodega catΒ» Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΏΠΎΠΊΠ° Ρ PET_BODEGA_CAT ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΡΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΡΠ°ΠΊ, ΡΠ΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Redux , Π΄Π΅ΠΉΡΡΠ²ΠΈΡ(Actions) ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π½Π° ΡΠ΅Π΄ΡΡΠ΅ΡΡ(Reducers), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅(Initial state) Π²Π½ΡΡΡΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°(Store), ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΈΡ ΠΊ To Do ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Initial state
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π·Π°Π΄Π°Ρ Π² Π½Π°ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ²:
Redux β ΠΠ°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅(Initial State)
Actions/Dispatches
ΠΠ°Π»Π΅Π΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅(Action) Π½Π° ΡΠ΅Π΄ΡΡΠ΅Ρ(Reducer). ΠΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ Π²ΡΡΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π° ΡΡΠΎΡ ΡΠ°Π· ΠΌΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΡΠΎΡΠΌΠ΅ Π² Π½Π°Ρ ΡΠΏΠΈΡΠΎΠΊ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΏΡΠΈΠ½ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ:
Redux βΠΠ΅ΠΉΡΡΠ²ΠΈΡ / ΠΡΠΏΡΠ°Π²ΠΊΠ°( Action/Dispatch)
Reducers
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠ΅Π΄ΡΡΠ΅Ρ(Reducer) Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ(Action).
Redux β Reducer β Handles an Action thatβs Dispatched and Alters the State
ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ADD_TODO. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ ΡΠ΅Π΄ΡΡΠ΅ΡΠ°, ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΡΠΎ ΠΎΠ½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ»ΡΡΠ°Ρ ADD_TODO, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· action.toDo (ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ) ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π΅Π³ΠΎ Π² ΠΌΠ°ΡΡΠΈΠ² toDos:
To Do ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Redux
- ΠΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΡΠ΅ΠΊΡΡΠΎΠΌ Β«ΠΡΠΏΠΈΡΡ Π΅Π΄ΡΒ»
- ΠΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«ΠΡΠΏΡΠ°Π²ΠΈΡΡΒ»
- ΠΠ°ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅(Action), ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π΄ΡΡΠ΅ΡΡ(Reducer)
- Π Π΅Π΄ΡΡΠ΅Ρ(Reducer) ΡΠΈΡΠ°Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅(Action) ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ
- Π Π΅Π΄ΡΡΠ΅Ρ(Reducer) Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π΅Π³ΠΎ Π² ΠΌΠ°ΡΡΠΈΠ² toDos Π² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅(Initial state)
- ΠΠ°ΡΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅
Π Π΅Π΄Π°ΠΊΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ β Π΄ΠΎΠΊΠ»Π°Π΄ ΠΠ²Π°Π½Π° ΠΠΊΡΠ»ΠΎΠ²Π°
Π Π΅Π΄Π°ΠΊΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ β Π΄ΠΎΠΊΠ»Π°Π΄ ΠΠ²Π°Π½Π° ΠΠΊΡΠ»ΠΎΠ²Π°
ΠΡΠΎ β ΠΡΠ½ ΠΠ±ΡΠ°ΠΌΠΎΠ². Π£ Π½Π΅Π³ΠΎ 27Π ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² (ΡΡΠΎ ΠΊΡΡΡΠΎ). Π Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ Π³ΠΎΠ΄Ρ ΠΎΠ½ ΡΠ΄Π΅Π»Π°Π» ΡΠ΅Π΄Π°ΠΊΡ.
Π Π΅Π΄Π°ΠΊΡ β ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.ΠΠ»Π°Π²Π½ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠ° ΠΎΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² β ΡΡΠΎ ΡΠΎ, ΡΡΠΎ 1) Π²ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅β¦
ΠΈ 2) ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΈΡΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ Π΄Π°Π½Π½ΡΡ (http://redux.js.org/docs/basics/DataFlow.html).
ΠΠ΄Π½ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ MVC, Π³Π΄Π΅ CβV ΠΈ CβM ΠΎΠ±ΡΡΠ½ΠΎ Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅. ΠΠ΄Π½ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.ΠΠ°ΠΊ Ρ ΡΠΆΠ΅ ΡΠΊΠ°Π·Π°Π», Π²ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. ΠΡΠΎ ΠΌΠ΅ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΡΡΠΎΡΒ». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΈΡΡΡ,..
…ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΠΊΠΈΠΌ.
ΠΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ β ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅Π»ΡΠ·Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ.
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ. Π’ΠΎ Π΅ΡΡΡ Π²ΠΎΡ ΡΠ°ΠΊ:
store.number += 1
β Π΄Π΅Π»Π°ΡΡ Π½Π΅Π»ΡΠ·Ρ. Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎΡ, Π½ΡΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡstore.dispatch()
.
ΠΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π²dispatch()
, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΡΠΊΡΠ΅Π½Β» (action). ΠΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠΉ JavaScript-ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΡΠ±ΡΠ΅ ΠΏΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ βtype
.
Π Π΅Π΄Π°ΠΊΡ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ ΡΡΠΎΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.Π’ΡΠ΅ΡΠΈΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ β Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΡΠ΅Π΄ΡΡΡΠ΅ΡΒ» ΠΈ ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΈΡΡΠΎΠΉ.
ΠΡΡ ΡΠ°Π·: ΡΠΊΡΠ΅Π½ β ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉdispatch()
.Π§ΠΈΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ΅Π³Π΄Π° Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ + Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ½Π°ΡΡΠΆΠΈ ΡΠ΅Π±Ρ.
Π‘ΠΈΠ½ΡΡ β ΡΠΈΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ³Π»Π° ΠΎΠ½Π° Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
parseInt()
β ΡΠΈΡΡΠ°Ρ.
$.ajax()
β Π½Π΅ ΡΠΈΡΡΠ°Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² ΡΠ°Π·Π½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΠ½ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.ΠΠ΅ΡΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ β ΡΠΈΡΡΠ°Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½Π° Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ½Π°ΡΡΠΆΠΈ.
ΠΡΠΎΡΠ°Ρ β Π½Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ²ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΆΠ΅ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ.
Π’ΡΠ΅ΡΡΡ β Π½Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½Π° ΡΠΎΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ½Π°ΡΡΠΆΠΈ ΡΠ΅Π±Ρ (Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΡΠΎ-ΡΠΎ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ).ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΊΡΠ΅Π½Ρ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ΅Π΄ΡΡΡΠ΅ΡΠΎΠΌ.
ΠΠ½Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΊΡΠ΅Π½, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π° Π²Ρ ΠΎΠ΄ Π΅ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠΊΡΠ΅Π½, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΡΠ», ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠΊΡΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΠΈΡΠ°Π΅Ρ Π½ΡΠΆΠ½ΡΠΌ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π·Π΄Π΅ΡΡ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠΌ Π Π΅Π΄Π°ΠΊΡ ΡΠΆΠ΅ ΡΠ°ΠΌ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠ°ΡΠΎΠ΅.ΠΡΠ°ΠΊ, ΡΡΠΎ Π³Π»Π°Π²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ΅Π΄Π°ΠΊΡΠ°…
(Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ²: http://redux.js.org/docs/introduction/ThreePrinciples.html)…ΠΈ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π½ΠΈΠΌ ΡΠ΅Π΄Π°ΠΊΡ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΈΡΡΡ ΠΏΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΡ Π΅ΠΌΠ΅.
ΠΠΎΠΏΡΠΎΡ: ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΡΠ°ΠΉΠ΄-ΡΡΡΠ΅ΠΊΡΠ°ΠΌΠΈ?Π‘Π°ΠΉΠ΄-ΡΡΡΠ΅ΠΊΡΡ β ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, Π΄Π΅Π»Π°Π΅ΡΠ΅ Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, ΠΏΠΈΡΠ΅ΡΠ΅ ΡΡΠΎ-ΡΠΎ Π² Π»ΠΎΠ³.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π² ΡΡΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ ΡΠ°ΠΉΠ΄-ΡΡΡΠ΅ΠΊΡΠ°ΠΌ Π½Π΅Ρ ΠΌΠ΅ΡΡΠ°. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ β ΡΡΠΎ ΡΠ΅Π΄ΡΡΡΠ΅Ρ, Π° ΠΎΠ½ ΠΎΠ±ΡΠ·Π°Π½ Π±ΡΡΡ ΡΠΈΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ.
ΠΠ° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ middleware. ΠΠΈΠ΄Π»Π²Π΅ΠΉΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΈΡΠΏΠ°ΡΡΠΈΡ ΡΠΊΡΠ΅Π½Ρ (ΡΠΎ Π΅ΡΡΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΡ) ΠΈ ΡΠ΅Π΄ΡΡΡΠ΅ΡΠΎΠΌ (ΡΠΎ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π² Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅), ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π±Ρ Π²ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ ΡΠΊΡΠ΅Π½Ρ, ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΡ (Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π΅Ρ Π½ΡΠΆΠ½ΡΠΌ) ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π°Π»ΡΡΠ΅ β ΠΈΠ»ΠΈ Π½Π΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ. ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΌΠΈΠ΄Π»Π²Π΅ΠΉΡΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ Π±ΡΡΡ ΡΠΈΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½ β ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅Π»Π°ΡΡ ΡΠ°ΠΉΠ΄-ΡΡΡΠ΅ΠΊΡΡ Π²ΡΠΎΠ΄Π΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΌΠΈΠ΄Π»Π²Π΅ΠΉΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ ΡΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΡΡΡΡ ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ΅.
Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΌΠΈΠ΄Π»Π²Π΅ΠΉΡ β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠΎΡ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅ ΠΌΠΈΠ΄Π»Π²Π΅ΠΉΡ ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΊΡΠ΅Π½ ΠΈ ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Ρ Π½ΠΈΠΌ.
ΠΠΈΠ΄Π»Π²Π΅ΠΉΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΡΠΎΡΠ°.createStore
ΠΈapplyMiddleware
β ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ΅Π΄Π°ΠΊΡΠ°.
Π― Π½Π΅ Π±ΡΠ΄Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΠΌΠΈΠ΄Π»Π²Π΅ΠΉΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΌΠΈΠ΄Π΄Π»Π²Π΅ΠΉΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΉΠ΄-ΡΡΡΠ΅ΠΊΡΠ°ΠΌΠΈ β ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ Π΅ΡΡΡ. Π ΡΠ»ΠΎΠ²Ρ, ΠΌΠΈΠ΄Π»Π²Π΅ΠΉΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΈ Π½Π΅ Π²Ρ ΠΎΠ΄ΡΡ Π² ΠΏΠΎΡΡΠ°Π²ΠΊΡ ΡΠ΅Π΄Π°ΠΊΡΠ°.ΠΡΡΡ ΠΊΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΉΠ΄-ΡΡΡΠ΅ΠΊΡΠΎΠ². Π― Π·Π½Π°Ρ Π΄Π²Π°. ΠΠ΅ΡΠ²ΡΠΉ β ΡΡΠΎ redux-thunk, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΠΌ, ΡΡΠΎΠ»ΠΊΠ½ΡΡΠ΅ΡΡ ΡΠΎΡΠ½ΠΎ.
ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ Π½ΡΠΆΠ΅Π½? ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅Π΄Π°ΠΊΡ ΡΠΌΠ΅Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠΊΡΠ΅Π½Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΏΡΠΎΡΡΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ.ΠΡΠΈΠΌΠ΅Π½ΡΡ ΠΌΠΈΠ΄Π»Π²Π΅ΠΉΡ redux-thunk Π²ΠΎΡ ΡΠ°ΠΊΠΈΠΌ Π²ΠΎΡ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ,..
…Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²…
β¦Π΄ΠΈΡΠΏΠ°ΡΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°Π΄ΠΈΡΠΏΠ°ΡΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ, redux-thunk Π²ΡΠ·ΠΎΠ²Π΅Ρ Π΅Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² Π½Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ dispatch ΡΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΏΠΎΡΠΎΠΌ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ. Π’Π°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ thunk-Π°ΠΌΠΈ.
ΠΠ»ΠΈ Π²ΠΎΡ ΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ Π²ΡΠ½Π΅ΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΡΠ΅Π½Π° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ. Π’Π°ΠΊΠΎΠ΅ Π²ΡΠ½Π΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΡΡΠ°ΡΠΈ, β ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½ Π² Π Π΅Π΄Π°ΠΊΡΠ΅, ΠΈ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΎΠ·Π΄Π°ΡΡΠ°Ρ ΡΠΊΡΠ΅Π½, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΊΡΠ΅Π½-ΠΊΡΠΈΡΠΉΡΠΎΡ.
Π§ΡΠΎ Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Ρ redux-thunk? ΠΠΎΠΆΠ½ΠΎ Π΄ΠΈΡΠΏΠ°ΡΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΊΡΠ΅Π½ΠΎΠ² ΠΏΠΎΠ΄ΡΡΠ΄, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π»ΠΎΠ³Π°ΡΡ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΈΡΡΠΈΡΡ ΡΡΠΎΡ.
ΠΠΎΠΆΠ½ΠΎ Π΄ΠΈΡΠΏΠ°ΡΡΠΈΡΡ ΡΠΊΡΠ΅Π½Ρ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ±Π΅ΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠΌΠΈ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ. ΠΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ
dispatch
β ΠΈ Π΄Π°ΠΆΠ΅ Π΅ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π²ΡΠΎΡΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ.
Redux-thunk ΡΠ΄ΠΎΠ±Π΅Π½ Π΄Π»Ρ ΠΏΡΠΎΡΡΡΡ ΡΠ°ΠΉΠ΄-ΡΡΡΠ΅ΠΊΡΠΎΠ². ΠΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠ°ΠΉΠ΄-ΡΡΡΠ΅ΠΊΡΠΎΠ², ΠΎΠ½ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅ΡΠ΄ΠΎΠ±Π΅Π½. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΠ³ΠΎΠΆΠ΄Π°Π΅ΡΡΡ redux-saga.Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ redux-saga? ΠΠΎΠΎΠ±ΡΠ΅, ΡΠ°Π³Π° β ΡΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΏΡΠΈΡΠ΅Π΄ΡΠΈΠΉ Ρ Π±Π΅ΠΊΠ΅Π½Π΄Π°.
Redux-saga β ΡΡΠΎ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΉΠ΄-ΡΡΡΠ΅ΠΊΡΠΎΠ². ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π΄ΠΈΡΠΏΠ°ΡΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ redux-thunk-ΠΎΠΌ, Π²Ρ ΡΠΎΠ·Π΄Π°ΡΡΠ΅ ΡΠ°Π³Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ Π²ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π½ΡΡΡΡ ΡΠ΅Π±Ρ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ thunk-ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΈΡ Π΄ΠΈΡΠΏΠ°ΡΡΠΈΡΠ΅, ΡΠ°Π³ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΊΠ°ΠΊ Π±Ρ Β«ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠΎΠ½Π΅Β». Π‘Π°Π³ΠΈ ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠ΅ ΡΠΊΡΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΈΡΠΏΠ°ΡΡΠΈΡ ΡΡΠΎΡ, ΠΈ ΡΠ΅ΡΠ°ΡΡ, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Ρ Π½ΠΈΠΌΠΈ.
Π Ρ ΡΠ°Π³ Π² ΡΠ΅Π΄Π°ΠΊΡΠ΅ Π΄Π²Π° ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ thunk-Π°ΠΌΠΈ:
β ΠΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΉΠ΄-ΡΡΡΠ΅ΠΊΡΠΎΠ²
β Π ΠΎΠ½ΠΈ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΡΠ΅ΡΡΠΈΡΡΡΡΡΡ
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°Π³Π°.ΠΠΎΠΌΠ½ΠΈΡΠ΅ ΡΡΠ°ΡΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π»ΠΎΠ³ΠΈΠ½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ thunk-Π°? ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΌΠ΅Π½ΡΠ΅ΠΌ Π΅Π³ΠΎ Π½Π° ΡΠ°Π³Ρ.
Π§ΡΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ?
β Π€ΡΠ½ΠΊΡΠΈΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠΌ
β ΠΡΡΠΌΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π·Π°ΠΌΠ΅Π½ΡΡΡΡΡ Π½Π° Π½Π΅ΠΏΡΡΠΌΡΠ΅, ΡΠ΅ΡΠ΅Π·call()
;dispatch()
Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π°put()
β Π‘ΡΠΈΠ»Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ (Π±Π΅Π· ΠΊΠΎΠ»Π±Π΅ΠΊΠΎΠ²) β ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²ΠΎΡ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡΠΠ° ΡΠΊΡΠ΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. ΠΠ΅ΡΠ²ΡΠΉ β ΠΏΡΠΎΡΡΠΎΠΉ: ΠΌΡ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π³Ρ ΠΈ ΠΏΡΠΎΡΠΈΠΌ redux-saga Π²ΡΠ·ΡΠ²Π°ΡΡ Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ ΡΠΊΡΠ΅Π½
LOGIN_REQUESTED
.ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ. ΠΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ ΠΊΠΎΠ΄ ΡΠ°Π³ΠΈ Π² Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ» ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌ Π² Π½Π°ΡΠ°Π»Π΅
yield take('LOGIN_REQUESTED')
. ΠΠΎΠ³Π΄Π° ΡΠ°Π³Π° Π½Π°ΡΠ½ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΉΠ΄ΡΡ Π΄ΠΎ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΈ Π½Π΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΡΠΊΡΠ΅Π½LOGIN_REQUESTED
.ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»ΠΎΠ²ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΊΡΠ΅Π½ΠΎΠ². ΠΠ΄Π΅ΡΡ ΠΊΠΎΠ΄ Π½Π° ΠΌΠ΅ΡΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ
ANOTHER_ACTION
, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»LOGIN_REQUESTED
.Π’Π°ΠΊ ΡΠ°Π³ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ. ΠΠ½ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π°
createStore()
.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° Ρ ΡΠ°Π³Π°ΠΌΠΈΠΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ°
Π‘ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ Π²ΡΡ ΠΏΡΠΎΡΡΠΎ.
ΠΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ β ΠΌΠΈΠ΄Π»Π²Π΅ΠΉΡΠ°ΠΌ!
ΠΠΎΡΠ΅ΠΌΡ?
β Π‘Π°ΠΉΠ΄-ΡΡΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ (thunk-Π°Ρ ΠΈΠ»ΠΈ ΡΠ°Π³Π°Ρ ), ΠΈ ΡΠ°ΠΊ Π±ΡΠ΄ΡΡ Π² ΠΌΠΈΠ΄Π»Π²Π΅ΠΉΡΠ°Ρ . ΠΡΡΡ ΡΠΌΡΡΠ» ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΎΡΡΠ°Π²ΡΡΡΡΡ Π±ΠΈΠ·Π½Π΅ΡΠ»ΠΎΠ³ΠΈΠΊΡ ΡΡΠ΄Π°
β ΠΠΈΠ΄Π»Π²Π΅ΠΉΡΡ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠΎΡΡ, Π° ΡΠ΅Π΄ΡΡΡΠ΅ΡΡ β ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΠ°ΡΡΠΈ
β ΠΠΎΠΆΠ½ΠΎ Π΄ΠΈΡΠΏΠ°ΡΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΊΡΠ΅Π½ΠΎΠ²
ΠΡΡ ΡΡΡΠ»ΠΊΠΈ:
Question: Where to put business logic / validations?
Recommendations for best practices regarding action-creators, reducers, and selectorsΠ’ΠΎ Π΅ΡΡΡ Π½Π° ΡΡΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΡΠΎΠΌ ΡΡΡΠ½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π»ΡΡΡΠΈΡ open-source ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π° ΡΠ΅Π΄Π°ΠΊΡΠ΅. Π Π΅Π΄ΡΡΡΠ΅ΡΡ Π² Π½ΡΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠ΅, β¦
…Π° ΡΠΊΡΠ΅Π½-ΠΊΡΠΈΡΠΉΡΠΎΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π²ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π§ΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² Π Π΅Π΄Π°ΠΊΡΠ΅? ΠΠ±ΡΡΠ½ΡΠ΅ ΡΠΊΡΠ΅Π½-ΠΊΡΠΈΠΉΡΡΠΎΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠΎ. ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ β ΡΠ»ΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ Π²Π΅ΡΠ½ΡΠ»Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠ»ΠΎΠΆΠ½ΠΎ. Π Π΅Π΄ΡΡΡΠ΅ΡΡ β ΠΏΡΠΎΡΡΠΎ.
(ΠΠ°ΠΊ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ: ΡΠΊΡΠ΅Π½-ΠΊΡΠΈΡΠΉΡΠΎΡΡ, Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΡΠΊΡΠ΅Π½-ΠΊΡΠΈΡΠΉΡΠΎΡΡ, ΡΠ΅Π΄ΡΡΡΠ΅ΡΡ.)Π― ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΏΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π³ΠΈ. Π‘Π°Π³ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ.
ΠΠΎΠΌΠ½ΠΈΡΠ΅ ΡΡΠΎΡ ΡΠ»Π°ΠΉΠ΄?
Π‘Π°ΠΌΡΠΉ ΠΊΠ°ΠΉΡ β Π²ΠΎΡ Π² ΡΡΠΈΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡΡ .call($.ajax)
Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ$.ajax
Π½Π°ΠΏΡΡΠΌΡΡ, Π° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Π° Π² Π²ΠΈΠ΄Π΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ JS-ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Π΄Π²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ΅ΡΠ΅Π·deepEqual
.ΠΠΎΡ ΡΠ°ΠΊΡΡ Π²ΠΎΡ ΡΠ°Π³Ρβ¦
β¦ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ²Π΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΌ Π΅Π³ΠΎ Π² Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ.
Π ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎ, ΡΡΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ$.ajax
ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΈΠΌ Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π°.Π’ΠΎ Π΅ΡΡΡ Π΅ΡΡ ΡΠ°Π·: ΠΌΡ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ² AJAX-Π·Π°ΠΏΡΠΎΡΠ°β¦
β¦ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΡ.
Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΈ Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠ΅ΠΉ ΡΠΊΡΠ΅Π½ΠΎΠ². ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠ°Π³Π° ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΊΡΠ΅Π½LOGIN_SUCCESS
, ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ ΡΡ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Π΅ΡΠ½ΡΠ» Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ, Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ.Π§ΡΠΎ Π΅ΡΡ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ»ΠΎΡΡ Π² Π΄ΠΎΠΊΠ»Π°Π΄
Ducks
redux-devtools
redux-devtools-extensionReselect
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡandrewngu/sound-redux
Hashnode/mern-starterΠΡΠ΄ΡΡΠ΅ ΡΠΌΠ½ΠΈΡΠΊΠ°ΠΌΠΈ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
twitter.com/iamakulov
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Redux
1- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Redux?
Π 2013 Π³ΠΎΠ΄Ρ, Facebook ΡΠΊΠ°Π·Π°Π», ΡΡΠΎΒ AngularJS Ρ GoogleΒ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ ΠΈ ΡΡΠΆΠ΅Π»ΡΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Π² ΡΡΠΎΠΌ Π³ΠΎΠ΄Ρ ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»ΠΈΒ ReactJSΒ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ². ΠΠΎΒ ReactJSΒ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π±ΠΈΠ±ΠΈΠ»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Component ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Β Component Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅, ReactJSΒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΅Π΄ΠΎΠ»Π³ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ,Β Facebook ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡΒ Javascript Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌΒ FluxΒ ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈΒ React.
Π ΡΠΎ Π²ΡΠ΅ΠΌΡ,Β Dan Abramov ΠΈΠ·ΡΡΠ°Π»Β Flux Ρ Facebook ΠΈ ΡΠ·ΡΠΊΒ ELM. ΠΠ° Π½Π΅Π³ΠΎ ΠΎΠΊΠ°Π·Π°Π»ΠΎ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ELM, ΠΈ ΠΎΠ½ Π²ΠΈΠ΄Π΅Π» ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Ρ Flux. Π 5/2015 Dan AbramovΒ ΠΎΠ±ΡΡΠ²ΠΈΠ» Π½ΠΎΠ²ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌΒ Redux, ΠΎΠ½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅Β ELMΒ ΠΈ ΡΡΡΡΠ°Π½ΡΠ΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΒ Flux.
ELM
ELMΒ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Functional Programming Language), Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ Π²Π»ΠΈΡΠ½ΠΈΠ΅ΠΌ ΠΎΡΒ Haskell, ΠΈ Π±ΡΠ» Π½Π°ΠΏΡΡΠΌΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ Π²Β JavaScript. ΠΠΎΠΌΠΈΠΌΠΎ ΡΡ ΠΎΠΆΠ΅ΡΡΠΈ Ρ Haskell,Β ΡΠ°ΠΌΠ°Ρ ΡΡΠΊΠΎΠ²ΡΡΠ°ΠΆΠ΅Π½Π½Π°Ρ ΡΠ°ΡΡΡ Ρ ELMΒ ΡΡΠΎ Π΅Π³ΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° (ELM Architecture), Π΄Π°Π½Π½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·Π²ΠΈΡΡ Π²Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ·ΡΠΊΠ°Ρ Π²ΠΈΠ΄Π°Β FPL (Functional Programming Language) Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
ΠΠΎΡΠ»Π΅ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ,Β Redux Π²ΡΠ·Π²Π°Π»Π° Π±ΡΡΠ½ΡΡ ΡΠ΅Π°ΠΊΡΠΈΡ ΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ»Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°Β React ΠΈ Π΄Π°ΠΆΠ΅Β Facebook ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»Β Dan Abramov ΡΠ°Π±ΠΎΡΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΈΒ Redux ΠΈΒ FluxΒ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ, Π½ΠΎ ReduxΒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΠΈ ΡΠΈΡΠΈΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ.
Flux vs Redux:
Π ΠΏΠ»Π°Π½Π΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (enduser), ΠΏΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². OK, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡΒ Flux ΠΈ Redux,Β ΡΡΠΎΠ±Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠΎ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ.
2- ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Flux
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°Β FluxΒ Π±ΡΠ»Π° Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π°Β Bill Fisher ΠΈ Jing Chen Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈΒ Facebook F8 Π² 2014 Π³ΠΎΠ΄Ρ. ΠΠ°Π½Π½Π°Ρ ΠΈΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»Π° ΠΌΠΎΠ΄Π΅Π»ΡΒ MVVM (Model View — View Model) ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠΈΡΠΈΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ Ρ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΠΌΒ «ΠΎΠ΄Π½ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ » (unidirectional data flow).
ΠΠ΅ΠΉΡΡΠ²ΠΈΡ (actions) ΠΈ ΡΠΎΠ±ΡΡΠΈΡ (events) Π² Flux ΠΏΡΠΎΠΉΠ΄ΡΡ ΡΠ΅ΡΠ΅Π·Β «ΡΠΊΡΡΡΡΡ ΡΡ Π΅ΠΌΡ» ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π²ΠΈΠ΄Π°:
- USER INTERFACE β action β> DISPATCHER β action β> STORES β notify changes β> USER INTERFACE
ΠΠΈΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡΒ FLUX:
ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ (ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ ΠΌΡΡΠΈ). Π‘ΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΒ Action, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΡΠ°Π½ΡΡΠΈΠΉ ΡΠ°ΠΊΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΊΠ°ΠΊ: Π²ΠΈΠ΄ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠΎΡΠ΄Π΄ΠΈΠ½Π°ΡΡ (Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΌΡΡΠΈ), Π² ΠΊΠ°ΠΊΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (state) ΠΌΠ΅Π½ΡΠ΅ΡΡΡ,. .
// Action object example: { type: 'ADD_TODO', payload: { title: 'Do something.', priority: 'HIGH', completed: false } }
Π§Π°ΡΡΠΈ Π² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅Β FLUX:
VIEW: ΡΡΠΎ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ (hierarchical composition) Ρ React Component.
ACTION: ΡΡΠΎ ΡΠΈΡΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΠΠ°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅,..), ΠΎΠ½ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΊΠ°ΠΊ:Β Π²ΠΈΠ΄ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠΎΡΠ΄Π΄ΠΈΠ½Π°ΡΡ, Π² ΠΊΠ°ΠΊΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (state) ΠΌΠ΅Π½ΡΠ΅ΡΡΡ,..
DISPATCHER: ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠΎΡΠΊΠ° Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Action Π½ΡΠΆΠ΄Π°ΡΡΠΈΠ΅ΡΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅.
STORE: Store ΠΏΡΠΈΡΠ»ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΒ Action, ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. StoreΒ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ actionΒ Π΄Π»Ρ ΠΎΡΠ²Π΅ΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΒ USER INTERFACE.
3- ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Redux
ReduxΒ ΠΈΠ·ΡΡΠΈΠ» Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Flux, Π½ΠΎ ΠΎΡΠ±ΡΠΎΡΠΈΠ» Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ.
- Redux Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ½ΡΡΠΈΠ΅Β DISPATCHER.
- Redux ΠΈΠΌΠ΅Π΅Ρ Π΅Π΄ΠΈΡΡΠ²Π΅Π½Π½ΡΠΉΒ STORE Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°Π·Π½ΡΡ Β STORE ΠΊΠ°ΠΊ ΡΒ Flux.
- ΠΠ±ΡΠ΅ΠΊΡΡΒ ActionΒ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ½ΡΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ Π½Π°ΠΏΡΡΠΌΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ STORE.
ΠΠΈΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡΒ REDUX:
Π§Π°ΡΡΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ REDUX:
VIEW PROVIDER: ΠΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΒ View Framework Π΄Π»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΒ STORE. ΠΡΠΈ ΡΡΠΎΠΌ,Β View Framework ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡΒ React ΠΈΠ»ΠΈΒ Angular,…
ACTION: ΡΡΠΎ ΡΠΈΡΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΠΠ°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅,..), ΠΎΠ½ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΊΠ°ΠΊ:Β Π²ΠΈΠ΄ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠΎΡΠ΄Π΄ΠΈΠ½Π°ΡΡ, Π² ΠΊΠ°ΠΊΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (state) ΠΌΠ΅Π½ΡΠ΅ΡΡΡ,. .
STORE: Π£ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡΒ dispatch(action).
MIDDLEWARE: (ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅) ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ± Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Action ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΊΒ STOREΒ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΊ REDUCER. ΠΒ MiddlewareΒ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ ΠΊΠ°ΠΊ Π·Π°ΠΏΠΈΡΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ², ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ «Π°ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²» (asynchronous requests), ΠΈΠ»ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° (dispatch) Π½ΠΎΠ²ΡΡ Β action,…
REDUCER: (Π Π΅Π΄ΡΠΊΡΠΎΡ) ΠΡΠΎ ΡΠΈΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠ°Ρ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: REDUCERΒ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠΏΠΈΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ ΠΌΠ΅Π½ΡΠ΅Ρ Π΅Π³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΠΎΠ³Π΄Π°, Π·Π°ΡΠ΅ΠΌ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Redux / WAYUP
Π Π°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ Π²Π΅ΡΡΡΠ°Π»ΡΡΠΈΠΊΠ°ΠΌΠΈ Β ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Π²ΡΡΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ: ΡΡΠΎ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅, Π° ΡΡΠΎ β Π½Π΅Ρ, Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ° ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π° Π½Π΅ ΡΡΠ° ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΡΡΠΎ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΡΡΠΈ Π²ΠΎΠΏΡΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΡΡΠΎΠΌ ΡΠΎΠΆΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ. ΠΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π² ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Redux, Π² ΠΏΡΠΈΡΠΈΠ½Π°Ρ Π΅Π³ΠΎ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΠΈ Π΅Π³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ .
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΅Π³ΠΎ Π»ΡΠ±ΡΡ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ β ΡΠΆΠ΅ Π½Π΅ ΡΠΈΠ»ΡΠ½ΠΎ, Π½ΠΎ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΡΡΠ΅ΡΠΎΠ² β ΡΡΠΎΠ»ΡΠΊΠΎ ΠΈ ΠΌΠ½Π΅Π½ΠΈΠΉ. Π£ΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΈΡ ΡΠ²ΡΠ·ΡΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ²Π°ΡΠΎ Π΄ΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Redux. ΠΠΎ Π²Π΄ΠΎΡ Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Flux Facebook, Redux ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ JavaScript. Π₯ΠΎΡΡ ΠΎΠ½ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ React, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Ρ ΡΡΠΏΠ΅Ρ ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΅Π³ΠΎ Ρ ΠΈΠ½ΡΠΌΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Β jQuery, Angular ΠΈΠ»ΠΈ Vue.
ΠΡΠΈ ΠΎΡΠ΅Π½Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ (ΠΎΠΊΠΎΠ»ΠΎ 2 ΠΠ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ) Redux Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ props (Π²Ρ ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ) Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ.
Π ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ Redux Π³Π»ΡΠ±ΠΎΠΊΠΎ ΡΠΊΠΎΡΠ΅Π½ΠΈΠ»ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ, Π½ΡΠΆΠ½ΠΎ Π»ΠΈ Π²Π΅Π±-ΠΌΠ°ΡΡΠ΅ΡΡ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠ°ΠΉΡΠ°.
ΠΠΎΠ³Π΄Π° ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ Redux
ΠΠ΄ΡΠ°Π²ΡΠΉ ΡΠΌΡΡΠ» ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π½Π΅Ρ ΡΠΌΡΡΠ»Π° ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π½ΠΈΡ , Π²Π΅Π΄Ρ ΠΈΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ°ΠΌΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΠΈ Π±Π»Π΅ΡΡΡΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°ΠΌΡΡ ΡΠ°Π·Π½ΡΡ Π·Π°Π΄Π°Ρ. ΠΠΎ ΡΠ°Π·Π²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ? ΠΠ°ΡΠ΅ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΡΠΆΠ΅Π½ ΡΡΠΎΡ Π²ΠΎΡ ΡΠ°ΠΌΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°?
ΠΠ΅ ΠΏΠΎΠΉΠΌΠΈΡΠ΅ ΠΏΡΠ΅Π²ΡΠ°ΡΠ½ΠΎ, React Π²Π΅Π»ΠΈΠΊ ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΡΡΠΈΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, ΡΡΠΎ ΠΌΡ ΡΠΆΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ React ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎ ΡΡΡΠΈ). ΠΠΎ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΌ ΡΡΠΈΠΌ Β«ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌΒ», ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΡΠΌ ΠΈ ΠΎΡΠ»ΠΎΠΆΠ½Π΅Π½Π½ΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΎΠΌ. ΠΡΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ, Π΄Π°ΠΆΠ΅ Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ² ΠΈ ΠΈΠ·Π»ΠΈΡΠ½Π΅ΠΉ ΡΡΡΠ΄ΠΎΡΠΌΠΊΠΎΡΡΠΈ.
Π ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Redux ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π²ΡΠ΅ΠΌΡ; ΠΎΠ½ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΠΈ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ Π² ΡΠ°ΠΊΠΈΡ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ . ΠΡΠ»ΠΈ Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π΅ΡΡΡ ΠΎΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Π² React, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ React ΡΠ°ΠΊΠΎΠ², ΡΡΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ props (Π²Ρ ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ) Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ. Π ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ , ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌΡΠΌΠΈ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΡΠΎΠ·Π΄Π°ΡΡΠΈΠΌΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ²ΡΠ·ΠΈ β ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΡΠ°ΠΌ ΠΊΠΎΠ΄ ΡΡΠ°Π½Π΅Ρ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΄Π½ΠΎ ΡΠΈΡΠ°ΡΡ ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ»ΡΡΡΠ°ΡΡ. ΠΠ°ΠΌ ΡΠ°ΠΌΠΈΠΌ, Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ.
Π§ΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ, ΠΎ ΡΠ΅ΠΌ ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΡ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π½ΠΈΠΆΠ΅.
Π React (ΠΊΠ°ΠΊ, Π²ΠΏΡΠΎΡΠ΅ΠΌ, ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°Ρ ) ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠΌΠΈ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ-ΠΏΠΎΡΠΎΠΌΠΎΠΊ (Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ), Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ. React ΠΎΠ±ΡΠ°ΡΠ°Π΅Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ (ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΡΠ·Ρ), ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ Flux; ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π° ΡΡΠ΅Π½Π΅ Redux.
Π‘ Redux Ρ Π½Π°Ρ Π΅ΡΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π²ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ A ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΎΠ½ΠΎ Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ B ΠΈ C, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π½Π°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ A, ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΡΡ ΡΠ°ΠΌΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠ· Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°:
Π£Π²ΠΈΠ΄Π΅Π»ΠΈ? ΠΡΠΎ Π΄Π°ΠΆΠ΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΈ. ΠΡΠ»ΠΈ Π±Ρ Π½Π°ΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π±Ρ ΡΡΠ·Π²ΠΈΠΌΡΡ ΠΈ Π½Π΅ΡΠΈΡΠ°Π΅ΠΌΡΡ Π±Π°Π·Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΎΡΠΈΠ±ΠΎΠΊ. Redux Π΄Π΅Π»Π°Π΅Ρ ΡΠΈΡΡΠ°ΡΠΈΡ Π΄ΡΡΠ³ΠΎΠΉ, ΠΌΠ΅Π½ΡΠ΅Ρ Π΅Ρ ΠΈ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΡΠ΅Ρ.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ A ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΈ Π΅ΡΠ»ΠΈ ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ B ΠΈ C Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² Π΄Π°Π½Π½ΡΡ ΠΎΠ± ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΡ ΠΈΠ· Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΠΎΡΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π΅ΡΡΠΎΠ²Π½ΠΎΠΉ.
ΠΠΎΠΌΠΈΠΌΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΌΠΈΡΡΠΈΠΈ, Redux ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΏΡΠΈ ΡΠ²ΠΎΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠΈ ΡΠ°ΠΊΠΈΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΡΡΠΎ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΌΠΈ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΎΡΠΎΠ±ΠΎ Π²Π°ΠΆΠ½ΡΠΌΠΈ ΡΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠΈΡ :
- ΠΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²
ΠΠΌΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄Π°Π½Π½ΡΡ (Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅), Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΌΠ°Π»ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² (Π΄Π°Π½Π½ΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°) Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°ΡΡΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ
Redux ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠΎΠ³ΠΈΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠΎΠ΄. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΈ, ΡΡΠΎ ΡΠ°Π·ΡΠΌΠ½ΠΎ, ΡΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠΌ.
- ΠΡΠΎΡΡΠΎΡΠ° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Π Π°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π² Redux Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠΈΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Ρ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°, ΡΡΠΎ ΠΊΠΎΡΡΠ΅Π»ΠΈΡΡΠ΅Ρ Ρ Π·ΠΎΠ»ΠΎΡΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΠΎΠΌ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°: Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ-ΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠ²Π»ΡΡΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌΠΈ.
ΠΠ΄ΠΎΡΠΎΠ²ΠΎ ΠΈ Π²ΡΠ΅ ΠΏΡΠΎΡΡΠΎ. ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Redux ΠΈ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ ΠΎΠ±ΠΎ Π²ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΠΌ. ΠΠΎ ΡΠ°ΠΊ Π»ΠΈ ΡΡΠΎ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ? Π§ΡΠΎ Π΅ΡΠ»ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ, ΠΊΠΎΠ³Π΄Π° Redux Π²ΡΠ΅ ΠΆΠ΅ Π½ΡΠΆΠ΅Π½?
ΠΠΎΠ³Π΄Π° Redux ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΡΠΈΡΠ°ΡΠ΅Π»ΡΠΌ Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ, Π½ΠΎ ΠΌΡΒ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΠΏΠΎΠΌΡΠ½Π΅ΠΌ ΠΎΠ± ΡΡΠΎΠΌ. ΠΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Redux. ΠΠ½ΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΠΈ Π²ΠΎΠ²ΡΠ΅ Π½Π΅ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎΠ³ΠΎ. ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π½ΠΈΠΆΠ΅ Π²Π΅ΡΠ΅Π½ Π΄Π»Ρ Π²Π°Ρ, Π²Π°ΠΌ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π½ΡΠΆΠ΅Π½ Redux:
- ΠΡ ΠΈ Π²Π°ΡΠΈ Π΄ΡΡΠ·ΡΡ (ΠΈΠ»ΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ) ΡΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π²Π°ΠΌ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎΒ Π² ΠΊΠ°ΠΊΠΎΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ΄Π΅Π»Π°ΡΡ/ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°ΡΡ/ΡΠΎΠ·Π΄Π°ΡΡ.
- ΠΡ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΎΠ±ΡΡΠ°Π΅ΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² React ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΌ ΠΈΠ½ΠΎΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅. Redux Π½Π΅ΠΎΠ±ΡΡΠ΅Π½ ΠΈ Π±Π΅Π· Π·Π½Π°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, ΡΠΎΠ³ΠΎ ΠΆΠ΅ React Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠ²Π°ΡΠΎ.
- ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠΎΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΠ· ΠΏΡΠΎΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Β ΡΠΎ ΠΎΠ½ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈ Π½Π΅ Π±ΡΡΡ ΡΠ°ΡΡΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Redux. ΠΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
- ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° (SSE) ΠΈΠ»ΠΈ Π³ΡΡΠΏΠΏΠΎΠΉ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ², ΡΡΠΎ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π½ΠΎ Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ.
- ΠΡΠ»ΠΈ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΠ±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ.
ΠΠ°ΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΡΠ²ΠΎΠ΅, ΡΠΎΠ³Π΄Π° Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ Redux ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ. Π Π½Π΅Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊΠ°Ρ ΡΠ°Π±ΠΎΡΠ° ΡΠ°ΠΉΡΠ° ΠΈ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ. ΠΡΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΌΠ°ΡΡΡΠ°Π±Π½ΠΎΡΡΠΈ. ΠΠΎ ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠ°ΠΌΠΎΠ³ΠΎ Redux, ΡΠΎ ΡΡΠΎΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΏΡΠΈ ΡΠ²ΠΎΠ΅ΠΌ Π²Π΅ΡΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 2 ΠΠ ΠΈΠΌΠ΅Π΅Ρ Π²Π΅ΡΡΠΌΠ° Π½Π΅ΠΏΡΠΎΡΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
Redux Π² ΡΠ°ΡΡΡΡ ΠΈ ΠΏΠΎΠ΄ Π»ΡΠΏΠΎΠΉ
ΠΠ΅ΠΉΡΡΠ²ΠΈΡ (actions)
ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. ΠΠ°Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΡΠΌΡ, Π²ΡΠ·ΠΎΠ² API ΠΈΠ»ΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π² Redux ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ type, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΈΠΏ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Β«Π²Π°ΠΆΠ½ΡΡΒ» ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (actions.js) Π² ΡΠ°Π±ΠΎΡΠ΅, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π° GitHub.
Π§ΡΠΎΠ±Ρ Π²ΡΠ·Π²Π°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Redux ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ dispatch(), ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Redux, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠ΅ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (dispatch. js)
Π Π΅Π΄ΡΡΠ΅ΡΡ (Reducer)
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Redux Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌΡΡ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ dispatch() Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ. Π€ΡΠ½ΠΊΡΠΈΡ dispatch() ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅Ρ Π΅Π³ΠΎ … Π²ΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΠΈ Π½ΡΠΆΠ½Ρ ΡΠ΅Π΄ΡΡΠ΅ΡΡ (Reducer).
Π Π΅Π΄ΡΡΠ΅ΡΡ (Reducer) β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΈΠ· Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π° Π·Π°ΡΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅ (handle-auth.js), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, Π° Π·Π°ΡΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅:
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ combineReducers(). ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ Π²ΡΠ΅ ΡΠ΅Π΄ΡΡΠ΅ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π² ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠ½ΠΊΡΠΈΠΉ (index-reducer.js), Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Β ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ΄Π΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠ΅Π΄ΡΡΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Ρ ΡΠΈΡΡΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΊΠΎΡΠΎΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ:
- ΠΠ½ΠΈ Π½Π΅ Π΄Π΅Π»Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
- ΠΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
- ΠΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅, ΡΠΎ Π΅ΡΡΡ ΠΈΡ Π½Π΅ ΡΡΠΎΠΈΡ ΠΌΠ΅Π½ΡΡΡ Π²ΠΎΠΎΠ±ΡΠ΅.
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠ΅ΡΠ΄ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Redux. ΠΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΡΡΠΈΠ½Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π²ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ. ΠΡΠ±ΠΎΠ΅ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Β Π΄Π°Π½Π½ΡΡ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π΄ΡΡΠ΅ΡΠΎΠ². Π Π²ΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠΎΠ΄ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° (create-store.js)
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Redux
ΠΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈΡΡ ΠΈ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Redux Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅, ΠΊΡΠΎΠΌΠ΅ Π²ΡΠ΅Π³ΠΎ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Redux Π±ΡΠ» ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ Π΄Π°ΡΡ ΡΡΠΊΠΎΠ΅ ΠΈ ΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Redux ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ΅Π»ΠΎΠΌ, ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π΄Π΅Π»Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ. ΠΠ΅Π· ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π½Π΅ΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΡΠ°ΠΊΠ°Ρ ΠΌΡΡΠ»Ρ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΡΠ΅Π΄Π°ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±Π΅Π· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
Π’Π°ΠΊ ΡΡΠΎ ΠΆΠ΅ ΡΡΠΎ Π·Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°ΠΊΠΈΠ΅ Β«ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡΒ»?
- ΠΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Β«ΡΠΈΡΡΡΠ΅Β», ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
- ΠΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°), ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠ°ΡΡΠ° (map), ΡΠΈΠ»ΡΡΡ (filter).
- Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
- Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΌΠ°ΡΡΠΈΠ²Ρ.
- ΠΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π΅Π²Π°ΠΆΠ΅Π½
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΡ , ΠΌΠ΅Π½ΡΡΠΈΡ ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Π‘Π»Π΅Π΄ΡΡ ΡΡΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ΄ΠΎΠΌ, Β ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ° ΡΠΏΡΠΎΡΠ°ΡΡΡΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠ°Π»Ρ ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Ρ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ°Π·ΠΎΠ²ΡΠΌΠΈ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠΎΡ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π²ΡΡΠ°Π²Π»ΡΡΡ Π² Π»ΡΠ±ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, ΡΡΠ΄Π°, Π³Π΄Π΅ ΠΎΠ½ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ.
ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ΄Π°. ΠΠΎ ΠΎΠΏΡΡΡ ΠΆΠ΅, ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΠΎΠ½ΡΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠΈΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π·Π°ΠΊΡΡΡΠΈΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. Π ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ Π½ΡΠΆΠ½ΡΡ ΠΏΠΎΠ½ΡΡΠΈΠΉ.
ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠΎ ΠΏΡΠ°Π²Π΄Π°. Redux ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΠΏΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π ΡΠ°ΠΊ ΠΆΠ΅, ΠΏΡΠ°Π²Π΄Π° ΠΈ ΡΠΎ, ΡΡΠΎ ΡΠ²ΠΎΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π·Π°ΡΠ»ΡΠΆΠΈΠ».Β ΠΠΎ ΡΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΌ, ΡΡΠΎ Redux ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , ΠΊΠ°ΠΊ WordPress, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ RedBox Π½Π°ΡΠ΅Π» ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Uber ΠΈ Twitter.Β Π Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΏΡΠ°Π²Π΄Π° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Redux Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ-ΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, ΠΏΡΠΎΡΡΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° (ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ) Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½Π΅ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² Redux; ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠΎ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Redux β ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΎΠΈΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΌ, ΠΊΠΎΠΌΡ Π½ΡΠ°Π²ΠΈΡΡΡ React; Π΅ΡΠ»ΠΈ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ React ΠΈ ΡΠΌΠ΅Π΅ΡΠ΅ Π² Π½Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠΏΡΠΎΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΈ Π²ΡΠ΅Π³Π΄Π°, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»Π°Π³Π°ΡΡ Redux ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΠΎ ΡΡΡ ΡΠΆ, ΠΊΠΎΠΌΡ ΠΈ ΡΡΠΎ Π±Π»ΠΈΠΆΠ΅, Π° ΡΠ°ΠΊΡΡ β ΠΎΠ½ΠΈ ΠΏΡΠΎΡΡΠΎ Π΅ΡΡΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ redux, Π΅ΡΠ»ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ react?
ΠΠΎΡΡΠΎΠΌΡ Π½Π΅Π΄Π°Π²Π½ΠΎ Ρ Π½Π°ΡΠ°Π» Π²Π½Π΅Π΄ΡΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ react (ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅). ΠΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ Π² ΡΠΎΠΌ, Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ redux? Π― ΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ , Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π΅ ΠΎΡΡΡΠ΄Π°. ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π΅Π³ΠΎ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. (ΠΠΎΠ²ΡΠΉ Π΄Π»Ρ react, redux. ΠΡΠΎ Π±ΡΠ»Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΡ ΡΠΎΡΠΊΠ° Π·ΡΠ΅Π½ΠΈΡ)
javascript
database
reactjs
firebase
react-redux
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
ΠΡΡΠΎΡΠ½ΠΈΠΊ
Mrnd Β Β
16 ΡΠ½Π²Π°ΡΡ 2019 Π² 08:17
3 ΠΎΡΠ²Π΅ΡΠ°
- Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ
Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ
React-Navigation ΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Redux
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, ΡΠΎΡΡΠΎΡΡΠ°Ρ ΠΈΠ· 3 ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΌΠΎΠ΅ΠΌ Tab-Navigator ΠΈΠ· React-Navigation , ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π° Π² Redux . ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ 3 ΡΠΊΡΠ°Π½ΠΎΠ² TN ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Redux Π΄Π»Ρ: fetchCollection ΠΈΠ· ΠΎΠ½Π»Π°ΠΉΠ½-Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅…
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ redux Π² React Π²Π½ΡΡΡΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Aurelia
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Aurelia Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» react Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΡΠ°Π½ΠΎΠ². Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ redux Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΌΠ½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ redux ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΡΡΡ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ. ΠΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π·Π½Π°Π΅Ρ,…
4
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Redux, ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ (Ρ ΠΎΡΡ ΠΎΠ½ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅: Π΄Π°Π½Π½ΡΠΌΠΈ).
ΠΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ½ ΡΠ½Π°ΡΠ°Π»Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΈΡ .
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π²Π½ΡΡΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Π°ΠΌ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°Π·Π½ΡΡ ΡΠΎΡΠΊΠ°Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅, Π²Π°ΠΌ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π΅Π΅ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅, Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΈ Ρ. Π΄.).
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° React, ΡΠ°ΠΊ ΠΊΠ°ΠΊ (Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ React) Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΠΎΠ² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ.
ΠΠ±ΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π½ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅Π³ΠΎ Π²Π½ΠΈΠ· ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π½Π΅ΠΌ Π½ΡΠΆΠ΄Π°ΡΡΡΡ.
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½ΠΎ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠ° Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Redux-ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ΅ΡΠ°Π΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΡΡΠ½ΡΠΌ ΠΈ ΡΠΈΡΡΡΠΌ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠ΅Π³ΠΎ).
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Saraband Β Β
16 ΡΠ½Π²Π°ΡΡ 2019 Π² 10:27
1
Redux-ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. Redux — ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ½ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎ Π½Π΅ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ 1:1 Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π° Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²Π°ΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ»ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΡΡΠΎΠ±Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠΎΠ³Π»ΠΈ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Redux ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π»ΡΠ±ΠΎΠΌΡ Π½ΡΠΆΠ½ΠΎΠΌΡ Π΅ΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ· ΡΡΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Prathmesh Kadam Β Β
16 ΡΠ½Π²Π°ΡΡ 2019 Π² 09:10
0
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΡΠΈΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Redux ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΈ Π±Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠΈΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ΅, ΡΡΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΡΠΈΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡΠΊΡΡΡΠΎΠ΅ ΠΌΠ΅Π½Ρ ΠΈΠ»ΠΈ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡΠΌΡ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Nikita Malyschkin Β Β
16 ΡΠ½Π²Π°ΡΡ 2019 Π² 08:24
ΠΠΎΡ ΠΎΠΆΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ:
Π‘Π΅ΡΠ²Π΅ΡΠ½Π°Ρ ΡΡΠΎΡΠΎΠ½Π° JWT Π΄Π»Ρ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ react-redux
Π― Π½ΠΎΠ²ΠΈΡΠΎΠΊ Ρ react ΠΈ redux . Π― ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ°Π», Π½ΠΎ Π²ΡΠ΅, ΡΡΠΎ Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ, — ΡΡΠΎ server-side rendering , Π½ΠΎ Ρ Π½Π΅ Ρ ΠΎΡΡ ΡΡΠΎΠ³ΠΎ (ΠΏΠΎΠΏΡΠ°Π²ΡΡΠ΅ ΠΌΠ΅Π½Ρ, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΠ±Π°ΡΡΡ). Π― Ρ ΠΎΡΡ Π²ΠΎΡ ΡΠ΅Π³ΠΎ: ΠΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ react-redux…
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ … ΠΌΠ°Π³Π°Π·ΠΈΠ½ Π² React Native Redux?
Π― ΡΡΡΡΡ Π½Π° React Native Redux. ΠΠΎ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ Π·Π½Π°ΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ …ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΈΠ»ΠΈ … Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²ΠΎ. ΠΠΎΠΉ ΠΊΠΎΠ΄ ΡΠ΅Π΄ΡΠΊΡΠΎΡΠ° ΡΠ°ΠΊΠΎΠ² … const defaultState = { … }; export default (store = defaultState, action)…
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Mapbox GL Ρ React ΠΈ Redux?
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ React ΠΈ Redux Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’Π΅ΠΏΠ΅ΡΡ Ρ Ρ ΠΎΡΡ Π²ΡΡΡΠΎΠΈΡΡ ΠΊΠ°ΡΡΡ Mapbox GL Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² ΠΌΠΎΠ΅ΠΌ Redux, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π·ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ°ΡΡΡ. Π§ΡΠΎ…
Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ React-Navigation ΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Redux
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, ΡΠΎΡΡΠΎΡΡΠ°Ρ ΠΈΠ· 3 ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΌΠΎΠ΅ΠΌ Tab-Navigator ΠΈΠ· React-Navigation , ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π° Π² Redux . ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ 3 ΡΠΊΡΠ°Π½ΠΎΠ² TN ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ…
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ redux Π² React Π²Π½ΡΡΡΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Aurelia
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Aurelia Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» react Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΡΠ°Π½ΠΎΠ². Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ redux Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΌΠ½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ…
Π― Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ notifcation Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ reactjs, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ react-redux-notify
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ react-redux-notify Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π― ΡΠ»Π΅Π΄ΠΎΠ²Π°Π» Π²ΡΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌ Π² ΠΈΡ ΡΠ΅ΠΏΠΎ Github….
ΠΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ react redux ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ Π½Π° DB Π²Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ — ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ°Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΠΊΠ°ΠΆΠ΅ΠΌ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΠ»Π° ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ETL, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ react-redux. ΠΠ°ΠΊ…
ΠΠ°ΠΊ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π³ΠΎΡΡΡΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ redux?
Π ΠΌΠΎΠ΅ΠΌ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠ΅ΡΠ½ΠΈ ΠΈΠ· ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡΠ° spotify Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π½Π° Π²Π΅ΡΠ΅ΡΠΈΠ½ΠΊΠ΅. Π― Ρ ΠΎΡΡ, ΡΡΠΎΠ±Ρ Π³ΠΎΡΡΠΈ (Π½Π΅Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ)…
Redux ΠΌΠ°Π³Π°Π·ΠΈΠ½ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ react
Π― ΡΠΎΠ·Π΄Π°Ρ ΡΠ°ΠΉΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠΈΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ΅ΡΡΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ. ΠΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² react ΠΈ redux java Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ…
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π»ΠΈ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ NEW API ΠΈΠ»ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Redux?
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ learn React, ΠΈ Ρ Π½Π°ΡΡΠΈΠ»ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Context API, Π½ΠΎ Ρ ΡΠ»ΡΡΠ°Π», ΡΡΠΎ Π΅ΡΡΡ new context api, ΠΈ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ ΠΈΠ·ΡΡΠΈΠ» React Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΊΡΡΡΠ° (ΠΊΠΎΠ½Π΅Ρ 2017 Π³ΠΎΠ΄Π°), Ρ Π½Π΅ Π·Π½Π°Ρ,. ..
ΠΠ»Π°Π²Π½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° — Π ΡΡΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Redux Saga
ΠΠΎΠ³ΠΎΡΠΈΠΏ Redux Saga
βββ ββ ββ ββ ββ ββ βββ
redux-saga
β ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ·Π²Π°Π½Π° ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΈ ΡΠ»ΡΡΡΠΈΡΡ ΠΏΠΎΠ±ΠΎΡΠ½ΡΠ΅ ΡΡΡΠ΅ΠΊΡΡ (Ρ.Π΅. ΡΠ°ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠ°ΠΊ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ
, ΠΈ «Π³ΡΡΠ·Π½ΡΠ΅» Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ Π΄ΠΎΡΡΡΠΏ ΠΊ Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΠΎΠΌΡ ΠΊΠ΅ΡΡ), ΡΠ΄Π΅Π»Π°ΡΡ Π»ΡΠ³ΠΊΠΈΠΌΠΈ Π² ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Π»ΡΡΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ.
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΡΠΎ ΡΠ°ΠΊ, ΡΡΠΎ saga β ΡΡΠΎ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΏΠΎΠ±ΠΎΡΠ½ΡΠ΅ ΡΡΡΠ΅ΠΊΡΡ. redux-saga
β ΡΡΠΎ ΠΌΠΈΠ΄Π»Π²Π°Ρ redux, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΡΠΎΡ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ, ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΠΈ ΠΎΡΠΌΠ΅Π½ΡΡΡΡΡ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΡΠ½ΡΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ redux, ΠΎΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ redux ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΈΡΠΏΠ°ΡΡΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ redux.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ES6, ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΈ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π»Π΅Π³ΠΊΠΈΠΌΠΈ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. (Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΡΡΠΈΠΌ, Π·Π΄Π΅ΡΡ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π΄Π»Ρ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΡ) Π’Π΅ΠΌ ΡΠ°ΠΌΡΠΌ, ΡΡΠΈ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π²ΡΠ³Π»ΡΠ΄ΡΡ, ΠΊΠ°ΠΊ Π²Π°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΉ JavaScript-ΠΊΠΎΠ΄. (Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ async
/await
, Π½ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΡ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ
Π½Π°ΠΌ)
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ redux-thunk
, ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²Π°ΡΠΈ Π²ΡΠ±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ
. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ redux thunk, Π²Ρ Π½Π΅ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ΡΡ Π² Π°Π΄Ρ ΠΊΠΎΠ»Π±ΡΠΊΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΠΈ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΈ Π²Π°ΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΡΡΠ°ΡΡΡΡ ΡΠΈΡΡΡΠΌΠΈ.
$ npm install --save redux-saga
ΠΈΠ»ΠΈ
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ UMD ΡΠ±ΠΎΡΠΊΠΈ Π½Π°ΠΏΡΡΠΌΡΡ Π² <script>
Π½Π° HTML ΡΡΡΠ°Π½ΠΈΡΠ΅. Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΡΡ ΡΠ΅ΠΊΡΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ. (ΠΠ»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ, ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠΎΠ΄ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠ΅Π½Π°.)
class UserComponent extends React.Component {
...
onSomeButtonClicked() {
const { userId, dispatch } = this.props
dispatch({type: 'USER_FETCH_REQUESTED', payload: {userId}})
}
. ..
}
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄ΠΈΡΠΏΠ°ΡΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. ΠΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ saga, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ USER_FETCH_REQUESTED
ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π²ΡΠ·ΠΎΠ²Ρ API Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
Π΄Π°Π½Π½ΡΡ
.
sagas.js
import { call, put, takeEvery, takeLatest } from 'redux-saga/effects'
import Api from '...'
β
function* fetchUser(action) {
try {
const user = yield call(Api.fetchUser, action.payload.userId);
yield put({type: "USER_FETCH_SUCCEEDED", user: user});
} catch (e) {
yield put({type: "USER_FETCH_FAILED", message: e.message});
}
}
β
function* mySaga() {
yield takeEvery("USER_FETCH_REQUESTED", fetchUser);
}
β
β
function* mySaga() {
yield takeLatest("USER_FETCH_REQUESTED", fetchUser);
}
β
export default mySaga;
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° Saga, ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠΌ Π΅Π΅ ΠΊ Redux Store, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠΈΠ΄Π»Π²Π°Ρ redux-saga
.
main.js
import { createStore, applyMiddleware } from 'redux'
import createSagaMiddleware from 'redux-saga'
β
import reducer from './reducers'
import mySaga from './sagas'
β
const sagaMiddleware = createSagaMiddleware()
const store = createStore(
reducer,
applyMiddleware(sagaMiddleware)
)
β
sagaMiddleware.run(mySaga)
β
Π’Π°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ±ΠΎΡΠΊΠ° umd redux-saga
, Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ dist/
. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ umd-ΡΠ±ΠΎΡΠΊΠΈ, redux-saga
Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΊΠ°ΠΊ ReduxSaga
Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ window
.
Π²Π΅ΡΡΠΈΡ umd ΠΏΠΎΠ»Π΅Π·Π½Π°, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Webpack ΠΈΠ»ΠΈ Browserify. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½Π΅ΠΉ, Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· unpkg.
ΠΠΎΡΡΡΠΏΠ½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ±ΠΎΡΠΊΠΈ:
ΠΠ°ΠΆΠ½ΠΎ! ΠΡΠ»ΠΈ Π²Π°Ρ ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π±ΡΠ°ΡΠ·Π΅Ρ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ES2015, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠ°Π½ΡΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ΅Π· babel plugin) ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ runtime, ΡΠ°ΠΊΠΎΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΡΡΠΎΡ. Runtime Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎ redux-saga:
import 'regenerator-runtime/runtime'
import sagaMiddleware from 'redux-saga'
$ git clone https://github.com/redux-saga/redux-saga.git
$ cd redux-saga
$ npm install
$ npm test
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ (ΠΏΠΎΠΊΠ°) ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Redux.
ΠΡΠΈΠΌΠ΅ΡΡ ΡΡΡΡΡΠΈΠΊΠ°
ΠΡΡΡ ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΡΡΡΡΠΈΠΊΠ°.
counter-vanilla
ΠΠ΅ΠΌΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π΅ ΠΎΠ±ΡΡΠ½ΡΠΉ JavaScript ΠΈ UMD-ΡΠ±ΠΎΡΠΊΠΈ. ΠΡΠ΅ ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΈ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² index.html
.
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ index.html
Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
ΠΠ°ΠΆΠ½ΠΎ: Π²Π°Ρ Π±ΡΠ°ΡΠ·Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ. ΠΠΎΠ΄ΠΎΠΉΠ΄ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Chrome/Firefox/Edge.
counter
ΠΠ΅ΠΌΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π΅ webpack
ΠΈ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠ΅ API takeEvery
.
$ npm run counter
β
$ npm run test-counter
cancellable-counter
ΠΠ΅ΠΌΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π΅ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠ΅ API Π΄Π»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΠΎΡΠΌΠ΅Π½Ρ Π·Π°Π΄Π°ΡΠΈ.
$ npm run cancellable-counter
ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΊΠΎΡΠ·ΠΈΠ½ΠΎΠΉ
$ npm run shop
β
$ npm run test-shop
$ npm run async
β
$ npm run test-async
ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ (Ρ Π³ΠΎΡΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ webpack)
Redux-Saga Ρ TypeScript ΡΡΠ΅Π±ΡΠ΅Ρ DOM. Iterable
ΠΈΠ»ΠΈ ES2015.Iterable
. ΠΡΠ»ΠΈ Π²Π°Ρ target
ΡΡΠΎ ES6
, Ρ Π²Π°Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠΆΠ΅ Π²ΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ ES5
Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅Π³ΠΎ. ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΉΠ» tsconfig.json
ΠΈ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Ρ ΠΎΠΏΡΠΈΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π»ΠΎΠ³ΠΎΡΠΈΠΏ Redux-Saga Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ logo.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΡΠ΅ Π½Π°Ρ Π΅ΠΆΠ΅ΠΌΠ΅ΡΡΡΠ½ΡΠΌΠΈ ΠΏΠΎΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΈ ΠΏΠΎΠΌΠΎΠ³ΠΈΡΠ΅ Π½Π°ΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π½Π°ΡΡ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. [Π‘ΡΠ°ΡΡ ΠΌΠ΅ΡΠ΅Π½Π°ΡΠΎΠΌ]
βββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ βββ
Π‘ΡΠ°Π½Ρ ΡΠΏΠΎΠ½ΡΠΎΡΠΎΠΌ ΠΈ ΠΏΠΎΠ»ΡΡΠΈ ΡΠ²ΠΎΠΉ Π»ΠΎΠ³ΠΎΡΠΈΠΏ Π² Π½Π°ΡΠ΅ΠΌ README Π½Π° GitHub Ρ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° Π²Π°Ρ ΡΠ°ΠΉΡ. [Π‘ΡΠ°ΡΡ ΡΠΏΠΎΠ½ΡΠΎΡΠΎΠΌ]
βββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ βββ
A Designer’s Guide — Smashing Magazine
ΠΠ½Π°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ, ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½Π°Ρ ΡΠΈΠ»Π° Redux Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²ΠΎΠΌ? ΠΡ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Redux? ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ³Π»ΡΠ±ΠΈΠΌΡΡ Π² ΡΠΎ, ΡΡΠΎ Redux ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅Π»Π°ΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ ΡΠ²ΠΎΠΈ Π²Π΅ΡΠΈ, ΠΊΠ°ΠΊΠΎΠ²Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΈ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ.
ΠΡ ΡΠ»ΡΡΠ°Π»ΠΈ ΠΎ Redux? Π§ΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅? ΠΠ΅ Π³ΡΠ³Π»ΠΈΡΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°!
- Β«ΠΠ΅ΠΎΠ±ΡΡΠ½ΡΠΉ Π±ΡΠΊΡΠ½Π΄Β».
- Β«Π― ΡΠ»ΡΡΠ°Π» ΠΎΠ± ΡΡΠΎΠΌ, Π½ΠΎ Π½Π΅ Π·Π½Π°Ρ, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ React? »
- Β«ΠΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± Ρ ΡΠ°Π½ΠΈΡΡ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ React.β
Π― Π·Π°Π΄Π°Π» ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π±ΠΎΠ»Π΅Π΅ 40 Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠ°ΠΌ. ΠΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΈΡ ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΎΡΠ²Π΅ΡΡ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ Π·Π½Π°ΡΡ, ΡΡΠΎ Redux ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ React ΠΈ Π΅Π³ΠΎ Π·Π°Π΄Π°ΡΠ° — Β«ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌΒ».
ΠΠΎ Π·Π½Π°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠΎ Β«Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅Β»? ΠΡ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½Π°Ρ ΡΠΈΠ»Π° Redux Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²ΠΎΠΌ? ΠΠ½Π°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ, ΡΡΠΎ Redux Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ React Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ? Π₯ΠΎΡΠΈΡΠ΅ Π»ΠΈ Π²Ρ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ ΠΊ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (ΠΈΠ»ΠΈ Ρ ΠΎΡΡ Π±Ρ Π·Π° ΠΎΠ±Π΅Π΄ΠΎΠΌ) ΠΎ ΡΠΎΠΌ, ΡΡΠΎΠΈΡ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Redux? ΠΡ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Redux?
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ, Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ ΠΏΠΎΠ»Π½ΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ Redux : ΡΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅Π»Π°ΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ ΡΠ²ΠΎΠΈ Π²Π΅ΡΠΈ, ΠΊΠ°ΠΊΠΎΠ²Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π΄ΠΈΠ·Π°ΠΉΠ½.
ΠΠΎΡ ΡΠ΅Π»Ρ — ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠ°ΠΌ Π²ΡΠΎΠ΄Π΅ Π²Π°Ρ. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π½ΡΡΠ΅ Π½Π΅ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π°, Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ (ΠΈ Π²Π΅ΡΠ΅Π»ΠΎ) ΠΏΠΎΠ½ΡΡΡ Redux. ΠΠΆΠΈΠ΄Π°ΠΉΡΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ ΠΈ ΠΊΠ°ΡΠ°ΠΊΡΠ»Π΅ΠΉ — Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠΎΠ².
ΠΠΎΡΠΎΠ²Ρ ΠΊ ΠΏΠΎΠ΅Π·Π΄ΠΊΠ΅?
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Redux?
ΠΠ° ΡΠ²Π΅ΡΡ Π²ΡΡΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Redux — ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ ΡΠ΅Π±Π΅ ΠΆΠΈΠ·Π½Ρ. ΠΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π²Π°Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ»ΡΡΠ°Π»ΠΈ, Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ° — Β«ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²ΠΎΠΌΒ». Π― ΠΎΠ±ΡΡΡΠ½Ρ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ°Π·Π΄Π΅Π»Π°ΠΌΠΈ ΠΏΠΎΠ·ΠΆΠ΅.ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Ρ ΠΎΡΡΠ°Π²Π»Ρ Π²Π°Ρ Ρ ΡΡΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΎΠΉ:
Redux ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, Π½ΠΎ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΊΡΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ. (ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ ΠΠΈΠ±ΠΈ) (ΠΏΡΠ΅Π²ΡΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ)
ΠΠΎΡΠ΅ΠΌΡ Π²Π°ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ Π΄Π΅Π»ΠΎ?
Redux Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ΅ΠΌ Π΅Π³ΠΎ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²ΠΈΠ΄Π°. ΠΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΡΡΠ΅Π±ΡΡΡΠΈΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ·Π½Π°ΡΠ°Π΅Ρ Π»ΠΈ ΡΡΠΎ, ΡΡΠΎ ΠΌΡ, Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΡ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄Π΅ΡΠΆΠ°ΡΡΡΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π°Π»ΡΡΠ΅?
ΠΠ΅Ρ. Π― Π΄ΡΠΌΠ°Ρ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΠ½ΡΡΡ ΡΡΠΎ. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ΅Π½ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ, Π²Π΅ΡΠ½ΠΎ? Π§ΡΠΎΠ±Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π² Π΄Π΅ΡΠ°Π»ΡΡ .ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅Π»Π°ΡΡ, ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π½Π°ΡΡ ΠΎ Π΅Π³ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°Ρ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΡ .
Β«ΠΠΈΠ·Π°ΠΉΠ½ — ΡΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΈ ΠΎΡΡΡΠ°Π΅ΡΡΡ. ΠΠΈΠ·Π°ΠΉΠ½ — ΡΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Β».
— Π‘ΡΠΈΠ² ΠΠΆΠΎΠ±Ρ
Π§ΡΠΎ ΡΠΌΠ΅Π΅Ρ Redux?
ΠΠ½ΠΎΠ³ΠΈΠ΅ Π»ΡΠ΄ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Redux Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ React. ΠΡΠΎ ΡΠ°ΠΌΡΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π΄ΠΈΠΊΠΎΠΉ ΠΏΡΠΈΡΠΎΠ΄Π΅, ΠΈ Redux ΡΠ»ΡΡΡΠ°Π΅Ρ ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ React Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ (ΠΏΠΎΠΊΠ°).
ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΡΠΊΠΎΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½Π°Ρ ΡΠΈΠ»Π° Redux Π²ΡΡ ΠΎΠ΄ΠΈΡ Π΄Π°Π»Π΅ΠΊΠΎ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΡΡΠΎΠ³ΠΎ.ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠΎ Β«ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅Β», Π΄Π°Π²Π°ΠΉΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠΈΠΌ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠΌ: Β«Π΄Π°Π½Π½ΡΠ΅Β». Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ — ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠ΅Π½ΡΡΡΡΡ . Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅? Π ΠΎΠ±ΡΠ΅ΠΌ, Π΅ΡΡΡ ΡΡΠΈ Π°ΡΠΏΠ΅ΠΊΡΠ° Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ:
- ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
- ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
- ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΡΠ°Π½ΠΈΡΡ Dribbble shot .ΠΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅? ΠΠ½ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΡΠΎΡΠΎ ΠΏΡΠΎΡΠΈΠ»Ρ Π°Π²ΡΠΎΡΠ°, ΠΈΠΌΡ, Π°Π½ΠΈΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ GIF-ΡΠ°ΠΉΠ», ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΠ΄Π΅ΡΠ΅ΠΊ, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ Ρ. Π.
ΠΠ°Π½Π½ΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠ½ΠΈΠΌΠΊΠΎΠ² Dribbble (Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠ΅Π²ΡΡ)
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π² ΠΎΠ±Π»Π°ΠΊΠ΅ ΠΈ ΠΊΡΠ΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΡ
ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ. ΠΠ°Π»Π΅Π΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΡΠ°ΡΡΠΈ ΡΡΠΈΡ
Π΄Π°Π½Π½ΡΡ
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΌΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π²ΠΈΠ΄ΠΈΠΌ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ Π½Π°Π·Π½Π°ΡΠ°Π΅ΠΌ URL-Π°Π΄ΡΠ΅Ρ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΡΠΈΠ»Ρ Π°ΡΡΠΈΠ±ΡΡΡ src
ΡΠ΅Π³Π° HTML img
:
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΊ ΡΠ½ΠΈΠΌΠΊΡ Dribbble ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π·Π²Π΅Π·Π΄ΠΎΡΠΊΡ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ HTML.
ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΡ ΡΡΠΈΡ ΡΡΠ΅Ρ Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°ΡΡΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΈ React ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π΄Π»Ρ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. ΠΠ½ΠΎΠ³Π΄Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π² React ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ. ΠΠΎ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, ΡΠΏΡΠ°Π²Π»ΡΡΡ Π΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ React ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΡΠ΅ ΡΡΡΠ΄Π½Π΅Π΅. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π»ΡΠ΄ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Redux ΠΊΠ°ΠΊ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
Π React ΠΌΡ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ (ΡΠΌ. Β«Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React?Β»).
Π‘ΡΡΠ°Π½ΠΈΡΠ° ΡΠ½ΠΈΠΌΠΊΠ° Dribbble Ρ ΡΠ°Π·Π±ΠΈΠ²ΠΊΠΎΠΉ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ (Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠ΅Π²ΡΡ)
ΠΡΠ»ΠΈ Π½Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π³Π΄Π΅ ΠΈΡ Ρ ΡΠ°Π½ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°?
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ ΠΏΠΎΠ²Π°Ρ ΠΆΠΈΠ²Π΅Ρ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ . ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΠΏΠΎΠΈΡΠΊ Π²ΡΠ΅Ρ ΠΈΠ½Π³ΡΠ΅Π΄ΠΈΠ΅Π½ΡΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²Π»Π΅Π½ΠΈΡ Π±Π»ΡΠ΄.
ΠΠ°ΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± — ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈ Ρ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΌ, Π³Π΄Π΅ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ.ΠΡΠΎ ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Ρ-ΠΏΠΎΠ²Π°Ρ ΠΏΠΎΡΠ΅Π» ΠΏΠΎΠΊΡΠΏΠ°ΡΡ ΠΎΠ²ΠΎΡΠΈ ΠΈ ΠΌΡΡΠΎ ΠΏΡΡΠΌΠΎ Ρ Π΄Π°Π»Π΅ΠΊΠΈΡ ΡΠ΅ΡΠΌ.
ΠΠ°ΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±: ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. (ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ ΠΠΈΠ±ΠΈ) (ΠΏΡΠ΅Π²ΡΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ)
Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ°ΡΡΠΎΡΠΈΡΠ΅Π»Π΅Π½. ΠΠ°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² — Π΄Π°ΠΆΠ΅ Π΄Π»Ρ ΠΎΠ΄Π½ΠΈΡ ΠΈ ΡΠ΅Ρ ΠΆΠ΅ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ²Π°ΡΠ° ΠΏΠΎΡΡΠ°ΡΡΡ Π²ΠΏΡΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π±Π΅Π½Π·ΠΈΠ½Π° ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΡΡ ΡΡΠ΄Π° ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ.
Π Redux ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΠΈΡ Π² ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ΄ΠΎΠ±Π½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅Β». ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π΄Π°Π½Π½ΡΠ΅ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π»ΡΠ±ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ.ΠΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ±Π»ΠΈΠ·ΠΎΡΡΠΈ Π΅ΡΡΡ ΡΡΠΏΠ΅ΡΠΌΠ°ΡΠΊΠ΅Ρ, Π³Π΄Π΅ Π½Π°ΡΠΈ ΠΏΠΎΠ²Π°ΡΠ° ΠΌΠΎΠ³ΡΡ ΠΊΡΠΏΠΈΡΡ Π²ΡΠ΅ ΠΈΠ½Π³ΡΠ΅Π΄ΠΈΠ΅Π½ΡΡ. Π‘ΡΠΏΠ΅ΡΠΌΠ°ΡΠΊΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π³ΡΡΠ·ΠΎΠ²ΠΈΠΊΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΊΠΈ ΠΎΠ²ΠΎΡΠ΅ΠΉ ΠΈ ΠΌΡΡΠ° ΠΎΠΏΡΠΎΠΌ Ρ ΡΠ΅ΡΠΌ. ΠΡΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅, ΡΠ΅ΠΌ ΠΏΡΠΎΡΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΠ²Π°ΡΠΎΠ² ΠΏΠΎΠΉΡΠΈ Π½Π° ΡΠ΅ΡΠΌΡ ΡΠ°ΠΌΠΈ!
ΠΠ°Π³Π°Π·ΠΈΠ½ ΡΠ°ΠΊΠΆΠ΅ ΡΠ»ΡΠΆΠΈΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΈΡΡΠΈΠ½Ρ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°, Π° Π½Π΅ ΠΎΡΠΊΡΠ΄Π°-Π»ΠΈΠ±ΠΎ Π΅ΡΠ΅. ΠΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ Π²ΡΠ΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
Redux ΠΊΠ°ΠΊ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄Π°Π½Π½ΡΡ . (ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Beebee) (ΠΏΡΠ΅Π²ΡΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ)
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
Π’ΠΎΠ»ΡΠΊΠΎ Ρ React Π΅ΡΡΡ Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΏΡΠΎΡΠΈΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΡΠ΅Π½Ρ Π»ΡΠ±Π΅Π·Π½ΠΎΠ³ΠΎ ΡΠ΅Ρ-ΠΏΠΎΠ²Π°ΡΠ° Π¨ΠΎΡΠ²Π΅Π»Π»Π° ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΠΊΡΠΏΠΊΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ Π΅Π³ΠΎ Π΄ΡΡΠ·Π΅ΠΉ-ΠΏΠΎΠ²Π°ΡΠΎΠ². ΠΠ½ Π΅Π·Π΄ΠΈΠ» Π½Π° Π³ΡΡΠ·ΠΎΠ²ΠΈΠΊΠ΅ Π½Π° ΡΠ΅ΡΠΌΡ ΠΈ Π²ΠΎΠ·ΠΈΠ» Π²ΠΊΡΡΠ½ΠΎΡΡΠΈ. ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Β«ShotΒ» Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Dribbble, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΡΡΠΈΠ½Ρ.
ΠΠ·Π²Π»Π΅ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. (ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Beebee) (ΠΏΡΠ΅Π²ΡΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ)
ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½, ΡΠ΅ΠΌ Π½Π°ΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠΎ ΠΊΠ°ΠΊ Π¨ΠΎΡΠ²Π΅Π»Π» ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΈΠ½Π³ΡΠ΅Π΄ΠΈΠ΅Π½ΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΠ²Π°ΡΠ°ΠΌ? ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ HTML? ΠΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π²Π½Π΅ΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠ°ΠΊ ΡΡΡΠ°ΡΠ΅ΡΡ Π² ΡΠ΅Π»Π΅, Π½Π° Π²ΡΠ΅ΠΌ ΠΏΡΡΠΈ, ΠΏΠΎΠΊΠ° Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ ΠΏΡΠ½ΠΊΡΠ° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, URL Π°Π²Π°ΡΠ°ΡΠ° Π°Π²ΡΠΎΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΠ· Β«ShotΒ» Π² Β«ShotDetailΒ», Π² Β«TitleΒ» ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π² ΡΠ΅Π³
. ΠΡΠ»ΠΈ Π½Π°ΡΠΈ ΠΏΠΎΠ²Π°ΡΠ° ΠΆΠΈΠ²ΡΡ Π² ΠΊΠ²Π°ΡΡΠΈΡΠ΅, ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ ΡΠ΅ΡΠ΅Π· props. (ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Beebee) (ΠΏΡΠ΅Π²ΡΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ)
Π§ΡΠΎΠ±Ρ Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΊ ΠΌΠ΅ΡΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π° ΠΏΡΡΠΈ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² Π΄Π°Π½Π½ΡΡ . ΠΡΠ»ΠΎ Π±Ρ ΠΎΠ±ΠΈΠ΄Π½ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ ΡΡΠ°ΠΆΠ΅ΠΉ Π±ΡΠ»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ!
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠΏΠ΅ΡΠΌΠ°ΡΠΊΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΡ ΠΎΡ Π΄Π²Π΅ΡΠΈ Π΄ΠΎ Π΄Π²Π΅ΡΠΈ?
Π‘ Redux 1 ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΡΠ°Π²Π»ΡΡΡ Π»ΡΠ±ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
1 ΠΡΠ»ΠΈ Π±ΡΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΠΎΡΠ½ΡΠΌ, ΡΡΠΎ Π΄ΡΡΠ³Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ react-redux
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π² React. ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π° Π½Π΅ ΡΠ°ΠΌ Redux.ΠΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ react-redux ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° Π»ΡΠ΄ΠΈ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Redux ΠΈ react-redux Π²ΠΌΠ΅ΡΡΠ΅, Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² Redux.
ΠΡΡΠ°Π²Π»ΡΠΉΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Redux. (ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Beebee) (ΠΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ)
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ : Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ React (16.3) Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ Β«ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠΉΒ» API, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΡΡΠΈ ΡΡ ΠΆΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ. Π’Π°ΠΊ ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Redux, ΡΠ΅ΡΡΠ΅Π·Π½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ Π½Π° React 16.3! ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ (ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: Π²ΠΏΠ΅ΡΠ΅Π΄ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°).
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΠ½ΠΎΠ³Π΄Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΠΏΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π²ΠΈΡΡΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ ΠΎΡΠ²Π΅ΡΠΎΠ² ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΡ Π² ΡΡΠ°ΡΠ΅ Π² ΡΠ°Π·Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈ ΠΏΡΠΈ ΡΠ°Π·Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ .
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π»ΠΎΠΌΠ»ΡΡΡΠΈΠΌ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π½Π΅Ρ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ Π²ΡΠ΅ΠΉ ΡΡΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ. ΠΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ.
Redux ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΠΈ ΠΏΠΎΠ±Π΅ΠΆΠ΄Π°ΡΡ . ΠΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ°Π·Π±ΠΈΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ Β«ΡΠ΅Π΄ΡΠΊΡΠΎΡΡΒ». ΠΡΠΈ ΡΠ΅Π΄ΡΠΊΡΠΎΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅, ΡΡΠΎΠ±Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅.
Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π½Π° ΡΠ΅Π΄ΡΠΊΡΠΎΡΡ. (ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Beebee) (ΠΏΡΠ΅Π²ΡΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ)
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΠ»Π΅Π΄ΠΈΡΠ΅ Π·Π° Π½Π΅Π΄Π°Π²Π½ΠΈΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΠΌΠΈ React. ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ Β«ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠΌΒ» API, Π² Π±ΡΠ΄ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ React ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½ΠΎΠ²ΡΠΉ API Β«setStateΒ».ΠΡΠΎ ΡΠΏΡΠΎΡΡΠΈΠ»ΠΎ Π±Ρ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΡΠ°ΡΡΠΈ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΡ Π½ΠΎΠ²ΡΠΉ API ΡΡΠ°Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Redux Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΈΠΌ Π°ΡΠΏΠ΅ΠΊΡΠΎΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ.
Π Π΅Π°Π»ΡΠ½Π°Ρ ΡΠΈΠ»Π° Redux
ΠΠΎΠΊΠ° ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Redux — ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π»Π΅ΠΉΠ±Π» Π΄Π»Ρ React. ΠΡΠ΄ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Redux Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π°ΡΠΏΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ React ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ. ΠΠΎ React Π±ΡΡΡΡΠΎ Π΄ΠΎΠ³ΠΎΠ½ΡΠ΅Ρ! Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΡΠ½ ΠΠ±ΡΠ°ΠΌΠΎΠ², ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ Redux, ΠΏΠ°ΡΡ Π»Π΅Ρ Π½Π°Π·Π°Π΄ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΡΡ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ React Π² Facebook. ΠΠ½ΠΈ Π±ΡΠ»ΠΈ Π·Π°Π½ΡΡΡ ΡΠ°Π±ΠΎΡΠΎΠΉ Π½Π°Π΄ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠΌΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡΠΌΠΈ Π² React: ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠΉ API (Π²ΡΠΏΡΡΠ΅Π½ Π² Π²Π΅ΡΡΠΈΠΈ 16.3), ΡΠ»ΡΡΡΠ΅Π½Π½ΡΠΉ API ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ (ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½ Π² ΡΠ΅Π²ΡΠ°Π»Π΅ 2018 Π³ΠΎΠ΄Π°), Π»ΡΡΡΠΈΠΉ setState API ΠΈ Ρ. Π.
Π‘Π΄Π΅Π»Π°Π΅Ρ Π»ΠΈ Redux ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ?
Π£Π³Π°Π΄Π°ΠΉΡΠ΅, ΡΡΠΎ? Π― Π΅ΡΠ΅ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π» Π²Π°ΠΌ Π½Π°ΡΡΠΎΡΡΡΡ ΠΌΠΎΡΡ Redux!
ΠΠΎΡΠ½ΠΎΡΡΡ Redux Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ. (ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Beebee) (ΠΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠ΅Π²ΡΡ)
Redux Π²ΡΠ½ΡΠΆΠ΄Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΡΡΡΠΎΠ³ΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ΄Π°ΡΡ Redux Π±ΠΎΠ»ΡΡΡΡ ΠΌΠΎΡΠ½ΠΎΡΡΡ (Π΄Π°, ΡΠΈΠ»Ρ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Ρ!):
- ΠΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ (ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ) Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΠΎΡΠΊΡΡΡΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ.ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΌΠ΅ΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΡΡΠΊΠΎΠΉ Π½Π° Π±ΡΠΌΠ°Π³Π΅.
- ΠΠ°ΠΆΠ΄ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ) Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΠΎΡΠΊΡΡΡΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΏΠΈΡΠ°ΡΡ, ΡΡΠΎ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ ΠΌΠ΅Π½ΡΡΡ. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, Π½Π΅ ΠΎΡΡΠ°Π²ΠΈΠ² ΠΎΡΠΌΠ΅ΡΠΊΠΈ. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π° ΡΠ»Π΅Π½Π³Π΅ Redux Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΒ».
- ΠΠ°Ρ ΠΊΠΎΠ΄, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠΈΠΉ Π΄Π°Π½Π½ΡΠ΅, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΎΡΠΌΡΠ»Π°. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΡΠΈ ΡΠΎΠΌ ΠΆΠ΅ Π²Π²ΠΎΠ΄Π΅. ΠΠ²Π°Π΄ΡΠ°Ρ 4 Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π²Π΅Π½ 16 Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π²Ρ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅.
ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠ»Π΅Π΄ΡΠ΅ΡΠ΅ ΡΡΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΠΎΠ»ΡΠ΅Π±ΡΡΠ²ΠΎ. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½Π°ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈΠ»ΠΈ Π΄ΠΎΡΠΎΠ³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ. ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ². 2
2 Π― ΡΠΎΠ±ΡΠ°Π» ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΠ· ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΡΠ½Π° ΠΠ±ΡΠ°ΠΌΠΎΠ²Π° Β«ΠΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ReduxΒ» ΠΈ Π΅Π³ΠΎ Β«Π’Π΅ΠΌΠ° Π²ΠΎΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ² ReactΒ».
ΠΡΠΌΠ΅Π½ΠΈΡΡ, ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ
ΠΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠΌΠ΅Π½Ρ / Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈ ΠΎΡΠΌΠ΅Π½Π΅ / ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΡΠΎ Π² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°.ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π·Π°ΠΏΠΎΠ·Π΄Π°Π»ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅ΠΏΡΠΎΠΌ Π΄Π»Ρ Π±Π΅ΡΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ.
ΠΡΠΌΠ΅Π½ΠΈΡΡ, ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ. (ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Beebee) (ΠΏΡΠ΅Π²ΡΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ)
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Redux ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π»ΠΎΡΡ ΠΎΡΠΊΡΡΡΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΡΠΌΠ΅Π½Ρ / ΠΏΠΎΠ²ΡΠΎΡΠ° ΠΏΠΎΡΡΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ. ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠΌΠ΅Π½Ρ / ΠΏΠΎΠ²ΡΠΎΡΠ° Ρ Redux ΡΠΌΠ΅ΡΠ°ΡΡΡΡ Π½Π° ΠΏΡΠΎΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅.
Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠ½Π°Ρ ΡΡΠ΅Π΄Π°
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΌ Google, Π³Π΄Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Π½Π°Π΄ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Redux.Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΎΠ½ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠΆΠ΅Π»ΠΎΠΉ Π°ΡΠ»Π΅ΡΠΈΠΊΠΎΠΉ.
Google Docs (ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Beebee) (ΠΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠ΅Π²ΡΡ)
Redux ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΏΠΎ ΡΠ΅ΡΠΈ. ΠΠ΅Π³ΠΊΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ.
ΠΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
ΠΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ — ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± ΡΠ»ΡΡΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΡΡΡΠ΅Π΅ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ ΡΠ΅ΡΡ. ΠΡΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , ΡΡΠ΅Π±ΡΡΡΠΈΡ ΡΠ΅Π°ΠΊΡΠΈΠΈ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠ΅Ρ ΠΎΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π»ΠΈΡΠ°.
ΠΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Beebee) (Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ)
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Twitter, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠ΅Π»ΠΊΠ°Π΅ΡΠ΅ ΡΠ΅ΡΠ΄Π΅ΡΠΊΠΎ Π² ΡΠ²ΠΈΡΠ΅, Π΅ΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΡΠΎΡ ΡΠ²ΠΈΡ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΆΠ΄Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅Ρ ΠΎΠ±ΠΌΠ°Π½ΡΡΡ! ΠΠ½ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΄ΡΠ΅.
Π‘Π΅ΡΠ΄ΡΠ΅ Twitter (ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Beebee) (ΠΏΡΠ΅Π²ΡΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ)
ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅.ΠΠΎΠ³Π΄Π° ΡΡΠΎ-ΡΠΎ Π½Π΅ ΡΠ°ΠΊ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
Redux ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠΈ ΠΎΡΠΌΠ΅Π½Π΅ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ, Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΈ ΠΎΡΠΌΠ΅Π½ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ°.
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ
Redux ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. ΠΠΎΠ·ΠΆΠ΅, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΌΠΎΠΆΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΌΠ΅ΡΡΠ°, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΎΠ½ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΠ΅ΡΡΠ²Π°Π»ΠΎΡΡ.
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ / Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° ΠΈΠ³ΡΡ (ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Beebee) (ΠΏΡΠ΅Π²ΡΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ)
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΈΠ³ΡΡ Ρ Redux, Π²Π°ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΅ΡΠ΅ ΠΏΠ°ΡΠ° ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ / Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° ΠΈΠ³ΡΡ, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ΄ .
ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Redux Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Β«ΠΎΡΠΏΡΠ°Π²ΠΈΡΡΒ» Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π»ΡΠ±ΡΡ Π΄Π°Π½Π½ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Hyper, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-ΡΠ΅ΡΠΌΠΈΠ½Π°Π», ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Redux. Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Β«hyperpowerΒ» Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π±ΡΡΠ·Π³ΠΈ ΠΊ ΠΊΡΡΡΠΎΡΡ ΠΈ Π²ΡΡΡΡΡ ΠΈΠ²Π°Π΅Ρ ΠΎΠΊΠ½ΠΎ. ΠΠ°ΠΊ Π²Π°ΠΌ ΡΡΠΎΡ Β«Π²Π°ΡΒ» ΡΠ΅ΠΆΠΈΠΌ? (ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ)
Π Π΅ΠΆΠΈΠΌ Β«Π²Π°ΡΒ» Π² Hyper, ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. (ΠΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠ΅Π²ΡΡ)
ΠΡΠ»Π°Π΄ΠΊΠ° Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
ΠΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ? ΠΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠ΅ΡΠ΅ΠΌΠ°ΡΡΠ²Π°Π΅ΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ°ΡΡΠ²Π°Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π²ΠΏΠ΅ΡΠ΅Π΄, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΡΠΎΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°, ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ³ΡΠ°Π΅ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ.
Redux Π²ΠΎΠΏΠ»ΠΎΡΠ°Π΅Ρ Π² ΠΆΠΈΠ·Π½Ρ ΡΡΡ ΠΌΠ΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². Redux DevTools ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠΏΡΠ°Π²Π»ΡΡΡ Ρ ΠΎΠ΄ΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π΅ΠΎ YouTube — ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Ρ ΠΏΠΎΠ»Π·ΡΠ½ΠΎΠΊ!
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ? ΠΠΎΠΌΠ½ΠΈΡΠ΅ ΡΡΠΈ ΡΡΡΠΎΠ³ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ Redux? ΠΡΠΎ ΡΠ΅ΠΊΡΠ΅Ρ Π²ΠΎΠ»ΡΠ΅Π±ΡΡΠ²Π°.
ΠΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² Redux DevTools ΠΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠ΅Π²ΡΡ
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΡΠ΅ΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠΎ-ΡΠΎ Π½Π΅ ΡΠ°ΠΊ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ Ρ ΠΎΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΠ½Π° ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΈ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎ, ΡΡΠΎ ΠΎΠ½Π° ΡΠ΄Π΅Π»Π°Π»Π°.ΠΠ°ΡΠ΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΡΠ°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²ΡΡΡΠ½ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ° ΡΠ½ΠΎΠ²Π°. ΠΡΡΠ΅Ρ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΡΠΏΠ»ΡΠ²ΡΠ°ΡΡΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΠΎΡΠ½ΡΠΌ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Ρ ΡΡΡΠ΄ΠΎΠΌ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ.
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΊΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ ΡΡΠΎΠ³ΠΎ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΡ Β«Π‘ΠΎΠΎΠ±ΡΠΈΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅Β». Π‘ΠΈΡΡΠ΅ΠΌΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½Π° ΡΠ΄Π΅Π»Π°Π»Π°. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΎΡΠΈΠ±ΠΊΡΒ» ΠΈ ΡΠΌΠΎΡΡΠΈΡ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ°. ΠΡΡΠΎΠΊ ΡΠ°Π·Π΄Π°Π²Π»Π΅Π½ Π½Π° ΠΌΠ΅ΡΡΠ΅, Π²ΡΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½Ρ!
ΠΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π±Ρ, Π΅ΡΠ»ΠΈ Π±Ρ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Redux Bug Reporter. ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ? ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Redux ΡΠ²ΠΎΡΡΡ ΡΡΠ΄Π΅ΡΠ°.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ (ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Beebee) (ΠΏΡΠ΅Π²ΡΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ)
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ Redux
Π’ΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ Redux, — ΠΏΠ°Π»ΠΊΠ° ΠΎ Π΄Π²ΡΡ ΠΊΠΎΠ½ΡΠ°Ρ . ΠΠ½ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΌΠΎΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠ·ΡΠ²Π°ΡΡ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΡΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ.
ΠΡΡΡΠ°Ρ ΠΊΡΠΈΠ²Π°Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
Π£ Redux ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΡΡΡΠ°Ρ ΠΊΡΠΈΠ²Π°Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΈ ΠΏΡΠΈΠ²ΡΠΊΠ½ΡΡΡ ΠΊ Π΅Π³ΠΎ Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅ΡΠ½ΠΎΡΡΡΠΌ. ΠΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΠ·ΡΡΠ°ΡΡ Redux ΠΈ React ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΄Π»Ρ Π²Π°Ρ Π½ΠΎΠ²ΠΈΡΠΎΠΊ.
ΠΠΎΠ΄ Β«BoilerplateΒ»
ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Redux ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΊΠΎΠ΄Π°. Π§Π°ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΊΠΎΡΠ½ΡΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»Π°. ΠΡΠ΄ΠΈ ΠΆΠ°Π»ΠΎΠ²Π°Π»ΠΈΡΡ Π½Π° Β«ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠΉΒ» ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΏΠΈΡΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Redux.
Π― Π·Π½Π°Ρ, ΡΡΠΎ Π·Π²ΡΡΠΈΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ²ΠΎ. Π Π°Π·Π²Π΅ Ρ Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠ», ΡΡΠΎ Redux ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ? ΠΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ΄ΠΎΠΌΠΎΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΡΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ ΡΠ°ΡΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΡΡΠ΄Ρ ΡΡΠ΄Π°ΠΌΠΈ.Π’ΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π° Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΠΎΡΡΠ΄ΠΎΠΌΠΎΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ: ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΌΡΡΡΠ΅ ΠΏΠΎΡΡΠ΄Ρ, Π΄Π΅Π·ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡ ΠΏΠΎΡΡΠ΄Ρ ΠΈ Ρ. Π. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅ΡΠΈΡΡ, ΡΠΎΠ³ΠΎ ΡΡΠΎΠΈΡ Π»ΠΈ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²Π»Π΅Π½ΠΈΠ΅!
Π¨ΡΡΠ°Ρ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
Redux ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ·-Π·Π° Π½Π°Π»Π°Π³Π°Π΅ΠΌΡΡ ΠΈΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ. ΠΠ½ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ . Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΈ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΡ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΊΠΎΠ³Π΄Π° Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΎΠ½ΠΈ ΡΠ°ΡΡΠΎ ΠΌΠ΅Π½ΡΡΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,Π³ΡΠ°ΠΌΠΌ. ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΡΡΡΠΎ Π½Π°Π±ΠΈΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅), ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠΎΠΆΠ΅Ρ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠ°ΡΡ Π²ΡΠ»ΡΠΌ.
ΠΠΎΠ½ΡΡ: Redux Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ React
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠ΅ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Redux ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ React. ΠΠΎΡ ΠΎΠΆΠ΅, Redux Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π±Π΅Π· React. ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Redux Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅Ρ React Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π²Π°ΠΆΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΌΡ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΈ ΡΠ°Π½Π΅Π΅. ΠΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ΄Π½Π°ΠΊΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Redux ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π»ΡΠ±ΡΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΌΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Angular, Ember.js ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ jQuery, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π²Π°Π½ΠΈΠ»ΡΠ½ΡΠΌ JavaScript.ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΏΠΎΠ³ΡΠ³Π»ΠΈΡΡ, Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΡΡΠΎ, ΡΡΠΎ, ΡΡΠΎ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΡΠΎ. ΠΠ±ΡΠΈΠ΅ ΠΈΠ΄Π΅ΠΈ Redux ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ Π²Π΅Π·Π΄Π΅!
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Redux Ρ ΡΠΌΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ — Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ React.
Redux Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ. (ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Beebee) (ΠΏΡΠ΅Π²ΡΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ)
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Redux ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡ. ΠΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠΎΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΡΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ. Π Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² — ΠΎΡΠ΅Π½ΠΈΡΡ, ΡΡΠΎΠΈΡ Π»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡ, ΠΈ ΠΏΡΠΈΠ½ΡΡΡ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
ΠΠ°ΠΊ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠΉΠΌΠ΅ΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ Redux, ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ Π²Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ Π² ΠΏΡΠΈΠ½ΡΡΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π΄ΠΈΠ·Π°ΠΉΠ½Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ? ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²ΡΡΡΡΠΏΠΈΡΡ Π·Π° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΡΠΌΠ΅Π½Ρ / ΠΏΠΎΠ²ΡΠΎΡΠ°, ΡΡΠΎΠ±Ρ ΡΠ±ΡΠ°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΎΠΊΠΎΠ½ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ? ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ ΠΎΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΡΠ»ΡΡΡΠ°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΎΠΏΡΡ ΠΏΡΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ?
ΠΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ ΠΈΠΌΠ΅Π» Π² Π²ΠΈΠ΄Ρ Π‘ΡΠΈΠ² ΠΠΆΠΎΠ±Ρ, Π³ΠΎΠ²ΠΎΡΡ Β«Π΄ΠΈΠ·Π°ΠΉΠ½ — ΡΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΒ».
(rb, ra, il)
reduxjs / redux: ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ JavaScript
Redux — ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ JavaScript.
(ΠΠ΅ ΠΏΡΡΠ°ΡΡ Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ WordPress — Redux Framework)
ΠΠ½ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎ, ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ°Π·Π½ΡΡ ΡΡΠ΅Π΄Π°Ρ (ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ , ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ) ΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠ΅ΡΡΠΈΡΡΡΡΡΡ. ΠΠ΄ΠΎΠ±Π°Π²ΠΎΠΊ ΠΊΠΎ Π²ΡΠ΅ΠΌΡ, ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠΌ, ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Redux Π²ΠΌΠ΅ΡΡΠ΅ Ρ React ΠΈΠ»ΠΈ Ρ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ.
ΠΠ½ ΠΊΡΠΎΡΠ΅ΡΠ½ΡΠΉ (2 ΠΠ, Π²ΠΊΠ»ΡΡΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ) ΠΈ ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ³Π°ΡΡΡ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ Π½Π°Π΄ΡΡΡΠΎΠ΅ΠΊ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
Redux Toolkit — ΡΡΠΎ Π½Π°Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠΈ Redux. ΠΠ½ ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ ΡΠ΄ΡΠΎ ββRedux ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅, ΠΏΠΎ Π½Π°ΡΠ΅ΠΌΡ ΠΌΠ½Π΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Redux. Redux Toolkit ΡΡΡΠΎΠΈΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΡ Π½Π°ΠΌΠΈ Π»ΡΡΡΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΠΊ, ΡΠΏΡΠΎΡΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π·Π°Π΄Π°Ρ Redux, ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Redux.
npm install @ reduxjs / toolkit react-redux
ΠΠ»Ρ ΡΠ°ΠΌΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Redux:
npm ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ redux
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. ΠΠ° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ Redux ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ https://redux.js.org :
ΠΠΊΡΠΏΠΎΡΡ PDF, ePub ΠΈ MOBI Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π² Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΌ. ΠΠ° ΡΡΡΠ°Π½ΠΈΡΠ΅: paulkogel / redux-offline-docs.
ΠΡΡΠ»Π°ΠΉΠ½-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΡΠΌ .: devdocs
Π£Π·Π½Π°ΡΡ Redux
Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π°ΠΌ Redux
Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ Redux Essentials — ΡΡΠΎ ΡΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ Β«ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ·Β», ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠΈΡ, Β«ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ReduxΒ», Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π°ΡΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΡ API ΠΈ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ Ρ ΡΡΠΎΠ³ΠΎ.
Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π°ΠΌ Redux
Π£ΡΠ΅Π±Π½ΠΈΠΊ ΠΡΠ½ΠΎΠ²Ρ Redux — ΡΡΠΎ ΡΡΠ΅Π±Π½ΠΈΠΊ Β«ΡΠ½ΠΈΠ·Ρ Π²Π²Π΅ΡΡ Β», ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΈΡ, Β«ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ReduxΒ» ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΠΈ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ, ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Redux.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠΎΠΊΠΈ
ΠΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ
- Redux FAQ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Redux, Π° Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«Π Π΅ΡΠ΅ΠΏΡΡΒ» docs ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠ΅Π΄ΡΠΊΡΠΎΡΠ° ΠΈ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ².
- Redux ΠΠ°ΡΠΊ ΠΡΠΈΠΊΡΠΎΠ½ ΠΈΠ· ΡΠ΅ΡΠΈΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² «Practical Redux» Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ Ρ React ΠΈ Redux (ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΊΠ°ΠΊ , ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΡΡΡ Π½Π° Educative.io ).
- Π‘ΠΏΠΈΡΠΎΠΊ ΡΡΡΠ»ΠΎΠΊ React / Redux ΡΠ°Π·Π±ΠΈΡ Π½Π° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΡΡΠ°ΡΡΠΈ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅Π΄ΡΠΊΡΠΎΡΠ°ΠΌΠΈ ΠΈ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠ°ΠΌΠΈ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ±ΠΎΡΠ½ΡΠΌΠΈ ΡΡΡΠ΅ΠΊΡΠ°ΠΌΠΈ, Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Redux ΠΈ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΡΠΌ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°ΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΌΡ Π΄ΡΡΠ³ΠΎΠΌΡ.
- ΠΠ°ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ·Π΄Π°Π»ΠΎ ΡΡΡΡΡΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Redux Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π½Π°Π΄ΡΡΡΠΎΠ΅ΠΊ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ².ΠΠ° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Β«ΠΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°Β» ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½Π°ΡΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Redux .
Π‘ΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΠΉ
ΠΠΎΠΌΠΎΡΡ ΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅
#redux channel ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° Reactiflux Discord — ΡΡΠΎ Π½Π°Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΡΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Redux. Reactiflux — ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΎΠ±ΡΠ°ΡΡΡΡ, Π·Π°Π΄Π°ΡΡ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ — ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΠ΅ ΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ Π½Π°ΠΌ ΡΠ°ΠΌ!
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ
Redux — ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π½ΠΎ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π»ΠΈ ΠΎΠ½ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ.ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Redux ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΊΡΠΎ-ΡΠΎ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ — Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π½Π°ΠΉΠ΄ΠΈΡΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΡ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ²Π΅ΡΠΎΠ² ΠΎ ΡΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Redux:
- Π£ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°Π·ΡΠΌΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΌΡ Π΄Π°Π½Π½ΡΡ , ΠΌΠ΅Π½ΡΡΡΠΈΠ΅ΡΡ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
- ΠΠ»Ρ Π²Π°ΡΠ΅Π³ΠΎ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π° Π½ΡΠΆΠ΅Π½ Π΅Π΄ΠΈΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΡΡΠΈΠ½Ρ
- ΠΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΠ΅, ΡΡΠΎ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠΆΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ
ΠΠ°, ΡΡΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΡΡΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½Ρ ΠΈ ΡΠ°ΡΠΏΠ»ΡΠ²ΡΠ°ΡΡ, Π½ΠΎ Π½Π° ΡΠΎ Π΅ΡΡΡ Π²Π΅ΡΠΊΠ°Ρ ΠΏΡΠΈΡΠΈΠ½Π°. Π’ΠΎΡΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Redux Π² ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°Π·Π»ΠΈΡΠ½Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΠ°Π·Π½Π°Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Redux, ΡΠΌ .:
ΠΠΏΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
ΠΡΠ½ ΠΠ±ΡΠ°ΠΌΠΎΠ² (Π°Π²ΡΠΎΡ Redux) Π½Π°ΠΏΠΈΡΠ°Π» Redux Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΠ²ΠΎΠΈΠΌ Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠΌ Π½Π° React Europe ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«ΠΠΎΡΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° Ρ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΡΠΌΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈΒ». ΠΠ³ΠΎ ΡΠ΅Π»ΡΡ Π±ΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ API, Π½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ.Redux ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»Π°, Π³ΠΎΡΡΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ, ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π·Π°ΠΏΠΈΡΡ ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
ΠΠ»ΠΈΡΠ½ΠΈΡ
Redux ΡΠ°Π·Π²ΠΈΠ²Π°Π΅Ρ ΠΈΠ΄Π΅ΠΈ Flux, Π½ΠΎ ΠΈΠ·Π±Π΅Π³Π°Π΅Ρ Π΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, Π±Π΅ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΠΎΡ Elm.
ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Flux ΠΈΠ»ΠΈ Elm, Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ Ρ Redux ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ.
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ
ΠΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² Π΄Π΅ΡΠ΅Π²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π²Π½ΡΡΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° . ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ — ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ , ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ, ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½.
Π§ΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΎΡΠ²Π΅Ρ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠΈΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅Π΄ΡΠΊΡΠΎΡΠ° , ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΠΈΡΠ»ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠ°ΡΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΈΠΌΠΏΠΎΡΡ {createStore} ΠΈΠ· "redux" / ** * ΠΡΠΎ ΡΠ΅Π΄ΡΠΊΡΠΎΡ - ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ * ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ Β«ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎΒ», ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.* Π‘ΠΈΠ³Π½Π°ΡΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅Π΄ΡΠΊΡΠΎΡΠ°: (ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅) => newState * * Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Redux Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ JS, ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ. * ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π²Ρ * Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π΅ΡΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. * * ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΡ ΡΡΠ»ΠΎΠ²Π½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π² ΡΠ΅Π΄ΡΠΊΡΠΎΡΠ΅. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ * ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ switch, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. * / function counterReducer (state = {value: 0}, action) { ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ (Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅. ΡΠΈΠΏ) { case 'ΡΡΠ΅ΡΡΠΈΠΊ / ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π½ΡΠΉ': return {Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: state.value + 1} case 'ΡΡΠ΅ΡΡΠΈΠΊ / ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅': return {Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: state.value - 1} Π΄Π΅ΡΠΎΠ»Ρ: ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° } } // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Redux, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. // ΠΠ³ΠΎ API: {subscribe, dispatch, getState}. ΠΏΡΡΡΡ store = createStore (counterReducer) // ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ subscribe () Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π² ΠΎΡΠ²Π΅Ρ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. // ΠΠ±ΡΡΠ½ΠΎ Π²Ρ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, React Redux), Π° Π½Π΅ subscribe () Π½Π°ΠΏΡΡΠΌΡΡ.// ΠΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ. store.subscribe (() => console.log (store.getState ())) // ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ - ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅. // ΠΠ΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ, Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ, Π° Π·Π°ΡΠ΅ΠΌ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ. store.dispatch ({ΡΠΈΠΏ: 'ΡΡΠ΅ΡΡΠΈΠΊ / ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π½ΡΠΉ'}) // {Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: 1} store.dispatch ({ΡΠΈΠΏ: 'ΡΡΠ΅ΡΡΠΈΠΊ / ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π½ΡΠΉ'}) // {Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: 2} store. dispatch ({ΡΠΈΠΏ: 'ΡΡΠ΅ΡΡΠΈΠΊ / ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅'}) // {Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: 1}
ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ, Π²Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ ΠΌΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ Ρ ΠΏΡΠΎΡΡΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ .ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΡΠ΅Π΄ΡΠΊΡΠΎΡΠΎΠΌ , ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π ΡΠΈΠΏΠΈΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Redux Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠ½Ρ. ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠ° Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΡΠ΅ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΡΠ΅Π΄ΡΠΊΡΠΎΡ Π½Π° ΠΌΠ΅Π½ΡΡΠΈΠ΅ ΡΠ΅Π΄ΡΠΊΡΠΎΡΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ°ΡΡΡΠΌΠΈ Π΄Π΅ΡΠ΅Π²Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ. ΠΡΠΎ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ React Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π½ΠΎ ΠΎΠ½ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅ΡΡΠΈΠΊΠ°, Π½ΠΎ ΠΏΡΠ΅Π»Π΅ΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π° Π² ΡΠΎΠΌ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΎΠ½ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΡΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠΎΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΌΡΡΠ°ΡΠΈΡ Π΄ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΅Π΅ Π²ΡΠ·Π²Π°Π»ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ΅Π°Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΈΡ , ΠΏΡΠΎΡΡΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅.
Redux Toolkit, ΠΏΡΠΈΠΌΠ΅Ρ
Redux Toolkit ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠΈ Redux ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°. Π Redux Toolkit ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ Π»ΠΎΠ³ΠΈΠΊΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
import {createSlice, configureStore} ΠΈΠ· '@ reduxjs / toolkit' const counterSlice = createSlice ({ ΠΈΠΌΡ: 'ΡΡΠ΅ΡΡΠΈΠΊ', Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅: { Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: 0 }, ΡΠ΅Π΄ΡΠΊΡΠΎΡΡ: { ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΎ: ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ => { // Redux Toolkit ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΏΠΈΡΠ°ΡΡ "ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡΡΡ" Π»ΠΎΠ³ΠΈΠΊΡ Π² ΡΠ΅Π΄ΡΠΊΡΠΎΡΠ°Ρ .ΠΡΠΎ // ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Immer, // ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² "ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΡΠ΅ΡΠ½ΠΎΠ²ΠΈΠΊΠ°" ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½ΠΎΠ²ΡΠΉ // Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ state.value + = 1 }, ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΎ: ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ => { state.value - = 1 } } }) ΡΠΊΡΠΏΠΎΡΡ const {ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ, ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ} = counterSlice.actions const store = configureStore ({ ΡΠ΅Π΄ΡΠΊΡΠΎΡ: counterSlice. reducer }) // ΠΡΠ΅ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° ΠΌΠ°Π³Π°Π·ΠΈΠ½ store.subscribe (() => ΠΊΠΎΠ½ΡΠΎΠ»Ρ.ΠΆΡΡΠ½Π°Π» (store.getState ())) // ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² `dispatch`, Π½ΠΎ ΠΎΠ½ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ Π΄Π»Ρ Π½Π°Ρ store.dispatch (ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΎ ()) // {Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: 1} store.dispatch (ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΎ ()) // {Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: 2} store.dispatch (ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΎ ()) // {Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: 1}
Redux Toolkit ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡΠΎΡΠΊΡΡ Π»ΠΎΠ³ΠΈΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ Π»Π΅Π³ΡΠ΅ ΡΠΈΡΠ°ΡΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ»Π΅Π΄ΡΡ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Redux ΠΈ ΠΏΠΎΡΠΎΠΊΡ Π΄Π°Π½Π½ΡΡ .
ΠΡΠΈΠΌΠ΅ΡΡ
ΠΠΎΡΡΠΈ Π²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΡ CodeSandbox. ΠΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΊΠΎΠ΄Π°, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ³ΡΠ°ΡΡ ΠΎΠ½Π»Π°ΠΉΠ½.
ΠΡΠ·ΡΠ²Ρ
Β«ΠΠ½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΡΠΎ, ΡΡΠΎ Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ Ρ ReduxΒ»
Π¦Π·ΠΈΠ½ Π§Π΅Π½, ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ Flux
Β«Π― ΠΏΠΎΠΏΡΠΎΡΠΈΠ» ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Redux Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ Π³ΡΡΠΏΠΏΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ JS FB, ΠΈ ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠΈΠ» Π²ΡΠ΅ΠΎΠ±ΡΡΡ ΠΏΠΎΡ Π²Π°Π»Ρ. ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΡΡΡΠ°ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ° Β».
ΠΠΈΠ»Π» Π€ΠΈΡΠ΅Ρ, Π°Π²ΡΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Flux
Β«ΠΠ΄ΠΎΡΠΎΠ²ΠΎ, ΡΡΠΎ Π²Ρ ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ°Π΅ΡΠ΅ Π»ΡΡΡΠΈΠΉ Flux, Π½Π΅ Π΄Π΅Π»Π°Ρ Flux ΡΠΎΠ²ΡΠ΅ΠΌΒ».
ΠΠ½Π΄ΡΠ΅ Π‘ΡΠ°Π»ΡΡ, ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ Cycle
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ
ΠΡΠΎΠ±Π°Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΡ ΠΠΆΠ΅ΠΉΠΌΠΈ ΠΡΡΠΎΠ½Ρ Π·Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° redux
NPM.
ΠΠΎΠ³ΠΎΡΠΈΠΏ
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π»ΠΎΠ³ΠΎΡΠΈΠΏ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° GitHub.
ΠΡΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
ΠΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ.
ΠΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠΏΡΡΠΊ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ ΠΏΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΡΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π²ΡΠΏΡΡΠΊΠΎΠ² GitHub.
ΠΠΎΠΊΡΠΎΠ²ΠΈΡΠ΅Π»ΠΈ
Π Π°Π±ΠΎΡΠ° Π½Π°Π΄ Redux ΡΠΈΠ½Π°Π½ΡΠΈΡΠΎΠ²Π°Π»Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ.
ΠΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΈΠ· Π²ΡΠ΄Π°ΡΡΠΈΡ
ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ:
Π‘ΠΌ. ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠΊΡΠΎΠ²ΠΈΡΠ΅Π»Π΅ΠΉ Redux, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°ΡΡΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ Π»ΡΠ΄Π΅ΠΉ ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ Redux.
ΠΠΈΡΠ΅Π½Π·ΠΈΡ
MIT
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΏΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ
Redux — ΡΡΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ JavaScript, Π²ΡΠΏΡΡΠ΅Π½Π½ΡΠΉ Π² 2015 Π³ΠΎΠ΄Ρ ΠΈ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΡΠ½ΠΎΠΌ ΠΠ±ΡΠ°ΠΌΠΎΠ²ΡΠΌ ΠΈ ΠΠ½Π΄ΡΡ ΠΠ»Π°ΡΠΊΠΎΠΌ.
Redux — ΡΠ°ΠΌΠΎΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π²Π°ΠΌ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Π»Π΅Π³ΠΊΠΎ ΡΠ΅ΡΡΠΈΡΡΡΡΡΡ ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π² ΡΠ°Π·Π½ΡΡ ΡΡΠ΅Π΄Π°Ρ (ΠΊΠ»ΠΈΠ΅Π½Ρ, ΡΠ΅ΡΠ²Π΅Ρ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ). ΠΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌΠΈ Redux Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ, — ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° redux, ΡΠ°ΠΊ ΡΡΠΎ Π²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Redux Π±ΡΠ» ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΡΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°Ρ :
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² Π΄Π΅ΡΠ΅Π²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅.
Π§ΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ, Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠΈΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ΅Π΄ΡΠΊΡΠΎΡΡ.
ΠΠΎΠ³Π΄Π° Π²ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π±Π΅Π· ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ²ΠΎΠΉΡΡΠ² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ).
ΠΠ°ΡΡΠ΅Ρ Redux.
ΠΡΡΡ Redux
Educative Π½Π°ΡΡΠΈΡ Π²Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Redux Ρ React ΠΈ javascript, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΌΠΎΡΠ½ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ Redux
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Ρ ΡΠΊΠΎΠ² , ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Context API , Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π² React, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°ΡΡΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ, Π½ΡΠΆΠ΅Π½ Π»ΠΈ Redux Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ²Π΅Ρ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΉ. Π₯ΠΎΡΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ React, ΠΎΠ½ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π²Π°ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ°Π½ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ.ΠΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠΉ API Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ Redux.
ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Context API Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π‘ Redux Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΡΠΈ ΡΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π²Π°ΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΈ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π°Π·Π°Π΄ ΠΊ ΡΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ.
ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Redux Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½, ΡΠ΅ΠΌ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΉ React, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Context ΡΠ°ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ ΠΎΡΡ Context API ΡΠΏΡΠΎΡΡΠΈΠ» ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Redux, ΠΎΠ½ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ, Π° ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ ΡΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ.Redux ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, Redux ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ, ΠΏΡΠΎΡΡΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΠ. Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈ Redux Π½Π΅Π»ΡΠ·Ρ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Redux ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΎΡ ΡΡΠΎΠ²Π½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ — Π½Π΅Ρ.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Redux ΠΈ ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Redux
, Syeda Aimen Batool.
. Π€ΠΎΡΠΎ Π€Π°Π±ΠΈΠ°Π½Π° ΠΡΠΎΠΎΡΠ° Π½Π° Unsplash.
. Π― Π½Π°ΡΠ°Π» ΠΈΠ·ΡΡΠ°ΡΡ Redux Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π½Π΅ΠΉ Π½Π°Π·Π°Π΄, ΠΈ ΠΏΠΎΠ½Π°ΡΠ°Π»Ρ ΡΡΠΎ Π±ΡΠ»ΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΠΎΡΠ΅Π»ΠΎΠΌΠ»ΡΡΡΠΈΠΌ.ΠΡΡΠΎΡΠΈΠ² ΡΠ²ΠΎΠΈ Π½Π°Π²ΡΠΊΠΈ Π² ReactJS, ΡΠΎΠ·Π΄Π°Π² Π»ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΊΠ½ΠΈΠ³, Ρ Π½Π°ΠΏΡΠ°Π²ΠΈΠ»ΡΡ Π² Redux, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΠΎ Π½Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌΠΈ Redux Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ (React ΠΈΠ»ΠΈ Angular). ΠΡΠΎ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° Π»ΠΈΡΠ½Π°Ρ Π·Π°ΠΌΠ΅ΡΠΊΠ° Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ, Π½ΠΎ ΠΎΠ½Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π΄ΡΡΠ³ΠΈΠΌ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΊΠΎΠΏΠ°ΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅!
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Redux?
Redux — ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΡΡΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ JavaScript.ΠΡΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°. ΠΠ½ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ React ΠΈ Angular, Π΄Π»Ρ Π»ΡΡΡΠ΅Π³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Redux Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΠΡΠ½ΠΎΠΌ ΠΠ±ΡΠ°ΠΌΠΎΠ²ΡΠΌ Π² 2015 Π³ΠΎΠ΄Ρ Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ.
ΠΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΡΠ΄Π½Π΅Π΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΈ ΡΡΡΡΠ°Π½ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π‘ΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈ Π³Π΄Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ Π³Π΄Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΡΡΠ°ΠΆΠ΅Π½Ρ. ΠΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π²ΡΠ·ΠΎΠ² API, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ.ΠΡΠ° ΠΌΠΎΠ΄Π΅Π»Ρ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ»ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΡΡΠ³ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
Π ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π½Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π²Π½ΡΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Redux ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ» Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ ΠΎΡΡΠ°Π²Π°Π»ΠΎΡΡ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ. ΠΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠ²Π»ΡΡΡΡΡ ΡΡΡΠΎΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Redux.
Redux Store:
ΠΠ°ΠΊ ΠΌΡ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΈ ΡΠ°Π½Π΅Π΅, ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ Redux — ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π² Π½Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ .Redux Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ ΡΡΠΎΠ³ΠΎ, ΠΈΠΌΠ΅Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΡΡΠΈΠ½Ρ, ΡΠΎ Π΅ΡΡΡ Π΄Π΅ΡΠ΅Π²ΠΎ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ . ΠΠ΅ΡΠ΅Π²ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ — ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ JavaScript, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΡΡ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²ΠΎΠΌ. Π ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π½Π°ΠΌ ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΈΠ»ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. ΠΡΠ±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ, ΠΎΡΡΠ°ΠΆΠ°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.Π ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ Redux.
ΠΡΠ°Π²ΠΈΠ»ΠΎ β1 — ΠΠ΄ΠΈΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΡΡΠΈΠ½Ρ
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² Π΄Π΅ΡΠ΅Π²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. — ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ
Π‘ΠΏΠΎΡΠΎΠ±Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ:
- ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ
- ΠΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ
- ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ — ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΠΉ Π±Π»ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ.ΠΠ΅Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π²Π½ΡΡΡΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΠΊΡΠΎΠΌΠ΅ ΠΊΠ°ΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΠΌ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²ΠΎΠΌ.
- getState () — Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
- ΠΎΡΠΏΡΠ°Π²ΠΊΠ° (Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅) — Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ — ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π° ΠΎΡΠΏΡΠ°Π²ΠΊΠ°
(Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅)
ΡΠ»ΡΠΆΠΈΡ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ. ΠΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅. - subscribe (ΡΠ»ΡΡΠ°ΡΠ΅Π»Ρ) — ΡΠ΅Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° — ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΠΎΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
- replaceReducer (nextReducer) — Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ΅Π΄ΡΠΊΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ Π΅ΡΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ?
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ:
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ — ΡΡΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅. ΠΡΠΎ Π²ΡΠΎΡΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ.
ΠΡΠ°Π²ΠΈΠ»ΠΎ β 2 — Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ
ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ — ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ JavaScript Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.Π§ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΡΠΌ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ «ΡΠΈΠΏΠ°», ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΠ°ΡΡΡΡ.
{type: "ADD_BOOK_TO_THE_CART"}
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° — ΡΠΎΠΎΠ±ΡΠΈΡΡ Redux ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅ΠΌ ΡΠΎΠ±ΡΡΠΈΠΈ. ΠΡΠΎΡ ΡΠΈΠΏ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅. ΠΠ°ΡΡΠ΄Ρ ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ «ΡΠΈΠΏ» ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΡΡΠ³ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅ΠΌ ΡΠΎΠ±ΡΡΠΈΠΈ.
ΠΠ΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅Π½ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ — ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, Π³Π΄Π΅ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΠ΄Π΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΊΠΎΡΠ·ΠΈΠ½Ρ.
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ² Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π΅Π³ΠΎ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΡ. store.dispatch () — ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΎΡΠΈΠ² ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. Redux ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ.
ΠΡΠΎΡ ΡΡΡΠΎΠ³ΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π°ΠΏΡΡΠΌΡΡ Π½ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠΎΠΌ, Π½ΠΈ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ — ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ.ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ — ΡΡΠΎ ΠΏΡΠΎΡΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ JavaScript. ΠΠ΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π΄Π°Ρ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΏΠΎΡΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄Π»Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈ ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ β3.
ΠΡΠ°Π²ΠΈΠ»ΠΎ β 3 — ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π½ΠΎΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΠ΄Π΅ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΠΎΠ»ΡΠ΅Π±ΡΡΠ²ΠΎ. ΠΠ°ΠΌ Π½ΡΠΆΠ½Π° ΠΏΡΠΎΡΡΠ°Ρ ΡΠΈΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ΅ Ρ Π½ΠΈΠΌ, Π° Π·Π°ΡΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ΅Π΄ΡΠΊΡΠΎΡΠ°ΠΌΠΈ.
ΠΠ½ΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ΅Π΄ΡΠΊΡΠΎΡΠ°ΠΌΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½Π°Π±ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠΎΠΊΡΠ°ΡΠ°ΡΡ Π΅Π³ΠΎ Π΄ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ Π·Π°ΡΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅Π΄ΡΠΊΡΠΎΡΡ — ΡΡΠΎ ΡΠΈΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ½ΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅. Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π΄ΡΠΊΡΠΎΡΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π΄ΡΠΊΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°Ρ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅Π΄ΡΠΊΡΠΎΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΡΡΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ:
- ΠΡΠΈ ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ Π²Π²ΠΎΠ΄Π΅ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ Π²ΡΠ²ΠΎΠ΄ — ΠΌΡΡΠ°ΡΠΈΠΈ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΡΡ.
- ΠΠ΅Ρ ΠΏΠΎΠ±ΠΎΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΎΠ² — Π΄Π°Π½Π½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Π° API Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°.
ΠΡΠΎΡΠ΅ΡΡ.
ΠΡΠ»ΠΈ ΠΌΡ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠΌ ΡΠΎΡΠΊΠΈ, Redux — ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π΅ΡΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π½ΡΡΡΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° — ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅Π΄ΡΠΊΡΠΎΡΠ° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π·Π°Π΄Π°Π½Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΠΎΡΠ»Π΅ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅Π΄ΡΠΊΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°Π΄Π°ΡΠΈ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.Π ΡΡΠΎΠΌ Π²ΡΡ ΡΡΡΡ Redux.
ΠΠΎΡΠΎΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² Redux
Π§ΡΠΎ ΠΌΡ ΡΠ·Π½Π°Π»ΠΈ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ?
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ΄Π²Π΅Π΄Π΅ΠΌ ΠΈΡΠΎΠ³ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΌΡ ΡΠ·Π½Π°Π»ΠΈ, ΡΡΠΎΠ±Ρ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠΎΡΠΊΠΈ.
- Redux — ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ
- ΠΠ΅ΡΠ΅Π²ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ — ΠΡΠΎΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ JavaScript, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- Π’ΡΠΈ ΡΠΏΠΎΡΠΎΠ±Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ (Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ):
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ — ΠΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ
ΠΠ΅ΠΉΡΡΠ²ΠΈΡ — ΠΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Javascript Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ
Π Π΅Π΄ΡΠΊΡΠΎΡΡ — Π§ΠΈΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Javascript Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΡΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Redux ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ React, Angular ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ, Ρ ΠΈΠ·Π±Π΅Π³Π°Π» ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Ρ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠ»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡ Redux.
Redux ΠΏΠΎΠ½Π°ΡΠ°Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π»ΠΎΠΌΠ»ΡΡΡΠΈΠΌ, ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ Π½ΠΎΠ²ΠΈΡΠΎΠΊ ΠΈΠ»ΠΈ ΠΌΠ»Π°Π΄ΡΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π²Π°ΠΌ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎΡΡΠΈ. ΠΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠ²Π½ΡΠΉ Π½Π°ΡΡΡΠΎΠΉ — Π·Π°Π»ΠΎΠ³ ΡΡΠΏΠ΅Ρ Π°. ΠΡΠ»ΠΈ Π²Ρ ΠΈΠ·ΠΎ Π²ΡΠ΅Ρ ΡΠΈΠ» ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ Π²ΡΠΆΠΈΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ»Π°Π΄ΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈ ΠΈΡΠ΅ΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΡΠΈΠ²Π°ΡΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ, ΠΊΠ°ΠΊ Ρ Π±ΠΎΡΠΎΠ»ΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ»Π°Π΄ΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
Π‘ΠΊΠ°ΠΆΠΈ ΠΏΡΠΈΠ²Π΅Ρ @aimenbatool.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Redux ΠΎΡ Merriam-Webster
re Β· dux
| \ (Λ) rΔ-ΛdΙks
, ΛRΔ-ΛdΙks \
: Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΎ
βΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ
Redux — ΠΠ±Π·ΠΎΡΡ, ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ
Π Π΅ΠΏΠΎΡΡ
ΠΠ±Π·ΠΎΡ: ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΌΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅ΠΊ MERN Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. MongoDB Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΡΠ΅ΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ExpressJS Π²ΠΌΠ΅ΡΡΠ΅ Ρ Node.js Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ API. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ React Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ SPA Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Redis Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ, ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, ΠΌΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Π½Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΊΠ°ΠΊ Π½Π° Heroku. ΠΠ΄Π½Π°ΠΊΠΎ Heroku ΠΎΡΠ΅Π½Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½, ΠΈ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ°ΠΊ ΡΡΠ»ΡΠ³ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Amazon EC2 Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Π½Π°ΡΠ΅ΠΉ ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π‘Π΅ΡΠ²Π΅ΡΠ½Π°Ρ ΡΡΠΎΡΠΎΠ½Π°: nodemon ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ node ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ MongoDB, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ Π½Π΅ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. ΠΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»ΡΡΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π‘Π£ΠΠ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ SQL, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΠ΅Π½Ρ ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠΈΠ»ΡΠ½ΠΎ. ΠΡΠ΅ ΠΎΠ΄Π½Π° ΡΠΈΠ»ΡΠ½Π°Ρ ΡΡΠΎΡΠΎΠ½Π° MongoDB — ΠΏΡΠΎΡΡΠΎΡΠ° ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Mongoose Π²ΠΌΠ΅ΡΡΠ΅ Ρ MongoDB Π΄Π»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΡ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΠΌ Π½Π°Ρ ΠΊΠ»Π°ΡΡΠ΅Ρ MongoDB ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ Π½Π° MongoDB Atlas. Bcrypt Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² ΠΠ. ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠΈΡΠΊΠΎΠ² Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π² Π²ΠΈΠ΄Π΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Cloudinary Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Twilio SendGrid API, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠ΅ ΠΏΠΈΡΡΠΌΠ°, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π½Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π§ΡΠΎΠ±Ρ Π·Π°ΡΠΈΡΠΈΡΡ ΡΠ°ΡΡΠ½ΡΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ API, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ JSON Web Token ΠΈ Passport. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, PayPal Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΠ·Π° Π΄Π»Ρ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ΠΉ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΡΡΠΎΡΠΎΠ½Π°: ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ React Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ SPA. React ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ DOM, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π° ΠΏΡΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ. Π’Π°ΠΊΠΆΠ΅ React ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½, ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ React, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠΎΠ·ΠΆΠ΅ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ React ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Ρ React Native. Redux Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ.Redux ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ React ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΌ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Bootstrap ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ CSS Π΄Π»Ρ ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΡΠ³ΠΎΠ΅: Git Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ. ΠΠ° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ ΡΡΠ°ΠΏΠ°Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Google Analytics Π΄Π»Ρ ΡΠ±ΠΎΡΠ° ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Slack Π±ΡΠ΄Π΅Ρ Π½Π°ΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Visual Studio Code Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΈΠΉ ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ²ΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.ΠΠΎΡΡΠ°Π»ΡΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π½Π°ΡΠΈΠΌΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ API ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
Redux ΠΏΡΠΎΡΠΈΠ² API ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° React
# Redux ΠΏΡΠΎΡΠΈΠ² API ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° React
Π ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π»Π΅Ρ Redux Π±ΡΠ» THE ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ React.
ΠΠ½ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΌΠ΅ΡΡΠ², Π½ΠΎ Ρ Π½Π΅Π³ΠΎ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ»ΡΠ½ΡΠΉ Π²ΡΠ°Π³: ΠΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠΉ API React!
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅:
# Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Redux?
Redux ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ React.Β«Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅Β» ΠΏΡΠΎΡΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌ Π΄Π»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΡΠΈΠΌΠ΅ΡΡ:
- ΠΡΠΎΠ΄ΡΠΊΡΡ Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅ Π΄Π»Ρ ΠΏΠΎΠΊΡΠΏΠΎΠΊ
- ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ HTTP-Π·Π°ΠΏΡΠΎΡΠ°
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ Redux Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ React — ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ . ΡΠΎΠΆΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, NgRx Π΄Π»Ρ Angular). ΠΠΎ Redux ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ Π΄Π»Ρ React.
ΠΠ½ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ΅ΡΡΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΡΠΎΠΈΡΠ΅Π»ΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ²:
A Π΅Π΄ΠΈΠ½ΡΠΉ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ (Ρ.Π΅. ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ JS), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ , Π° Π½Π΅ , Π½Π°ΠΏΡΡΠΌΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ
Π€ΡΠ½ΠΊΡΠΈΠΈ-ΡΠ΅Π΄ΡΠΊΡΠΎΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π»ΠΎΠ³ΠΈΠΊΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (ΠΏΡΡΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ ΡΡΠ°ΡΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ)
ΠΠ΅ΠΉΡΡΠ²ΠΈΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅Π΄ΡΠΊΡΠΎΡΠ° Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°
ΠΠΎΠ΄ΠΏΠΈΡΠΊΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ React)
ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Redux, ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ React Ρ Π²Π°Ρ ΠΎΠ±ΡΡΠ½ΠΎ Π΅ΡΡΡ ΠΏΠ°ΡΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Π΅ΠΉ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ (Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ redux, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ):
export const ADD_PRODUCT_TO_CART = 'ADD_PRODUCT_TO_CART'
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° ΡΠΊΡΠΏΠΎΡΡΠ° REMOVE_PRODUCT_FROM_CART = 'REMOVE_PRODCUT_FROM_CART'
export const addProductToCart = product => {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° => {
setTimeout (() => {
ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ({
ΡΠΈΠΏ: ADD_PRODUCT_TO_CART,
ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ°: ΠΏΡΠΎΠ΄ΡΠΊΡ,
})
}, 700)
}
}
export const removeProductFromCart = productId => {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ½Π°Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° => {
setTimeout (() => {
ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ({
ΡΠΈΠΏ: REMOVE_PRODUCT_FROM_CART,
ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ°: productId,
})
}, 700)
}
}
Π£ Π²Π°Ρ ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΡΠ΅Π΄ΡΠΊΡΠΎΡ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ:
import {ADD_PRODUCT_TO_CART, REMOVE_PRODUCT_FROM_CART} ΠΈΠ· '. / Π΄Π΅ΠΉΡΡΠ²ΠΈΡ '
const initialState = {
ΡΠΎΠ²Π°ΡΡ: [
{id: 'p1', title: 'Gaming Mouse', ΡΠ΅Π½Π°: 29,99},
{id: 'p2', title: 'ΠΠ°ΡΡΠΈ ΠΠΎΡΡΠ΅Ρ 3', ΡΠ΅Π½Π°: 9,99},
],
ΠΊΠΎΡΠ·ΠΈΠ½Π°: [],
}
const shopReducer = (state = initialState, action) => {
switch (action.type) {
case ADD_PRODUCT_TO_CART:
return {... state, cart: updatedCart}
case REMOVE_PRODUCT_FROM_CART:
return {... state, cart: updatedCart}
Π΄Π΅ΡΠΎΠ»Ρ:
ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°
}
}
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΎ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅ Π²ΠΎΠΊΡΡΠ³ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {createStore, applyMiddleware} ΠΈΠ· redux
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {Provider} ΠΈΠ· 'response-redux'
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ reduxThunk ΠΈΠ· 'redux-thunk'
ΠΈΠΌΠΏΠΎΡΡΠ½ΡΠΉ ΠΌΠ°Π³Π°Π·ΠΈΠ½-ΡΠ΅Π΄ΡΠΊΡΠΎΡ ΠΎΡ './ ΠΌΠ°Π³Π°Π·ΠΈΠ½ / ΡΠ΅Π΄ΡΠΊΡΠΎΡΡ
const store = createStore (shopReducer, applyMiddleware (reduxThunk))
ReactDOM.render (
{}
,
document.getElementById ('ΠΊΠΎΡΠ΅Π½Ρ')
)
ΠΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΡ Redux (ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΠΊΠ΅Ρ response-redux):
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ} ΠΈΠ· 'react-redux'
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {addProductToCart} ΠΈΠ· ". ./store/actions"
class ProductsPage extends Component {
ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ() {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
<Π Π΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ.Π€ΡΠ°Π³ΠΌΠ΅Π½Ρ>
{}
)
}
}
const mapStateToProps = state => {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ {
ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ: Π³ΠΎΡ.ΠΏΡΠΎΠ΄ΡΠΊΡΡ,
cartItemCount: state.cart.reduce ((count, curItem) => {
return count + curItem.quantity
}, 0),
}
}
const mapDispatchToProps = dispatch => {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ {
addProductToCart: product => dispatch (addProductToCart (product)),
}
}
ΡΠΊΡΠΏΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (mapStateToProps, mapDispatchToProps) (ProductsPage)
ΠΠ΅ΡΠΎΠ΄ connect
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΡ Π·Π° ΠΊΡΠ»ΠΈΡΠ°ΠΌΠΈ.
ΠΡΠΎ Redux, ΠΈ Π²ΠΊΡΠ°ΡΡΠ΅, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ React. ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ React Context API?
# Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ API ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° React?
ΠΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠΉ API React ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΠ΅ΡΡ Π² Π»ΡΠ±ΠΎΠΌ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ React: ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ , Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ ?
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²Ρ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΏΡΠΎΠΏΡΠΎΠ², ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ ΠΏΠΎ ΠΊΡΡΠ³Ρ (Ρ. Π΅. ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² React).
const Button = props => (
{} Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΌΠ΅Π½Ρ
);
const Form = props => (
<ΡΠΎΡΠΌΠ°>
{}
);
const App = props => {
const [ΡΠ΅ΠΌΠ°, setTheme] = useState ('ΡΠ²Π΅Ρ');
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
{}
)
};
ΠΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΎΠΏΠΎΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π·Π°ΡΡΡΠ΄Π½ΡΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΠΏΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ.ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ°.
ΠΡΠ±ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ»ΠΈ ΡΡΡΡΠΊΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π²Π΅Π΄Π΅Ρ ΠΊ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Ρ.
ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Redux ΡΡΠ°Π» ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ, ΠΎΠ½ ΡΠ΅ΡΠ°Π΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ! ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ°ΠΌ, Π³Π΄Π΅ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°ΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ΅ΡΠ΅Π· JSX.
ΠΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠΉ API React ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ°Π²Π½ΠΈΠΌΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΠ΅Ρ ΡΡΡΠΎΠΈΡΠ΅Π»ΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ²:
# ΠΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°
import React from 'react'
ΡΠΊΡΠΏΠΎΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ React.createContext ({})
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Context Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ ΡΡΠ΄ΠΎΠΌ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ Π² ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Context Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ — ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ?
Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ JavaScript (ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ»ΠΎΠΌ ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠΎΠΉ ΠΈ Ρ. Π΄.), ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Π³ΡΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Ρ ΡΠ°Π½ΠΈΡΡ Π»ΡΠ±ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Context, Π²Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ» Π΅Π³ΠΎ !
# ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°
Π‘ΠΎΠ·Π΄Π°Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ Π²ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Ρ Π½ΠΈΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ (Ρ.Π΅.Π΅. ΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΈΠ»ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄, Ρ ΡΠ°Π½ΡΡΠΈΠΉΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ — ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΠΎΠ·ΠΆΠ΅).
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠΌ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ.
ΠΠ»Ρ Π΄Π°Π½Π½ΡΡ
, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·Π°ΡΡ Context Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
). ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ Context ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°ΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π»ΡΡΠ΅ ΠΏΠΎ Π΄Π΅ΡΠ΅Π²Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ:
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ShopContext ΠΈΠ· './ ΠΏΡΡΡ / ΠΊ / ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ-ΠΌΠ°Π³Π°Π·ΠΈΠ½ ';
class App extends Component {
ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ() {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
{}
);
}
}
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
prop Π²
: Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ Π·Π΄Π΅ΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅, ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°Π΅ΡΡΡ Π² ΠΎΠ±Π΅ΡΠ½ΡΡΡΠ΅ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. Π Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, ΠΎΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ Π² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ
.
Π’ΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ
Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ,
, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΌΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ API ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ.
# 3. ΠΠΎΡΡΠ΅Π±Π»ΡΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. Π£ Π½Π°Ρ Π΅ΡΡΡ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°:
3.1 ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Context.Consumer
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ShopContext ΠΈΠ· '../context/shop-context'
class ProductsPage extends Component {
ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ() {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
{} {context => (
{
return count + curItem.quantity
}, 0)}
/>
...
)}
Consumer>
)
}
}
ΡΠΊΡΠΏΠΎΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ProductsPage
— ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ-ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Β«Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡΒ» ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ) Π² ΡΡΠΎΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ.
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ
. ΠΡΠΎ Π²Π°ΠΆΠ½ΠΎ! ΠΡ Π½Π΅ (Π½Π°ΠΏΡΡΠΌΡΡ) ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΠ΅ JSX ΠΌΠ΅ΠΆΠ΄Ρ
ΠΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°
- ΡΡΠΎ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ , Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
Π² Π½Π°ΡΠ΅ΠΌ
- ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ
, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ
Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ , Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°
Π² Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ. ΠΡΠΎ Ρ
ΠΎΡΠΎΡΠ°Ρ ΡΠΎΡΠΌΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
3.2 ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ static contextType
ΠΠΎΠΌΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
, ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½Π°ΡΠ΅ΠΌΡ Context, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π² Π½Π°ΡΠ΅ΠΌ (ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π½Π° ΠΊΠ»Π°ΡΡΠ΅) Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅. ΠΠ°ΠΆΠ½ΠΎ: Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ
, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ
Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ , ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ
Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ»Π°ΡΡΠΎΠ² (Β«Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΒ»)!
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Ρ ΠΏΠΎΠΌΠΎΡΡΡ React Hooks Ρ Π²Π°Ρ ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².Π‘ΠΌ. Π§Π°ΡΡΡ 2 ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ.
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ShopContext ΠΈΠ· '../context/shop-context'
class CartPage extends Component {
static contextType = ShopContext
componentDidMount () {
console.log (this.context)
}
ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ() {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
Fragment>
{
return count + curItem.quantity
}, 0)}
/>
...
)
}
}
export default CartPage
React ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡ Π²Π°ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ this.context
Π² Π²Π°ΡΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ
Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ»Π°ΡΡΠΎΠ², Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ static contextType = YourContext
Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅. ΠΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ - Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π° - ΡΠ΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Context Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° (Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠ°, ΠΊΠ°ΠΊ componentDidMount
).
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΡ:
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ
.js
(ΠΈΠ»ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°) - ΠΠΎΡΡΠ΅Π±Π»ΡΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° (ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΡ )
ΠΠ°ΠΊ ΠΌΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π΄Π°Π½Π½ΡΠ΅?
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ°ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
Π½Π°ΡΠ΅ΠΌΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°:
Provider
value = {{
ΡΠΎΠ²Π°ΡΡ: [],
ΠΊΠΎΡΠ·ΠΈΠ½Π°: [],
}}
>
...
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ React - e.Π³ΡΠ°ΠΌΠΌ. App.js
Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ
- ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ React Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
Π² ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ => ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅
ΠΈ setState ()
(ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΠ°ΡΡΠΈ 2, useState ()
).
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ
ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
import React, {Component} from 'react';
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ShopContext ΠΈΠ· './shop-context';
class App extends Component {
state = {
ΡΠΎΠ²Π°ΡΡ: [
{id: 'p1', title: 'Gaming Mouse', ΡΠ΅Π½Π°: 29.99},
{id: 'p2', title: 'ΠΠ°ΡΡΠΈ ΠΠΎΡΡΠ΅Ρ 3', ΡΠ΅Π½Π°: 9,99},
...
],
ΡΠ΅Π»Π΅ΠΆΠΊΠ°: []
};
addProductToCart = product => {
const updatedCart = [... this.state.cart];
this.setState ({cart: updatedCart});
};
removeProductFromCart = productId => {
const updatedCart = [. .. this.state.cart];
this.setState ({cart: updatedCart});
};
ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ() {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
...
);
}
}
ΡΠΊΡΠΏΠΎΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ GlobalState;
Π ΡΡΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ.
Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ , Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π½Π°ΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² Π½Π°Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Context (ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
).
ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΡΠ°ΡΡΡ Ρ Π΄Π²ΡΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΠΎΠ±ΡΠ΅ΠΊΡ Context, ΠΈ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Π΅ΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° , ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ.
ΠΠ°ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Ρ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅
, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π² ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ.
ΠΠΎΡ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ React Context Π²ΠΌΠ΅ΡΡΠΎ Redux.
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ (Β«Π Π΅ΡΡΡΡΡΒ» Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠ°ΡΡΠΈ), Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ (ΡΠ°ΠΊΠΆΠ΅ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ), Π³Π΄Π΅ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΌΠΈΠ½ΠΈ-ΠΏΡΠΎΠ΅ΠΊΡ!
# ΠΠ°ΠΌΠ΅Π½ΠΈΡ Π»ΠΈ React Context API Redux?
Π‘Π»ΠΎΠΆΠ½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ.
ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π΅ΡΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ React Context Π»ΡΡΡΠ΅ Redux.
ΠΠ½ Π²ΡΡΡΠΎΠ΅Π½ Π² React, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ - Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΌΠ΅Π½ΡΡΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΈ ΡΠ»ΡΡΡΠ΅Π½Π½Π°Ρ ΡΠ΅ΠΌΠΎΠ½ΡΠΎΠΏΡΠΈΠ³ΠΎΠ΄Π½ΠΎΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.API ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΠΎΡΠ²ΠΎΠΈΡΠ΅ Π΅Π³ΠΎ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Ρ
ΡΠΊΠΎΠ², ΡΠΌ. Π§Π°ΡΡΡ 2). ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ Π½ΡΠΆΠ΅Π½ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ, ΠΊΠ°ΠΊ redux-thunk
, Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
Redux Π½Π΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ , ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ², ΠΊΡΠΎΠΌΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠΎ Π΅ΡΡΡ ΠΎΠ΄Π½Π° Π²Π°ΠΆΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°!
ΠΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠΉ API (Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ) Π½Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π²ΡΡΠΎΠΊΠΎΡΠ°ΡΡΠΎΡΠ½ΡΡ
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ (ΡΠΈΡΠ°ΡΠ° ΠΈΠ· Π‘Π΅Π±Π°ΡΡΡΡΠ½Π° ΠΠ°ΡΠΊΠ±ΠΈΠ΄ΠΆΠ°, React Team), ΠΎΠ½ Π½Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ.ΠΠΎΠΌΠ°Π½Π΄Π° react-redux
ΡΡΠΎΠ»ΠΊΠ½ΡΠ»Π°ΡΡ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠΏΡΡΠ°Π»Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° React Context Π²Π½ΡΡΡΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°.
ΠΠΎΠ΅ Π»ΠΈΡΠ½ΠΎΠ΅ ΡΠ΅Π·ΡΠΌΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π³ΠΎΡΠΎΠ² ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΌΠ°Π»ΠΎΠ²Π΅ΡΠΎΡΡΠ½ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Ρ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠ°ΡΡΠΎΡΠΎΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π»ΠΎΠΊΠ°Π»Ρ / ΡΠ΅ΠΌΠ°). Π’Π°ΠΊΠΆΠ΅ Ρ ΠΎΡΠΎΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΡΡΠ°ΡΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. Π’.Π΅. Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ. ΠΠ½ Π½Π΅ Π³ΠΎΡΠΎΠ² ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π°ΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Flux.
--- Π‘Π΅Π±Π°ΡΡΡΡΠ½ ΠΠ°ΡΠ±ΠΈΠ΄ΠΆ
ΠΡΠ°ΠΊ, Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΡΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ React Context Π΄Π»Ρ Π½ΠΈΠ·ΠΊΠΎΡΠ°ΡΡΠΎΡΠ½ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,Π³ΡΠ°ΠΌΠΌ.