ΠΡΠΈΠ²Π΅Ρ,
Π― Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠΌ ΠΏΡΠΎΡΠΈΡΠ°Π» ΠΎ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. Π― Π΄ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ ΡΠ°ΠΊ, Π½ΠΎ ΠΌΠΎΡ ΡΡΠΎΡΠΎΠ½Π°, Β«ΠΎΠ±Π΅ΡΠΏΠΎΠΊΠΎΠ΅Π½Π½Π°Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ, ΠΏΠΎΡΡΠ°ΡΠ΅Π½Π½ΡΠΌ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²Β», Π»ΠΈΠ±ΠΎ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ Π² JS, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π±ΡΡΡΡΠΎ / ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π»ΠΈΠ±ΠΎ ΠΌΠ½Π΅ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΡΠ΅Π³ΠΎ-ΡΠΎ Π΅ΡΠ΅.
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Π½ΠΎΠ²ΡΠΉ ΠΏΠ»ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ (ΠΈΠ»ΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅) Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΌΠ½Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΌ, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΡΠ°ΠΊ, Ρ ΠΏΡΡΠ°ΡΡΡ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡΡ ΡΠ°ΠΊ Π²Π°ΠΆΠ½Π° ΠΈ Π²Π»ΠΈΡΠ΅Ρ Π»ΠΈ ΠΎΠ½Π° Π½Π° ΡΡΠΎ-ΡΠΎ Π΅ΡΠ΅ Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅, ΡΠ΅Π³ΠΎ Ρ ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π²ΠΈΠΆΡ?
ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ ... Ρ Π±Ρ ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΈΠ· ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Reduct, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠ΄ΡΠΎ ββΡΠ΅Π°ΠΊΡΠΈΠΈ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΅Π³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΡΠ°Π·Π»ΠΈΡΠΈΠΉ DOM ... Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΈΠ»ΠΈ Π½Π΅Ρ. Π― Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, Π±ΡΠ΄Π΅Ρ Π»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π±ΡΡΡΡΠ΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Ρ Π½ΠΎΠ²ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅) ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Ρ ΡΠ°ΡΡΠ΅ΠΉ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ?
Π― ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π²ΠΎ Π²ΡΠ΅ΠΌ ΡΡΠΎΠΌ, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΎΡΡΠΈΡΠ΅ ΠΌΠ΅Π½Ρ, Π΅ΡΠ»ΠΈ Ρ ΡΡΠΎ-ΡΠΎ ΡΠΏΡΡΠΊΠ°Ρ ΠΈΠ·-Π·Π° ΠΏΠΎΠ½ΡΡΠΈΡ Π½Π΅ ΠΌΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΠ½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΠΈΠ΄Π΅Ρ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ... Π½ΠΎ ΠΎΠΏΡΡΡ ΠΆΠ΅, Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΎΠ½ Π½Π΅ Π·Π°Π±ΠΎΡΠΈΡΡΡ ΠΈ Π½Π΅ Π·Π½Π°Π΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ½ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌ ΠΈΠ»ΠΈ Π½Π΅Ρ ... ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΎΡΠΊΡΠ΄Π°-ΡΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΈΠ·ΠΎ Π²ΡΠ΅Ρ ΡΠΈΠ» ΠΏΡΡΠ°ΡΡΡ Π±ΠΈΡ ΡΠΎ Π²ΡΠ΅ΠΌ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ.
ΠΡΠ΅ Π΄Π΅Π»ΠΎ Π² ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΡΡΠΈ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ.
Π Π΅Π΄ΡΠΊΡΠΎΡΡ Π² redux - ΡΡΠΎ ΡΠΈΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Ρ Π½ΠΈΡ Π½Π΅Ρ ΠΏΠΎΠ±ΠΎΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΎΠ². ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²Π½Π΅ΡΠ½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ Π±ΡΡΡ ΡΠΈΡΡΡΠΌΠΈ. Π Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΡΠΈΡΡΡΠ΅, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌΠΈ. Π ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΄Π½ΠΎ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΈΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ Π² ΠΌΠΎΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ ΠΌΠ΅Π½ΡΡΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎ. Π ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° Π³ΠΎΡΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ (Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ) - ΡΡΠΎ ΡΡΡΠ±ΠΎΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
Π Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ.
ΠΠ°ΠΊΡΡΡΠΈΠ΅ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠΎΠΌ β328.
ΠΡΠΎΡΡΠΎ ΡΡΠΎΠ±Ρ ΡΡΠΎΡΠ½ΠΈΡΡ: ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ Π³Π»ΡΠ±ΠΎΠΊΠΎ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ. ΠΠ»ΠΎΠ½ΠΈΡΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΠ°ΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ (ΠΎΠΏΡΡΡ ΠΆΠ΅, Π½Π΅ Π³Π»ΡΠ±ΠΎΠΊΠΎ - Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Π·Π°Π΄Π°ΡΠ° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ TodoMVC, ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π·Π°Π΄Π°ΡΠΈ. Π ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ Π·Π°Π΄Π°ΡΠΈ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π·Π°Π΄Π°Ρ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π½Π° Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π½ΠΎ ΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡΡΡΡΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ Π΄ΠΎΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΄ΠΎΡΠΎΠ³ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΡΡΡΡΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π°), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΡΠ°ΠΊΡΡ ββΠΊΠ°ΠΊ Immutable.js, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠΌΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ. Π‘ Immutable.js ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»ΡΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΡΠ°ΠΊ Π΄ΠΎΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΊΡΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π΅ΡΡΡ Π»ΠΈ Immutable.js ΠΈΠ»ΠΈ Π½Π΅Ρ, Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π½Π°ΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π΅ ΠΌΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ.
ΠΠ°Π° ... ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΈΠΆΡ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π±ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ... Π― ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΡΡΠΈΠΌ Π²Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅, ΡΡΠΎ ΠΈΠ·-Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ / ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΡ ΡΡΠ°Π» Π±ΡΡΡΡΠ΅Π΅? ΠΠΎΡ ΠΎΠΆΠ΅ Π½Π° shouldComponentUpdate
Π― ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ Π²Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅, ΡΡΠΎ ΠΈΠ·-Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ / ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±ΡΡΡΡΠ΅Π΅? ΠΠΎΡ ΠΎΠΆΠ΅ Π½Π° shouldComponentUpdate
Π’ΠΎΡΠ½ΠΎ, react-redux
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π°Π³ΡΠ΅ΡΡΠΈΠ²Π½ΡΠΉ shouldComponentUpdate
ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡΠΈ.
@gaearon ΠΠ·Π²ΠΈΠ½ΠΈ, ΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΄ΠΎΡΠΎΠ³ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΡΡΡΡΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π°), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΡΠ°ΠΊΡΡ ββΠΊΠ°ΠΊ Immutable.js, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠΌΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ.
Π― ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ redux Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎΡΡ Π΄ΠΎ 8000 ΠΏΠΎΠ·ΠΈΡΠΈΠΉ, ΠΈ ΠΎΠΆΠΈΠ΄Π°Ρ, ΡΡΠΎ ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ Π² ΡΠ°ΠΉΠΎΠ½Π΅ 10-100 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° 100 ΠΌΡ. Π― Π²Π΅Π΄Ρ ΠΏΡΠΎΠΈΠ³ΡΡΡΠ½ΡΡ Π±ΠΈΡΠ²Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ redux?
ΠΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· Ρ
ΠΎΠ»ΡΡ, Π° Π½Π΅ ΡΠ΅ΡΠ΅Π· ΠΌΠΎΠ΄Π΅Π»Ρ DOM, Π½ΠΎ Ρ Ρ
ΠΎΡΠ΅Π» Π±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ, ΠΏΠΎ Π²Π°ΡΠ΅ΠΌΡ ΠΌΠ½Π΅Π½ΠΈΡ, Π²ΡΠ·ΡΠ²Π°ΡΡ Ρ Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠ°ΡΡΠΎΡΠΎΠΉ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π½Π΅Ρ.
@dougajmcdonald : ΠΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΠΎΠΏΡΠΎΡ: ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΡ ΡΠ°Π±ΠΎΡΡ? ΠΠ°ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°?
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ Π±Ρ ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°Π» Π²Π°ΠΌ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΡΡΠΈ ΡΠ΅ΡΡΡΡΡ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ Redux:
Π― ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ» Π±Ρ ΡΠ°Π΄ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π² ΡΠ°ΡΠ°Ρ Reactiflux .
@markerikson Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π΄Π°, ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΈΠ³ΡΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π±ΡΡΡΡΡΡ
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
.
Π― ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ Π±ΡΠ» Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΡΠ΅Π½ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Ρ Π³ΠΎΠ²ΠΎΡΡ 10-100 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π΅ Π²ΡΠ΅ ΠΎΠ½ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΡ. 10-100 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ - ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ Π·Π° 100 ΠΌΡ.
ΠΡΠ°ΠΊ, ΠΌΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅: Π΅ΡΠ»ΠΈ Π±Ρ Ρ ΡΠ°Π·Π±ΠΈΠ²Π°Π» ΡΠ²ΠΎΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π° 10-100 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° 100 ΠΌΡ, ΡΠΌΠΎΠ³Π»ΠΎ Π±Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π² redux ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΡ
ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ°Π·ΡΠΌΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΎ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ
ΠΎΠΊΠ½Π° 100 ΠΌΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π΅ ΠΎΡΡΡΠ°Π²Π°Π»ΠΈ.
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π±ΡΠ΄ΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ 3-4 ΡΠ²ΠΎΠΉΡΡΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 8000, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° 1-10 ΡΠ°Π· Π² ΠΌΡ (ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡΡ) Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ±ΡΠ΅ΠΊΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠ΅ (3-4 ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΏΠ°ΡΠ° ΡΠΈΡΠ΅Π» ΠΈ ΠΏΠ°ΡΠ° Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
ΡΡΡΠΎΠΊ)
ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Ρ Π·Π°Π΄ΡΠΌΠ°Π»ΡΡ ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» ΠΡΠ½, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΠ»ΡΡΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
@dougajmcdonald : Π½Ρ, "ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π² Redux" Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΡΠ΅Π΄ΡΠΊΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ :)
Immutable.js - ΡΡΠΎ Π½Π΅ Π²ΠΎΠ»ΡΠ΅Π±Π½Π°Ρ ΡΠ΅ΡΠ΅Π±ΡΡΠ½Π°Ρ ΠΏΡΠ»Ρ, ΡΠ»ΡΡΡΠ°ΡΡΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΠ΄Π½ΠΈ Π²Π΅ΡΠΈ Π±ΡΡΡΡΠ΅Π΅, Π° Π΄ΡΡΠ³ΠΈΠ΅ - ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅. Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΠ΅ΠΉ ΠΏΠΎ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ Ρ Immutable.js, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ.
Π§Π΅ΡΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Ρ ΡΡΠ΅ΡΠΎΠΌ Π²Π°ΡΠ΅Π³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Ρ _ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π°ΠΊΠ°Π·Π°Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΡΠΌΠΎΠΉ ΠΌΡΡΠ°ΡΠΈΠΈ, Π΅ΡΠ»ΠΈ Π±Ρ Π·Π°Ρ ΠΎΡΠ΅Π»ΠΈ. Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΌΠΎΠ΅ΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Idiomatic Redux, Π§Π°ΡΡΡ 1 - Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ , ΡΠ°ΠΌΠΎ ΡΠ΄ΡΠΎ ββRedux Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎ ΠΌΡΡΠ°ΡΠΈΠΈ - ΡΡΠΎ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° React-Redux, Π° ΡΠ°ΠΊΠΆΠ΅ DevTools. ΠΡΡΠ°ΡΠΈΡ - ΡΡΠΎ Π½Π΅ ΡΠΎ, ΡΡΠΎ Π²Ρ _Π΄ΡΠΌΠ°Π»ΠΈ_ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Redux, Π½ΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΠΎΠΉ Π»ΠΈΡΠ½ΡΠΉ ΡΠΎΠ²Π΅Ρ - Π½Π°ΡΠ°ΡΡ Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ. ΠΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΎΡΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΌΠ°ΡΡΠΈΠ²Ρ JS. ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠΉΡΠ΅ ΠΈΡ Π»ΠΈΠ±ΠΎ Β«Π²ΡΡΡΠ½ΡΡΒ», Π»ΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΠΠ°ΡΠ΅ΠΌ ΠΎΡΡΡΠ΄Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ, Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ Ρ. Π.
@markerikson - ΡΠΎΠ½ΠΊΠ°Ρ Π½Π°ΡΠΌΠ΅ΡΠΊΠ° Π² Π½ΠΎΡ! : p ΠΠ°, Π²Ρ ΠΏΡΠ°Π²Ρ, ΡΡΠΎΡΠΎΠ½Π° ΡΠ΅Π΄ΡΠΊΡΠΎΡΠ° Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ - ΡΡΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°, Π½ΠΎ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠ²ΡΠ·Π°Π½Π° Ρ Π±ΠΈΡΠ°ΠΌΠΈ ΠΈ Π±ΠΎΠ±Π°ΠΌΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠ΅Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ ΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ
ΠΎΠ»ΡΡΠ°, ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠΈΠΉ ΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡΡ 60 ΠΊΠ°Π΄ΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΡΠΎΡΠΊΡ Π·ΡΠ΅Π½ΠΈΡ ΠΎ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΠΈ ΠΈ Π·Π° ΡΠΎΡΠΊΡ Π·ΡΠ΅Π½ΠΈΡ ΠΎ ΠΏΡΡΠΌΠΎΠΉ ΠΌΡΡΠ°ΡΠΈΠΈ, Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΈΡΠ°Ρ ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΡ ΠΈΡ
ΡΠΎΠΆΠ΅.
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΠΎΠΉ ΠΌΡΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ redux ΠΎΡ Ρ
ΠΎΠ»ΡΡΠ° ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅ΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· pub / sub (ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ ΠΌΡ ΡΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΠΈ Π΅Π³ΠΎ) ΠΏΡΠΎΡΡΠΎ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π΄Π²ΠΈΠΆΡΡΠΈΡ
ΡΡ ΡΠ°ΡΡΠ΅ΠΉ
ΠΡΠΌΠ°Ρ ΡΠΌΠ΅Π½ΠΈΡΡ:
pubsub> dispatch ()> reducer> redux state> react component stuff> canvas render.
ΠΠΎΠΌΡ:
pubsub> ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°> ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ Ρ
ΠΎΠ»ΡΡΠ°
Π― ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ redux Π΄Π»Ρ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ Π΄Π»Ρ Ρ ΠΎΠ»ΡΡΠ° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ°ΡΠΈ Π²ΠΎΠΏΡΠΎΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²Π΅ΡΠ½Ρ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ redux vuejs, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ vuex, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΌΡΡΠ°ΡΠΈΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Β«ΡΠ΅Π΄ΡΡΠ΅ΡΡΒ» Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΌΡΡΠ°ΡΠΈΡΠΌΠΈ, ΠΈ ΠΏΠΎΠΊΠ° Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ, Π²ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ vue Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π΅ΡΠΈ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ, ΠΊΠ°ΠΊ Π²Ρ ΡΠΏΠΎΠΌΡΠ½ΡΠ»ΠΈ, Π² vue ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΌΡΡΠ»Π° ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ, Π° Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ. Redux Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ, ΠΈ, Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠ±ΠΎΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ DOM VS vue Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π° Π² ΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°Π΅Π² ΠΎΠ΄ΠΈΠ½ Π»ΡΡΡΠ΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΠΎΡΡΠΎ ΡΡΠΎΠ±Ρ ΡΡΠΎΡΠ½ΠΈΡΡ: ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ Π³Π»ΡΠ±ΠΎΠΊΠΎ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ. ΠΠ»ΠΎΠ½ΠΈΡΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΠ°ΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ (ΠΎΠΏΡΡΡ ΠΆΠ΅, Π½Π΅ Π³Π»ΡΠ±ΠΎΠΊΠΎ - Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Π·Π°Π΄Π°ΡΠ° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ TodoMVC, ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π·Π°Π΄Π°ΡΠΈ. Π ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ Π·Π°Π΄Π°ΡΠΈ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π·Π°Π΄Π°Ρ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π½Π° Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π½ΠΎ ΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡΡΡΡΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ Π΄ΠΎΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΄ΠΎΡΠΎΠ³ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΡΡΡΡΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π°), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΡΠ°ΠΊΡΡ ββΠΊΠ°ΠΊ Immutable.js, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠΌΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ. Π‘ Immutable.js ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»ΡΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΡΠ°ΠΊ Π΄ΠΎΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΊΡΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π΅ΡΡΡ Π»ΠΈ Immutable.js ΠΈΠ»ΠΈ Π½Π΅Ρ, Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π½Π°ΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π΅ ΠΌΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ.