Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ? ΠΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠΈΡΠ½ΡΠΉ Π²Π·Π³Π»ΡΠ΄
Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΆΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ ΡΡΠ°ΡΡΠΉ Π΄ΠΎΠ±ΡΡΠΉ Toast
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΠΎΠΏΡΠΎΡ Ρ Π·Π°Π΄Π°Π», ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ Ρ ΠΎΠ΄Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ , Ρ ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎ Π½Π΅ΠΌ Π½Π΅ Π·Π½Π°Ρ π
2 ΠΎΡΠ²Π΅ΡΠ° 2
ΠΊΠ»Π°ΡΡ Context ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅ΡΡΡΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΎΡΠ²Π΅ΡΠ΅. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π² ΡΡΠΎΠΌ Π²ΠΎΠΏΡΠΎΡΠ΅ Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ, ΡΡΠΎ ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠΎΡΠ΅Π³ΠΎ, ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅ΠΌΡ (ΡΡΠΈΠ»Π΅ΠΉ) Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ View
ΠΠΎΡΠ΅ΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ this? ΠΡΠΎ ΠΆΠ΅ ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΊΠ»Π°ΡΡ
ΠΡΡΡ Π»ΠΈ ΡΠ»ΡΡΠ°ΠΈ ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ getApplicationContext?
Π’Π΅ΠΌΠ° (ΡΡΠΈΠ»Ρ) Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ (Π΄Π»Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅ ΡΠΊΠ°Π·Π°Π½ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΈΠ»Ρ). Π’ΠΎΠ³Π΄Π° Π·Π°ΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π°ΠΊΡΠΈΠ²ΡΠΈ Π²Π΅ΡΠ½Π΅Ρ ΡΠ°Π·Π½ΠΎΠ΅ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ View
ΠΠΎΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½ΡΠΆΠ΅Π½ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ?
ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠΈΠ»Ρ Π΄Π»Ρ View
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ, Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠΌ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ, ΡΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΡΠΎΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΌΠ½Π΅ ΡΠ°ΠΊΠΈΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ (ΠΊΡΠΎΠΌΠ΅ ΡΠ΅ΠΌ ΠΈ ΡΡΠΈΠ»Π΅ΠΉ) ΠΏΡΠΈΠΏΠΎΠΌΠ½ΠΈΡΡ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ.
ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° (Π² ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΆΠΈΡΡ Π΄ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²ΡΠ°Ρ/Π²ΡΠ·Π²Π°Π²ΡΠ°Ρ ΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ) Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠΈ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ.
Π²ΠΎ Π²Π½Π΅ΡΠ½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, ΡΡΠΎ ΠΈ ΠΏ.1
ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌ GUI ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π² ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ GUI ΡΡΠΎΠΉ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ.
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² JavaScript
ΠΡΠ»ΠΈ Π²Ρ β JavaScript-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠΌ ΡΡΠ°ΡΡ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ JS-ΠΊΠΎΠ΄Π°. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ JavaScript, ΡΠ°ΠΊΠΈΡ , ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ. ΠΠ°ΡΠ΅ΡΠΈΠ°Π», ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ, ΠΏΠΎΡΠ²ΡΡΡΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΊΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² JavaScript.
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (execution context) β ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΡΠΏΡΠΎΡΡΠ½Π½ΠΎ, ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ°Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° JavaScript. ΠΠΎΠ΄ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.
βΠ’ΠΈΠΏΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
Π JavaScript ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠΈ ΡΠΈΠΏΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
Π‘ΡΠ΅ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
Π‘ΡΠ΅ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (execution stack), ΠΊΠΎΡΠΎΡΡΠΉ Π΅ΡΡ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΡΠ΅ΠΊΠΎΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠ² (call stack), ΡΡΠΎ LIFO-ΡΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ Π² Ρ ΠΎΠ΄Π΅ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ΄Π°.
ΠΠΎΠ³Π΄Π° JS-Π΄Π²ΠΈΠΆΠΎΠΊ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡ, Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠ΅ΠΊ. ΠΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π² Π²Π΅ΡΡ Π½ΡΡ ΡΠ°ΡΡΡ ΡΡΠ΅ΠΊΠ°.
ΠΠ²ΠΈΠΆΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ΅ΠΊΠ°. ΠΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠΎΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ ΡΡΠ΅ΠΊΠ°.
ΠΠ·ΡΡΠΈΠΌ ΡΡΡ ΠΈΠ΄Π΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
ΠΠΎΡ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ²
ΠΠΎΠ³Π΄Π° Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π² Π±ΡΠ°ΡΠ·Π΅Ρ, JavaScript-Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ². ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ first() Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π² Π²Π΅ΡΡ Π½ΡΡ ΡΠ°ΡΡΡ ΡΡΠ΅ΠΊΠ°.
ΠΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ first() Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ, Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Π΅ΡΡ ΠΊΠΎΠ΄ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΌ, Π΄Π²ΠΈΠΆΠΎΠΊ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΡΠ΅ΠΊΠ°.
Π ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² ΠΈ ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ JS-Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°ΠΌΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ, ΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Ρ Π½ΠΈΠΌΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΠΎ ΡΡΠ°Π΄ΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΎ ΡΡΠ°Π΄ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°.
βΠ‘ΡΠ°Π΄ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ JavaScript-ΠΊΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
ΠΡΠΈΠ²ΡΠ·ΠΊΠ° this
Π Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ this ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ (ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ window ).
Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ this Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±ΡΠ»Π° Π²ΡΠ·Π²Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠ»ΠΈ ΠΎΠ½Π° Π²ΡΠ·Π²Π°Π½Π° Π² Π²ΠΈΠ΄Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠΎΠ³Π΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ this ΠΏΡΠΈΠ²ΡΠ·Π°Π½ΠΎ ΠΊ ΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ. Π Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ this ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² undefined (Π² ΡΡΡΠΎΠ³ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅). Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅
ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ ΡΠ°Π½ΠΈΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠΎΠ΄ Β«ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌΒ» Π·Π΄Π΅ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° ΠΏΠΎΠ΄ Β«ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉΒ» β ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ β Π½Π° ΡΡΠ½ΠΊΡΠΈΡ) ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ Π΄Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄Π°:
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ (Variable Environment) β ΡΡΠΎ ΡΠΎΠΆΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, Π·Π°ΠΏΠΈΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ( VariableStatement ) Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΎΠ½ΠΎ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π²ΡΠ΅ΠΌΠΈ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠΈΠ΅ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΠ»ΠΈ:
Π‘Ρ Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π»ΠΈ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Β» (Hoisting). ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Β«ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡΡΡΒ» Π² Π²Π΅ΡΡ Π½ΡΡ ΡΠ°ΡΡΡ ΠΈΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΈΠΌ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
βΠ‘ΡΠ°Π΄ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°
ΠΡΠΎ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΡΠ°ΠΌΠ°Ρ ΠΏΡΠΎΡΡΠ°Ρ ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°. ΠΠ° ΡΡΠΎΠΉ ΡΡΠ°Π΄ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°.
ΠΡΠΎΠ³ΠΈ
Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠ»ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ JavaScript-ΠΊΠΎΠ΄Π°. Π₯ΠΎΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΈΠΌ JS-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, Π·Π½Π°ΡΡ Π²ΡΡ ΡΡΠΎ ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π»ΡΡΡΠ΅ ΠΈ Π³Π»ΡΠ±ΠΆΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ ΡΠ·ΡΠΊΠ°, Ρ ΡΠ°ΠΊΠΈΠΌΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ.
Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ! ΠΠ°ΠΊ Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅, ΠΎ ΡΡΠΌ Π΅ΡΡ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°ΡΡ JavaScript-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ?
Context Π² Android ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Context?
ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. ΠΠ±ΡΡΠ½ΠΎ Π΅Π³ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Context ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ²ΡΡΠ΄Ρ Π² Android ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΌΠΎΠΉ Π²Π°ΠΆΠ½ΠΎΠΉ Π΅Π³ΠΎ ΡΠ°ΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Context ΠΌΠΎΠΆΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΡΠ΅ΡΠΊΠ°ΠΌ ΠΏΠ°ΠΌΡΡΠΈ Π² Android ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΡΠΌΡΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ, ΠΊΠ°ΠΊ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ singleton-ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈ ΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½ΡΠΆΠ΅Π½ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΄ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Activity Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΡΠ΅ΡΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ singleton-ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΡ ΡΠ°Π½ΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° Activity ΠΈ ΠΎΠ½Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½Π° ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, getApplicationContext() Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΡΠ΅Π³ΠΎ-ΡΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΆΠΈΡΡ Π΄ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΅ΡΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ.
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Activity
ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² Activity ΠΈ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ Π΅Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌΡ ΡΠΈΠΊΠ»Ρ. ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Activity ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ Activity ΠΈΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ.
getContext() Π² ContentProvider
ΠΠΎΠ³Π΄Π° Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ getApplicationContext()?
ΠΡΠ°Π²ΠΈΠ»ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΏΠ°Π»ΡΡΠ°
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° Π½Π΅Π³ΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π½Π΅ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΆΠΈΠ²Π΅Ρ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π²Π°ΡΠ΅ΠΉ Activity ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π΄Π°ΠΆΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π’Π΅ΡΠΌΠΈΠ½ «ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ» Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ?
Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΡΠ΅Π², ΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ «ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ» Π² ΠΊΠ»Π°ΡΡΠ°Ρ . ΠΠ°ΠΊ ServletContext (Java), Activity (Android), Service (Java, Android), NSManagedContext (Objective-C, iOS).
Π― ΠΈΡΠΊΠ°Π» ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΠΊΠ°, Π½ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ Π²ΠΎΠΏΡΠΎΡ / ΠΎΡΠ²Π΅ΡΡ Π½Π΅ ΡΠΌΠΎΠ³Π»ΠΈ ΠΌΠ½Π΅ ΠΏΠΎΠΌΠΎΡΡ.
Π― Π±ΡΠ» Π±Ρ ΠΎΡΠ΅Π½Ρ ΡΠ°Π΄, Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ ΠΌΠ½Π΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅.
11 ΠΎΡΠ²Π΅ΡΠΎΠ²
ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ ΠΈΠ΄Π΅ΡΠ΅ ΠΊ ΡΡΠΎΠΌΠ°ΡΠΎΠ»ΠΎΠ³Ρ, ΡΡΠΎΠ±Ρ Π²ΡΡΠ²Π°ΡΡ Π·ΡΠ±.
ΠΊΠΎΠ³Π΄Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΡΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ Π²Π°ΡΠ΅ ΠΈΠΌΡ, ΡΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌ Π½ΡΠΆΠ½Π° Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ Π²ΡΡΡΠ΅ΡΡ. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π²Π°ΡΠ΅ ΠΈΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. Π’Π°ΠΊ ΡΡΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΌΠ°ΡΠΎΠ»ΠΎΠ³Π°, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ²ΠΎΠ΅ ΠΈΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·ΡΠ± Π²ΡΡΠ°ΡΠΈΠ».
ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Ρ ΠΈΠ΄Π΅ΡΠ΅ Π² Π±Π°Π½ΠΊ.
Π² Π±Π°Π½ΠΊ, Π²Ρ ΠΏΡΠΎΡΠΈΡΠ΅ ΡΠ½ΡΡΡ 100 Π΄ΠΎΠ»Π»Π°ΡΠΎΠ². ΠΠ°ΡΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²Π°ΡΡ Π»ΠΈΡΠ½ΠΎΡΡΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π΄Π°Π²Π°ΡΡ Π²Π°ΠΌ Π΄Π΅Π½ΡΠ³ΠΈ, ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠΌ Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΏΡΠ°Π²Π° ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠ°ΡΡΡ Π±Π°Π½ΠΊΠΎΠΌΠ°ΡΠ° ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΠΠΠ-ΠΊΠΎΠ΄. Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΠΎ, ΡΡΠΎ Π²Ρ Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. ΠΠ°ΡΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π²ΠΏΠ΅ΡΠ΅Π΄. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΏΡΠΎΡΠΈΡΡ Π²Π°Ρ, Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ½ΡΡΡ Π΄Π΅Π½ΡΠ³ΠΈ. ΠΠΎΠ³Π΄Π° Π²Ρ ΠΎΡΠ²Π΅ΡΠΈΡΠ΅,«ΠΌΠΎΠΉ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΠ΅Ρ», Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.
ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²Ρ Π΄Π°Π΅ΡΠ΅, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π·Π½Π°Π½ΠΈΠΉ Π΄ΡΡΠ³Π°Ρ ΡΡΠΎΡΠΎΠ½Π°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΡΡΠ±ΠΎΠΉ. ΠΠ½ΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π²ΠΎΠ΄ Π²ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ»ΠΎΠ² Π² ΠΏΠΎΠΈΡΠΊ Google, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π»ΡΡΡΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ), Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎ PIN-ΠΊΠΎΠ΄Π° Π² Π±Π°Π½ΠΊΠΎΠΌΠ°ΡΠ΅). Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΡΠΎ-ΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ.
Π½ΠΎ ΡΠΎΠ³Π΄Π° Π±Π°Π³Π°ΠΆ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΠΏΡΠΎΡΠΈΡ Π²Π°Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΡΠΌΠΊΡ ΠΊΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π½Π°ΠΉΡΠΈ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΎ. ΠΠ½ΠΈ ΡΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ:»ΠΊΠ°ΠΊΠΎΠΉ ΡΡΠΎ ΡΠ²Π΅Ρ? ΠΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠ½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ°? Π£ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΠΊΠΎΠ»Π΅ΡΠ°? ΠΠ½ ΡΠ²Π΅ΡΠ΄ΡΠΉ ΠΈΠ»ΠΈ ΠΌΡΠ³ΠΊΠΈΠΉ? Ρ ΠΎΡΡ ΠΈΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½Ρ ΡΡΠΈ ΠΊΡΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΡΠ·ΠΈΡΡ ΠΊΡΡΠ³ Π²ΠΎΠΏΡΠΎΡΠΎΠ², Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅. ΠΡΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΏΠΎΠΈΡΠΊ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅. ΠΡΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ.
Π²ΠΎΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΠ°ΡΡΡ: Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ API,ΡΡΠ΅Π±ΡΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΡΠΈΠ³Π½Π°ΡΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΠ΄Π΅Ρ ΠΊΡΠ΄Π°-ΡΠΎ Π΅ΡΠ΅, ΠΊΠ°ΠΊ Π³ΠΈΠ±ΠΊΠ°Ρ ΠΊΠ°ΡΡΠ° ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ (ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΡΡΠΌ) ΠΈΠ»ΠΈ Π² ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, Π³Π΄Π΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ.
ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΡ Ρ ΠΎΠ±Π»Π°ΡΡΡΠΌΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ HTTP ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π·Π°ΠΏΡΠΎΡ Π΄Π΅Π»Π°ΡΡΡΡ. ΠΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΡΡΠΎΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΎΠ±ΡΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ.
Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ.
ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π²Π΅Π΄ΡΠΎ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π²Π΅ΡΠ΅ΠΉ, Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ Π²ΡΠ·ΠΎΠ²Ρ ΠΌΠ΅ΡΠΎΠ΄Π°, Π½ΠΎ Π²ΡΠ΅ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΌΠ΅ΡΡΠ½ΡΠΌ. ΠΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ «Π²Π΅ΡΡΡ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ».
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΠ, Π²Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠ΅ΡΠ΅Π΄Π°Π΄ΠΈΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π°ΠΏΠΈΡΠΈ ΠΈ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΠ±ΡΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ, ΡΠ°ΠΊΠΎΠΉ ΡΡΠΎ ΡΠ΅ΡΠ²ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅Π°Π½ΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Ρ. Π΄. Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ»ΡΠΆΠ±Π° ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ, Π·Π°Π²ΠΈΡΡΡΡΡ ΠΎΡ ΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΎ 2015-ΠΠ°ΠΉ Π»Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π½Π°ΡΠ°Π»Π° ΡΡΠΎΠΉ ΡΠ΅ΠΌΡ.
ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΊΠΎΠΌΡ-ΡΠΎ, ΠΊΠ°ΠΊ Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·ΠΎ Π²ΡΠ΅Ρ ΡΠΈΠ» ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ½ΡΡΡ «ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ»
Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ Π½Π΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π°Ρ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Java-ΡΠ°ΠΊ ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π°Ρ, ΡΡΠΎΠ±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π² ΠΆΠ΅ΡΡΠΊΠΎΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π’Π°ΠΊ Π²ΠΎΡ :-
ΠΏΠ°ΡΠΈΠ΅Π½Ρ ΠΈΠ΄Π΅Ρ ΠΊ Π΄ΠΎΠΊΡΠΎΡΡ ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡ treat_me («Ρ ΠΌΠ΅Π½Ρ Π±ΠΎΠ»ΠΈΡ Π³ΠΎΠ»ΠΎΠ²Π°») Π΄ΠΎΠΊ ΠΎΡΠΈΡ Π΄Π°Π΅Ρ ΠΏΠ°ΡΠΈΠ΅Π½ΡΡ ΡΠΎΡΠΌΡ Π΄Π»Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ°ΡΠΈΠ΅Π½Ρ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΡΠΌΡ. Π€ΠΎΡΠΌΠ° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎ ΠΏΡΠΎΡΡΠ±Π΅ Π²ΡΠ°ΡΠ° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ «treat_me».
Π²ΠΎΡ ΠΊΠ°ΠΊ ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π·Π°ΠΏΡΠΎΡ:
Π²ΠΎΡ ΠΊΠ°ΠΊ filled_form_num_23321 Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ :
Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΡΠ½ΠΈΡΡ ΠΏΠΎΠ½ΡΡΠΈΠ΅ «ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ».
Π― Π²ΡΠ΅Π³Π΄Π° Π΄ΡΠΌΠ°Ρ ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΊΠ°ΠΊ ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΠΎΡΠ½ΠΎΡΡΡΠ΅ΠΌΡΡ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΡΠ°Π±ΠΎΡΠ°Ρ.
ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΡΡΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ.
ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΡΠΌ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ:
Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΡ ΠΈΠ»ΠΈ pass ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. ΠΡΠ±ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ / ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ°ΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈ Π΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π΅.
Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π°Π½Π³Π»ΠΎΠ³ΠΎΠ²ΠΎΡΡΡΠΈΠΉ, Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π²Π°ΠΌ ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΏΠΈΡ ΠΠΎΠ΄ Π΄Π»Ρ Π½Π΅ΠΆΠ½ΠΎΠ³ΠΎ, Π½ΠΎ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ, ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡ, ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, Π΅Π΄ΠΈΠ½ΡΡΠ²ΠΎ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎ ΠΊΠΎΠ΄:
ΠΡΠΎ Π½Π΅ ΡΠ°ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΉΠΌΠΈΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅
ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅-ΡΡΠΎ ΡΡΠ΅Π΄Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ / ΡΡΠ»ΡΠ³ΠΈ / Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ.
ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ°ΡΡΠΎ Π°Π²ΡΠΎΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ Ρ ΡΠΈΡΠ°ΡΠ΅Π»Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ»ΠΎΠ²ΠΎ «ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ».
3 Π³ΠΎΠ΄Π° ΡΠΏΡΡΡΡ, ΡΠ°ΠΊ ΡΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·Π΄Π½ΠΎ, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠ° Π½ΠΈΡΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ. ΠΡΠΎ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΡΠ»ΠΎΠ²ΠΎ «ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ» ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ (Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅).
ΠΠ΅ ΡΠ²Π΅ΡΠ΅Π½, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΈ Π²ΡΡΠ°ΡΠΈΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ»ΠΈ Π½Π΅Ρ. Π― ΡΠΎΠΆΠ΅ Ρ ΠΎΡΠ΅Π» Π±Ρ ΡΡΠ»ΡΡΠ°ΡΡ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠ΅ Π°Π³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π° ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ «ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ»
Edit: ΠΈΠ»ΠΈ ΡΡΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠ΅ΡΠΌΠΈΠ½ «ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ» ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ (Π½Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΊΠ°Π»Π°ΠΌΠ±ΡΡΠΎΠ²). ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°.
Π― Π½Π΅ Π²ΠΈΠΆΡ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΠΎΡΡΠΈ Π² ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΠ»ΠΎΠ²Π° Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅, Π²Ρ ΡΠ½Π°ΡΠ°Π»Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ½ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. ΠΡΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ.
ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ-ΡΡΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ, ΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡΡ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π»ΡΠ΄Π΅ΠΉ. Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΌΡΡΠ»ΠΈΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎ-ΡΡΠΎ Π΄Π°Ρ. Π― Π½Π΅ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ Π΅Π³ΠΎ Π½Π΅Ρ, Π½ΠΎ Π΅ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, ΠΈ Ρ ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠ»ΠΎΠ²Π° ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ, ΡΠ΅ΠΌ ΡΠΎ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡΡ.
Π― Π½Π΅ Π·Π½Π°Ρ, ΠΎΡΠΊΡΠ΄Π° Π²Ρ, Π½ΠΎ Ρ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Π² Π²Π°ΡΠ΅ΠΌ ΡΠΎΠ΄Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Π΅ΡΡΡ ΡΠ»ΠΎΠ²ΠΎ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΠΈ Π²Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΠΎΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°.
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈ Ρ ΠΌΠΎΠ³ Π±Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π²Π°ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΎ Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠ½ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠ»ΠΎΠ²Π°.
ΠΠΎΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Β«ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌΒ»
Context ΠΈ Redux β ΡΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎΠΆΠ΅?
ΠΠ΅Ρ. ΠΡΠΎ ΡΠ°Π·Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, Π΄Π΅Π»Π°ΡΡΠΈΠ΅ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΡΠ°Π·Π½ΡΡ ΡΠ΅Π»ΡΡ .
Π―Π²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Β«ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌΒ»?
ΠΠ΅Ρ. ΠΠΎΠ½ΡΠ΅ΠΊΡΡ β ΡΡΠΎ ΡΠΎΡΠΌΠ° Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ (dependency injection). ΠΡΠΎ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ. ΠΡΠ±ΠΎΠ΅ Β«ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌΒ» ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΡΠ½ΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ρ ΡΠΊΠΎΠ² useState()/useReducer().
Π―Π²Π»ΡΡΡΡΡ Π»ΠΈ Context ΠΈ useReducer() Π·Π°ΠΌΠ΅Π½ΠΎΠΉ Redux?
ΠΠ΅Ρ. ΠΠ½ΠΈ Π² ΡΠ΅ΠΌ-ΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠΈ ΠΈ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΡΡ, Π½ΠΎ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π² ΠΏΠ»Π°Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ.
ΠΠΎΠ³Π΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ?
ΠΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π½ΠΎ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΏΡΠΎΠΏΠΎΠ² Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π΄Π΅ΡΠ΅Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΠΎΠ³Π΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Context ΠΈ useReducer()?
ΠΠΎΠ³Π΄Π° Π²Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΡΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΠ³Π΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Redux?
Redux Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ :
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Context ΠΈ Redux
ΠΠ»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ:
ΠΠ΅ΡΠ°Π·Π±Π΅ΡΠΈΡ Π° Π²ΠΎΠΊΡΡΠ³ Context ΠΈ Redux ΡΠ²ΡΠ·Π°Π½Π°, Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Ρ Π½Π΅ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΎΠ½ΠΈ ΡΠ΅ΡΠ°ΡΡ. ΠΠΎΡΡΠΎΠΌΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΅ΡΠ°ΡΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ?
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈΠ· ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
Β«ΠΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· Π΄Π΅ΡΠ΅Π²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠΏΡ Π½Π° ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΡΡΠΎΠ²Π½ΡΡ .
Π ΡΠΈΠΏΠΈΡΠ½ΠΎΠΌ React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ· (ΠΎΡ ΠΏΡΠ΅Π΄ΠΊΠ° ΠΊ ΠΏΠΎΡΠΎΠΌΠΊΡ) Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠΏΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎΡ ΡΠΏΠΎΡΠΎΠ± ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅ΡΠ΅ΡΡΡΡ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΠΏΠΎΠ² ΠΏΡΠΎΠΏΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ, ΡΠ΅ΠΌΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°), ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ± ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ²Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠΏΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π΄Π΅ΡΠ΅Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²Β».
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½ΠΈ ΡΠ»ΠΎΠ²Π° Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ ΠΎΠ± Β«ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈΒ», ΡΠΎΠ»ΡΠΊΠΎ ΠΎ Β«ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅Β» ΠΈ Β«ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈΒ».
Π’Π΅ΠΊΡΡΠ΅Π΅ API ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° (React.createContext()) Π²ΠΏΠ΅ΡΠ²ΡΠ΅ Π±ΡΠ»ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π² React 16.3 Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π°ΠΌΠ΅Π½Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅Π³ΠΎ API, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ Π² ΡΠ°Π½Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ React, Π½ΠΎ ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² Π΄ΠΈΠ·Π°ΠΉΠ½Π°. ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· Π³Π»Π°Π²Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ²Π»ΡΠ»ΠΎΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΠΌΠΎΠ³Π»ΠΈ Π±ΡΡΡ Β«Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΡΒ», Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π» ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΡΠ΅ΡΠ΅Π· shouldComponentUpdate(). ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΡΠΈΠ±Π΅Π³Π°Π»ΠΈ ΠΊ shouldComponentUpdate() Π² ΡΠ΅Π»ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΠ»Π°ΡΡ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ. createContext() Π±ΡΠ» ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π»ΡΠ±ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡΡΠ°Π·ΠΈΡΡΡ Π½Π° Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ , Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠ±ΡΡΠ½ΠΎ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ Ρ ΡΠΊ useContext() ΠΈ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°:
Π¦Π΅Π»Ρ ΠΈ ΡΠ»ΡΡΠ°ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°
ΠΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΠΎ, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΠΌΠΎΠΉ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. ΠΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΠΏΠΎΡΠΎΠΌΠΎΠΊ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² Π΄Π°Π½Π½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π½ΠΎ ΠΎΠ½ Π½Π΅ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ, ΠΎΠ½ ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (runtime).
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Redux?
ΠΠΎΡ ΠΎ ΡΠ΅ΠΌ Π³Π»Π°ΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· Β«ΠΡΠ½ΠΎΠ² ReduxΒ»:
Β«Redux β ΡΡΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ½ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ°Ρ ΡΠΎΠ±ΡΡΠΈΡ, ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ (Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ, actions). Redux Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π² ΡΠΎΠ»ΠΈ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
Redux ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ βΠ³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌβ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ β ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΡΠ±Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΡΠ°ΡΡΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΡΡΠ΅ΡΠ½Ρ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Redux, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π»Π΅Π³ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π³Π΄Π΅, ΠΊΠΎΠ³Π΄Π°, ΠΏΠΎΡΠ΅ΠΌΡ ΠΈ ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΈ ΠΊΠ°ΠΊ ΠΎΡΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π»ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅Β».
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π°:
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎ, Redux ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π² ΡΠΎΡΠΌΠ΅ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΡ Β«ΡΡΠ½ΠΊΡΠΈΠΉ-ΡΠ΅Π΄ΡΠΊΡΠΎΡΠΎΠ²Β» (reducers), ΠΈ ΠΎΠ±ΠΎΡΠΎΠ±Π»ΡΡΡ ΠΈΠ΄Π΅Ρ Β«ΠΊΠ°ΠΊΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎΒ» ΠΎΡ Π»ΠΎΠ³ΠΈΠΊΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅ΠΉ Β«ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈ Π²ΠΎΠ·Π³Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡΒ». Π Redux ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ (middleware) ΠΊΠ°ΠΊ ΡΠΏΠΎΡΠΎΠ± ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΠΎΠ±ΠΎΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΎΠ² (side effects).
Redux ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΈΠ·ΡΡΠ°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Redux ΠΈ React
Π‘Π°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ Redux Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ UI β Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Ρ Π»ΡΠ±ΡΠΌ ΡΠ»ΠΎΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ (view layer) (React, Vue, Angular, Π²Π°Π½ΠΈΠ»ΡΠ½ΡΠΉ JS ΠΈ Ρ.Π΄.) Π»ΠΈΠ±ΠΎ Π±Π΅Π· UI Π²ΠΎΠΎΠ±ΡΠ΅.
ΠΠ΄Π½Π°ΠΊΠΎ, ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ, Redux ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ React. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° React Redux β ΡΡΠΎ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΡΠ»ΠΎΠΉ UI, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ Redux, ΠΏΠΎΠ»ΡΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Redux ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. React-Redux ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π² ΡΠ²ΠΎΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°Ρ . Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ React-Redux ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Redux, Π° Π½Π΅ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ! ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π΄Π»Ρ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. ΠΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ Π½Π°ΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΊ Redux ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π²ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ Redux, Π½ΠΎ ΠΌΡ Π½Π΅ Π·Π½Π°Π΅ΠΌ ΠΈΠ»ΠΈ Π½Π°ΠΌ Π½Π΅Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΎ ΡΡΠΎ Π·Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΠ°ΡΡΠΎΡΡΠ΅Π΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Redux Π²Π½Π΅Π΄ΡΡΠ΅ΡΡΡ Π² Π΄Π΅ΡΠ΅Π²ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
Π¦Π΅Π»Ρ ΠΈ ΡΠ»ΡΡΠ°ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ (React-)Redux
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Redux ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
Β«ΠΠ°ΡΡΠ΅ΡΠ½Ρ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Redux, ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π°, Π³Π΄Π΅, ΠΏΠΎΡΠ΅ΠΌΡ ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π° ΡΡΠΎ ΠΎΡΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π»ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Β».
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΡΠΈΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Redux. ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΠΏΡΠΈΡΠΈΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Β«Π±ΡΡΠ΅Π½ΠΈΡΒ».
ΠΡΡΠ³ΠΈΠ΅ ΡΠ»ΡΡΠ°ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
ΠΠΎΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Β«ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌΒ»?
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ β ΡΡΠΎ Π»ΡΠ±ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ, ΠΊΠ°ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΉ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΠΌ, Π½ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ Π°ΡΠΏΠ΅ΠΊΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΡΡΠ΅Π½ΠΈΠ΅, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ .
Β«Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ β ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈΒ».
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Β«ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌΒ» ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
React-Ρ ΡΠΊΠΈ useState() ΠΈ useReducer() ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ Ρ ΡΠΊΠΎΠ² ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ:
React Context Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π½Π°Π·Π²Π°Π½Π½ΡΠΌ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ. ΠΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ
Β«ΠΠΎΠ½ΡΠ΅ΠΊΡΡ β ΡΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌΒ».
Β«ΠΠΎΠ»Π°Π³Π°Ρ, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ β ΡΡΠΎ ΠΊΠ°ΠΊ ΡΠΊΡΡΡΡΠ΅ ΠΏΡΠΎΠΏΡ, Π°Π±ΡΡΡΠ°Π³ΠΈΡΡΡΡΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅Β».
ΠΡΠ΅, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Β«Π±ΡΡΠ΅Π½ΠΈΡΒ».
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Context ΠΈ Redux
Π‘ΡΠ°Π²Π½ΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈ React+Redux:
Context ΠΈ useReducer()
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² Π΄ΠΈΡΠΊΡΡΡΠΈΠΈ Β«Context ΠΏΡΠΎΡΠΈΠ² ReduxΒ» ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π»ΡΠ΄ΠΈ, Π·Π°ΡΠ°ΡΡΡΡ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΈΠΌΠ΅ΡΡ Π²Π²ΠΈΠ΄Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: Β«Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ useReducer() Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΒ». ΠΠΎ, Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ ΠΏΡΠΎΡΡΠΎ Π³ΠΎΠ²ΠΎΡΡΡ: Β«Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΒ». Π ΡΡΠΎΠΌ, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΊΡΠΎΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π° Π½Π΅ΡΠ°Π·Π±Π΅ΡΠΈΡ ΠΈ, ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΡΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΌΠΈΡΠ° ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Β«ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌΒ».
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Context + useReducer(). ΠΠ°, ΡΠ°ΠΊΠ°Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° Redux + React-Redux. ΠΠ±Π΅ ΡΡΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΈΠΌΠ΅ΡΡ:
Β«ΠΠΎΠ΅ Π»ΠΈΡΠ½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π³ΠΎΡΠΎΠ² ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΌΠ°Π»ΠΎΠ²Π΅ΡΠΎΡΡΠ½ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Ρ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠ°ΡΡΠΎΡΠΎΠΉ (ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ»ΠΈ ΡΠ΅ΠΌΠ°). ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΡΡΠ°ΡΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, Ρ.Π΅. Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ°ΠΌ. ΠΠ½ Π½Π΅ Π³ΠΎΡΠΎΠ² ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π°ΠΌΠ΅Π½Ρ Flux-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ βΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΠΈΡΠ΅Π»Π΅ΠΉβ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΒ».
Π ΡΠ΅ΡΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠ΅ΠΉ, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ΠΎΠ² ΠΈ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΎΠ±Π»Π°ΡΡΡΠΌΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΏΠΎΡΡΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Β«ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎ Π²ΡΠ±ΠΎΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°Β», ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΡ React.memo(), useMemo() ΠΈ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° Π΄Π²Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΎΠ΄Π½Π° Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ , Π΄ΡΡΠ³Π°Ρ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ). ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΈ ΡΠ°ΠΊ, Π½ΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ Π·Π°Π½ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ°Π΅ΡΠ΅ React-Redux.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Context + useReducer() β ΡΡΠΎ Π»Π΅Π³ΠΊΠ°Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Redux + React-Redux Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠΈβ¦ ΡΡΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Π½Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Ρ, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ + useReducer() Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Redux!
ΠΡΠ±ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°
ΠΠ»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΡΠ΅ΡΠ°Π΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΡΡΠΎΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π²Π°ΠΌΠΈ.
ΠΠ±Π·ΠΎΡ ΡΠ»ΡΡΠ°Π΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ
ΠΠ°ΠΊ ΠΆΠ΅ ΡΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ?
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ΅ΡΠ°Π΅Ρ Π·Π°Π΄Π°ΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π§Π°ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ»ΡΡΠ°ΡΡ, ΡΡΠΎ Β«ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Redux ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°Β», ΠΎΠ΄Π½Π°ΠΊΠΎ, Β«ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ReduxΒ» Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΠΈ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Redux Toolkit ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, Π° Ρ ΡΠΊΠΈ React-Redux ΡΠΏΡΠΎΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Redux Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ React.
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ RTK ΠΈ React-Redux Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Β«Π±Π°Π½Π΄Π»Β» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ + useReducer(), ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ. ΠΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ β Π»ΡΡΡΠ°Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΏΡΠΎΡΡΠ°Ρ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠ°Ρ Π»ΠΎΠ³ΠΈΠΊΠ°, ΡΠ»ΡΡΡΠ΅Π½Π½Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π½Π΄ΡΠΈΠ½Π³Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΎΠ΄Π½ΠΎ Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ β Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Redux, Context ΠΈ useReducer() Π²ΠΌΠ΅ΡΡΠ΅. ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Ρ ΡΠ°Π½ΠΈΡΡ Β«Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅Β» ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² Redux, Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ β Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ ΠΈ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡΡ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠ°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² Redux, Π° ΠΊΠ°ΠΊΠ°Ρ β Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ . Π’Π°ΠΊ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Redux Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Context + useReducer() β Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΈ Context β Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΡΠ΅ ΡΠ°Π·: Ρ Π½Π΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π°Ρ, ΡΡΠΎ Π²ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² Redux ΠΈΠ»ΠΈ ΡΡΠΎ Redux β ΡΡΠΎ Π²ΡΠ΅Π³Π΄Π° Π»ΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. Π― ΡΡΠ²Π΅ΡΠΆΠ΄Π°Ρ Π»ΠΈΡΡ, ΡΡΠΎ Redux β Ρ ΠΎΡΠΎΡΠΈΠΉ Π²ΡΠ±ΠΎΡ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΠΈΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Redux, ΠΈ ΠΏΠ»Π°ΡΠ° Π·Π° Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΡΠ°ΠΊ Π²ΡΡΠΎΠΊΠ°, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΠΌΠ°ΡΡ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈ Redux Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠΎΠ΄Π΅. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠ΅ΡΠ°ΡΡΠΈΡ ΠΈΠ½ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ. MobX β ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π΅ ΠΠΠ ΠΈ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ (observables) Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. Π‘ΡΠ΅Π΄ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ Jotai, Recoil ΠΈ Zustand. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, Π²ΡΠΎΠ΄Π΅ React Query, SWR, Apollo ΠΈ Urql, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, ΡΠΏΡΠΎΡΠ°ΡΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, ΠΊΡΡΠΈΡΡΠ΅ΠΌΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ (ΡΠΊΠΎΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° (RTK Query) ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΈ Π΄Π»Ρ Redux Toolkit).
ΠΠ°Π΄Π΅ΡΡΡ, Π΄Π°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ ΠΈ Redux, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΈ Π² ΠΊΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.