ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ spa ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Single Page Application: ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΉΡ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΡΠΎ Π½Π΅ ΡΠ°ΠΉΡ ΠΈ Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π§ΡΠΎ ΡΡΠΎ?
ΠΡΠ° ΡΡΠ°ΡΡΡ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π²Π΅Π±Π° ΠΈ ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ΅ΡΡΡΠ·Π½ΠΎΠΉ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅.
ΠΠ±ΡΡΠ½ΡΠΉ ΡΠ°ΠΉΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° HTML-ΡΡΡΠ°Π½ΠΈΡ. ΠΡ ΠΊΠ»ΠΈΠΊΠ°Π΅ΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌ, Π±ΡΠ°ΡΠ·Π΅Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π½ΠΎΠ²ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎ ΡΡΠΈΠΌ ΡΡΡΠ»ΠΊΠ°ΠΌ, Ρ Π²Π°Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΡΡΠ΅Π½ΠΈΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΎΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ ΠΊ Π΄ΡΡΠ³ΠΎΠΉ. Π‘ΡΡΠ°Π½ΠΈΡΡ ΠΌΠΎΠ³ΡΡ Π»Π΅ΠΆΠ°ΡΡ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ»Ρ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈΠ»ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ Π²Π°Ρ Π·Π°ΠΏΡΠΎΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ. ΠΠΎ, ΡΡΠ»ΠΎΠ²Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΠΊΠ°ΠΆΠ΄ΡΠΉ Β«ΡΠΊΡΠ°Π½Β» ΡΠ°ΠΉΡΠ° β ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΡΠ½ΠΎΡΡΡ, ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ. Π ΠΌΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΠΌΡΡ.
ΠΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΡΡΠΎΡΡ Π½Π° ΠΌΠ΅ΡΡΠ΅. Π Π½ΠΈΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅, ΡΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΊΡΠ°Π½Ρ, Π½ΠΎ Ρ Π½Π°Ρ ΠΎΡΡΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ Π²ΡΠ΅Π³Π΄Π° Π²Π½ΡΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π Π½Π°ΡΠ°Π»Π΅ 2010-Ρ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π½ΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ β Π½Π΅ΡΡΠΎ ΡΡΠ΅Π΄Π½Π΅Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΠΉΡΠΎΠΌ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π’Π°ΠΊΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π½Π°Π·ΡΠ²Π°ΡΡ SPA β Single Page Application. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ VK.com ΠΈΠ»ΠΈ Facebook.com, Π²Ρ ΡΠΆΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°ΠΌΠΈ.
ΠΠΎΡΠΎΡΠΊΠΎ Π³Π»Π°Π²Π½ΠΎΠ΅
SPA ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ: ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ, Π±ΡΠ°ΡΠ·Π΅Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΡΠ°Π·Ρ Π²Π΅ΡΡ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ β ΡΠ°ΡΡΡ ΡΠ°ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π½ΡΠΆΠ½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² Π΄ΡΡΠ³ΡΡ ΡΠ°ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π±ΡΠ°ΡΠ·Π΅Ρ Π±Π΅ΡΡΡ ΡΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π΅ΠΌΡ. Π, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°Π΅Ρ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½ΡΠΆΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π±Π΅Π· ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡΡ.
Π‘ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΡΡΡΡΠΎ ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ Π½Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΎΠ½ΠΈ ΡΡΠ΅Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΡΡΠ°ΡΡΠ΅.
ΠΠ±ΡΡΡΠ½ΠΈΠΌ Π½Π° ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°Ρ
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠΌΠΎΡΡΡΡ ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΡ. Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ ΡΠ²Π΅ΡΠ°ΠΌΠΈ, Π² ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΠΈΠ³ΡΡΡ. ΠΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°ΠΉΡ, ΠΈ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:
ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΠΉΡΠΎΠΌ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π΅Ρ. Π§ΡΠΎΠ±Ρ Π΅Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, Π½Π°ΠΆΠΌΡΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ²Π΅ΡΠΎΠΌ.
ΠΠ΄Π΅ΡΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ, ΡΡΠΎ ΡΠ°ΠΉΡ ΠΈ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ:
Π‘ΡΡΠ°Π½ΠΈΡΠ° ΡΠ°ΠΉΡΠ° ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ. ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΡΠ΅ΡΠ²Π΅ΡΡ: Β«ΠΡΠΈΠ²Π΅Ρ, ΡΠ΄Π΅Π»Π°ΠΉ-ΠΊΠ° ΠΊΠ²Π°Π΄ΡΠ°ΡΡ Π·Π΅Π»ΡΠ½ΡΠΌΠΈΒ». ΠΠ½ Π³ΠΎΠ²ΠΎΡΠΈΡ: Β«Π₯ΠΎΡΠΎΡΠΎ. ΠΠΎ Π΅ΡΡ Π²ΠΎΡ Π²Π°ΠΌ ΡΠ½ΠΎΠ²Π° ΡΠ°ΠΏΠΊΠ° ΡΠ°ΠΉΡΠ° ΠΈ ΠΏΠΎΠ΄Π²Π°Π», Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅Β». Π ΠΎΡΠ΄Π°ΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π½ΠΎΠ²ΡΠΉ HTML-ΡΠ°ΠΉΠ».
Π ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²Π΅Ρ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ². ΠΡΠ°ΡΠ·Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΡ Π·Π°ΠΏΡΠΎΡ, ΡΠΎΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΡΠΆΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΊΠ²Π°Π΄ΡΠ°ΡΡ ΠΊΡΠ°ΡΡΡΡΡ, Π²ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Ρ Π²Π°Ρ Π½Π΅ ΠΏΡΠΎΡΡΡΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΡ, Π° ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠ²Π°ΡΠ° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ, Π½ΠΎ ΡΡΡΠ°Π½ΠΈΡΠ° ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ, Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°Π΅Ρ ΡΠΎΡΠΎ, Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΡΠ΅Π½Ρ. Π’Π°ΠΊ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ SPA.
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ SPA
ΠΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π² ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ , Π³Π΄Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΡΠΎΠ²Π΅ΡΡΠ°Π΅Ρ Ρ Π½Π΅ΠΉ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ΅Π±-Π²Π΅ΡΡΠΈΠΈ Gmail, Facebook Netflix, AirBnB ΠΈ Pinterest β ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π°, ΡΡΠΎ Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π°ΠΆΠ΅ Π΄Π»Ρ ΡΠ°ΠΉΡΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ. ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Digital Agency London. ΠΠ· ΡΡΡΡΠΊΠΎΡΠ·ΡΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² β Meduza.
SPA ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ajax-Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π½ΡΡΠ΅ Π² ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π½Π΅Ρ Π»ΠΈ Π½ΠΎΠ²ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π΄Π΅Π»Π°ΠΌΠΈ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π€Π΅ΠΉΡΠ±ΡΠΊΠ°: Π΅ΡΠ»ΠΈ ΠΎΡΠΊΡΡΡΡ Π³Π»Π°Π²Π½ΡΡ, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² Β«ΠΡΡΠΏΠΏΡΒ», ΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, Π½ΠΎ ΡΠ°ΠΏΠΊΠ° ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π½Π° ΡΠ²ΠΎΡΠΌ ΠΌΠ΅ΡΡΠ΅ β ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° SPA
SPA Π±ΡΡΡΡΡΠ΅. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π±ΡΡΡΡΠ΅Π΅: Π½ΡΠΆΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΡΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ, Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΡΠΎΡΠΈΠ» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π§Π°ΡΡΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ΅ΡΠ²Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π΅ ΡΡΠΆΠ΅Π»ΠΎΠ²Π΅ΡΠ½ΡΠΉ HTML, Π° Π»ΡΠ³ΠΊΠΈΠΉ JSON ΠΈΠ»ΠΈ XML.
ΠΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ JSON ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ. ΠΡΠ»ΠΈ Π΄Π»Ρ Π²Π΅Π±-Π²Π΅ΡΡΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ°ΠΉΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° HTML, ΡΠΎ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΏΠΈΡΠ°ΡΡ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΌ HTML Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ. JSON Π΄Π΅Π»Π°Π΅Ρ ΠΎΡΠ²Π΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌ.
SPA Π³ΠΈΠ±ΠΊΠΈΠ΅. Π Π°Π· ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΡ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ, ΠΏΡΠΎΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΈ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠΎΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΎΠΊ, Π²ΠΊΠ»Π°Π΄ΠΎΠΊ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ SPA ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡ ΠΎΠΆ ΡΠΊΠΎΡΠ΅Π΅ Π½Π° ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° Π½Π΅ Π½Π° ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ°ΠΉΡ.
SPA ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²Π΅Π·Π΄Π΅. ΠΡΡ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ SPA β ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° JavaScript. Π’Π°ΠΊΠΈΠ΅ ΡΠ°ΠΉΡΡ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π½Π° Π΄Π΅ΡΠΊΡΠΎΠΏΠ΅, ΠΈ Π² Π²Π΅Π±Π΅, ΠΌΠΎΠ³ΡΡ ΠΎΡΡΠ°ΡΡΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ SPA
ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ SEO. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°ΠΏΡΡΠΆΡΠ½Π½ΡΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ: ΡΠ΅ Π½Π°ΡΡΠ΅Π½ΠΈΡΠΎΠ²Π°Π½Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ, Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠ°ΡΠ΅Π³ΠΈ. Π SPA ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠΊΡΡΡΠΈΠ²Π°ΡΡΡΡ.
ΠΠΎΡ ΠΎΠΆΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ. ΠΠΎΡ ΡΡΠΎ ΠΏΡΠΎ SPA Π³ΠΎΠ²ΠΎΡΠΈΡ Google-Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ°: Β«Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠ΅Π³ Google ΠΠ½Π°Π»ΠΈΡΠΈΠΊΠΈ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΡΠ°ΠΉΡΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΅Π³ΠΎ ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·Β». Π’ΠΎ Π΅ΡΡΡ ΡΡΠΎΠ±Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΡ Π°Π½Π°Π»ΠΈΡΠΈΠΊΡ, ΠΏΡΠΈΠ΄ΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π½ΡΠΆΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ.
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°. ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½ΡΠΆΠ½Π° ΡΠ²ΡΠ·Ρ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, ΡΠ°ΠΊ ΡΡΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π±Π΅Π· ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° Π½Π΅ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ, ΠΊΠ°ΠΊ ΠΈ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΡΠ°ΠΌΠΈ. ΠΡΠΈΠΌ SPA ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ.
Π₯ΠΎΡΡ Π·Π΄Π΅ΡΡ Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ β Π΅ΡΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π±Π΅Π· ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°.
SPA Π½Π΅ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ². ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΡΡΠΎΠΌ HTML ΠΈ CSS Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ, Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ JS. Π§Π°ΡΡΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ β React, Angular, Vue, Ember ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Ρ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½ΡΠΆΠ½Ρ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ.
ΠΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΌΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈ ΠΏΠΎ ΠΌΠΎΡΠΈΠ²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ Ρ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠΎΠΌ Π¨ΡΡΠΊΠΎΠ²ΡΠΌ β ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΠ΅Π»ΠΎΠ²ΠΎΠΉ Π‘ΡΠ΅Π΄Π΅. Π£ ΠΠ΅Π»ΠΎΠ²ΠΎΠΉ Π‘ΡΠ΅Π΄Ρ Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ SPA.
Π§ΡΠΎ Π΄Π°Π»ΡΡΠ΅?
ΠΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ²ΠΎΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° React ΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π° GitHub.Π§ΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ SPA, Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π² JS, Π΅Π³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°Ρ ΠΈ Π΄ΡΡΠ³ΠΈΡ Π²Π΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ . ΠΠ° ΠΡΠ°ΠΊΡΠΈΠΊΡΠΌΠ΅ Π΅ΡΡΡ ΠΊΡΡΡ Β«ΠΠ°ΠΊ ΡΡΠ°ΡΡ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌΒ» ΠΈ Β«ΠΠ°ΠΊ ΡΡΠ°ΡΡ ΠΌΠΈΠ΄Π» ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌΒ».
ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (SPA) Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Vue.js
ΠΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (SPA) ΠΈΠΌΠ΅ΡΡ ΠΌΠ½ΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠΊΠΎΡΠΎΡΡΡ, ΠΏΠΎ-Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ Ρ ΠΎΡΠΎΡΠΈΠΉ UX, ΠΈ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ HTML-ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ. Π‘ΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°ΠΉΡΠΎΠ² SPA; Π²ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΡΠΎΡΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ SPA. ΠΡ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠΆΠ΅ ΡΠΈΡΠ°Π»ΠΈ ΠΎ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΌ ΠΈ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅ Vue.js. ΠΡΠ΅Π΄Π»Π°Π³Π°Ρ Π²Π°ΠΌ Π³Π»ΡΠ±ΠΆΠ΅ ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΡΡΡ Π² Vue ΠΈ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΠΏΡΠΎΡΡΡΠΌ SPA.
ΠΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅Π³ΠΎ Π±Π»ΠΎΠ³Π°. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. Π ΡΠ°ΠΌΠΎ ΡΠΎΠ±ΠΎΠΉ, Π²ΡΡ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ²ΡΠΈΡΡ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² Vue, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΡΡΡ ΠΈ ΡΠ°Π·Π±Π΅ΡΡΡΠ΅ΡΡ Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ Vue β ΠΎΠ΄Π½ΠΎΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ.
ΠΡΠΊΠ΅Π½Π΄
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌΡΡ Π½Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅ Π½Π° Vue. Π Π°Π·ΠΌΡΡΠ»ΡΡΡ ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ REST Π±ΡΠΊΠ΅Π½Π΄Π° ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ²ΠΈΡ jsonplaceholder.typicode.com ΠΏΡΠ΅Π΄ΠΎΡΡΠΎΠ²Π»ΡΡΡΠΈΠΉ Π·Π°Π³Π»ΡΡΠΊΡ Π² Π²ΠΈΠ΄Π΅ REST API.
Π€ΡΠΎΠ½ΡΠ΅Π½Π΄
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ
ΠΠ°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Vue ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ. Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠΎ Π΅ΡΡ ΠΏΡΠΎΡΠ΅. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ vue-awesome, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π½Π° Π²ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ ΠΆΠΈΠ·Π½ΠΈ.
Vue-cli
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Vue-cli. Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Vue, ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ°Π±Π»ΠΎΠ½Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.
ΠΡΠ°ΠΊ, Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ vue-cli Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°:
ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΎΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡ Ρ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ; Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ webpack-simple.
ΠΠ°Π»Π΅Π΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ Π² ΠΏΠ°ΠΏΠΊΡ vue-spa ΠΈ Π·Π°ΠΏΡΡΡΠΈΠΌ npm install Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅. ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²ΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΡΠΈΡ Π½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ dev-ΡΠ΅ΡΠ²Π΅ΡΠ΅ webpack. Π Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Vue. ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΎΠ½ΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±Ρ Π½Π°ΠΌ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ, ΠΈ Π³ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠΏΡΠ°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ΅Π³ΠΎ-ΡΠΎ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π±ΠΎΡΡ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ ΡΠΎ ΡΡΡΡΠΊΡΡΡΠΎΠΉ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π°.
Π¨Π°Π±Π»ΠΎΠ½ webpack-simple
ΠΠ½ΡΡΡΠΈ ΡΠ°Π±Π»ΠΎΠ½ webpack-simple ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ:
Π€Π°ΠΉΠ» index.html ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΎΡΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ HTML Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ βappβ Π² body. ΠΠ½ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΌΠ΅Π½ΡΠ½ Π½Π° DOM, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ vue. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΡΠ³ body Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
ΠΠ΄Π½ΠΎΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»Π΅ΠΉ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ³Π»ΡΠ΄Π΅Π»ΠΎ Π»ΡΡΡΠ΅.
ΠΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ
ΠΎΡΡΠΈΡΡΡ Π½Π° github.com. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡ Π²Π΅ΡΠΊΡ ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΡ ΡΠ°Π³Π° ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
Π Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΌ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅ΡΠ΅Π³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π² Π½Π°ΡΠ΅ΠΉ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π΄Π°Π½Π½ΡΠ΅ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Ρ Π²ΡΠ±ΡΠ°Π» Axios β ΠΏΡΠΎΡΡΠΎΠΉ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ HTTP-ΠΊΠ»ΠΈΠ΅Π½Ρ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠ΄ΠΎΠ±Π½ΡΠΉ Π΄Π»Ρ Π²Π°Ρ ΡΠΏΠΎΡΠΎΠ±, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Vue-ΡΠ΅ΡΡΡΡ ΠΈΠ»ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π²ΡΠ±ΠΎΡΠΊΡ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ jQuery Ajax.
Π¨Π°Π³ 2
ΠΠ°ΡΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ App ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ getAllPosts() ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π΄Π΅Π»Π°ΡΡ Π·Π°ΠΏΡΠΎΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Ρ posts. ΠΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ Π² Ρ ΡΠΊΠ΅ created(), ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Vue ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ.
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠΌ Π²ΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΌΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, Π½ΠΎ ΠΏΠΎΠΊΠ° ΠΌΡ Π΅ΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΡΡ ΡΠ°ΠΌΠΈ Π·Π°ΠΏΠΈΡΠΈ. Π’Π΅ΠΏΠ΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΠΎΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π½Π° Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ Π±ΡΠ»Π° Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ.
Π¨Π°Π³ 3
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Vue Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ vue-router. ΠΠ°ΠΊ ΡΠΆΠ΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠΎΡΡΠΈΠ½Π³ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ:
ΠΠ»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΎΡΡΠΈΠ½Π³Π° Π²Π΅ΡΠ½ΡΠΌΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ main.js. ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΎΡΡΠΈΠ½Π³Π° ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΡ Π² Π½Π°Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Vue.
Π Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΡΠΎΡΡΠΈΠ½Π³Π° ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΏΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΏΡΡΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Post.vue Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°, Π½Π°ΠΌ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΡΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΠΎΡΡΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΡΡ.
ΠΡΡΠ°Π»ΡΡ Π·Π°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°Π³. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎΡΡΠ°.
Π¨Π°Π³ 4
ΠΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ ΠΊ ΡΠ°ΠΉΠ»Ρ Post.vue, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΎΠ½:
ΠΠ°ΡΠ΅ΠΌ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Vue Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ΄Π΅ΡΡ Π²ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΠΎΡΡΠΎΠ². ΠΠ±ΡΡΠ²ΠΈΠΌ ΠΎΠΏΡΠΈΡ props Ρ ΠΌΠ΅Π½ΡΡΡΠΈΠΌΡΡ id, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π½ΠΎΠΌΠ΅Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ°. ΠΠ°Π»Π΅Π΅, ΠΎΠ±ΡΡΠ²ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π΄Π΅Π»Π°Π»ΠΈ Π² App.vue:
ΠΠ°ΡΠ΅ΠΌ ΠΎΠΏΠΈΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ getPost(), ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ Π·Π°ΠΏΠΈΡΡ ΠΏΠΎΡΡΠ° ΠΏΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΈ Π²ΡΠ·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ Π² Ρ ΡΠΊΠ΅ created().
ΠΠΎΡΡΠΈ Π³ΠΎΡΠΎΠ²ΠΎ. ΠΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΉΡΠ°Ρ, ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ, Ρ
ΠΎΡΡ URL-Π°Π΄ΡΠ΅Ρ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΎΡΡΠΈΡΠΎΠ²Π°Π½ ΠΏΠ΅ΡΠ²ΡΠΌ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°Π·Π½ΡΡ
ΠΏΠΎΡΡΠΎΠ² Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΈ Vue Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ·-Π·Π° Π»ΠΈΡΠ½Π΅ΠΉ ΡΡΠ°ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², Π° ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Ρ
ΡΠΊΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π½Π΅ Π±ΡΠ΄ΡΡ Π²ΡΠ·Π²Π°Π½Ρ.
Π§ΡΠΎΠ±Ρ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ, Π½Π°ΠΌ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ watcher Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° $route.
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²Π΅ΡΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠΈΠ½Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ npm run build Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ SPA Π½Π° JS ΠΈ PHP Π·Π° ΡΠ°Ρ
ΠΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΆΠ΅ Π΄Π°Π²Π½ΠΎ Π½Π΅ Π² Π½ΠΎΠ²ΠΈΠ½ΠΊΡ, Π° ΡΠΊΠΎΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΡΠ°Π½ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π£Π·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΠΈΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ, β ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ·Π΄Π½ΠΎ.
SPA (Π°Π½Π³Π». Single Page Application β ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅) β ΡΡΠΎ ΡΠ°ΠΉΡ, Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ².
ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ SPA ΠΏΡΠΎΡΡ: ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΠ²Π΅ΡΡΠ°Π΅ΡΠ΅ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΠ΅ Π½Π° ΡΡΡΠ»ΠΊΡ, ΡΠΊΡΠΈΠΏΡ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π΅Ρ ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅. ΠΠ½ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΌ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π° ΠΏΠΎΡΠΎΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅.
ΠΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠ°ΠΉΡ Π±ΡΡΡΡΠ΅Π΅ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π° Π½Π΅ Π²ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ. Π’Π°ΠΊΠΆΠ΅ ΡΠ°ΡΡΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π°, ΡΠΎ Π΅ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Π° Π·Π°ΡΠ°Π½Π΅Π΅. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ.
SPA ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ²: ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΆΠ°ΡΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΊΠΎΡΠ·ΠΈΠ½ΡΒ» ΠΈ ΡΡΡ ΠΆΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠΌΠΎΡΡΠ΅ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΠ²Π°ΡΡ. ΠΠΎ ΠΈ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ Π±Π»ΠΎΠ³ΠΎΠ² ΡΠ°ΠΊΠ°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠΌΠ΅ΡΡΠ½Π°.
Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π·Π° ΡΠ°Ρ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΏΠΎΠ»Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΈΡΠ΅Ρ ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, Π² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈΠ³ΡΡ. ΠΠ΅ΡΡΠ°Π΅Ρ ΠΎΡΠΊΡΡΡΡ ΡΠ²ΠΎΡ ΡΡΡΠ΄ΠΈΡ ΠΈ Π²ΡΠΏΡΡΠΊΠ°ΡΡ Π»Π°ΠΌΠΏΠΎΠ²ΡΠ΅ RPG.
ΠΠ°ΠΊΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ SPA
Π§ΡΠΎΠ±Ρ SPA Π±ΡΠ»ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π²ΡΡΡΡΠΎΠΈΡΡ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ.
ΠΡΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ, Π½ΠΎ ΠΎΠ½ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ΅Π½, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈΠ½Π°ΡΠ΅ Π²Π°ΡΠ΅ SPA ΡΡΠ°Π½Π΅Ρ ΠΌΠ΅Π½Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌ, ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ°ΠΉΡ.
SPA β Π½Π΅ ΡΠ΅ΡΠ΅Π±ΡΡΠ½Π°Ρ ΠΏΡΠ»Ρ, ΠΈΠ»ΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ web-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. Π§Π°ΡΡΡ 1
ΠΡΠ°ΠΊ, newDHTML β Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠΉ ΡΡΠΈΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ web ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠΎ Π½Π΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°. ΠΠ΄Π΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΊΠ°ΠΊ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° SPA ΠΏΠΎ ΡΡΠ΄Ρ ΠΏΡΠΈΡΠΈΠ½, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π½ΠΈΠΆΠ΅.
Single page application Π½Π΅ΠΏΠ»ΠΎΡ ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ, Π½ΠΎ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠΈΠ½ΡΡΡ:
1.Π‘ΠΈΠ»ΡΠ½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ front-end ΡΠ°ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎΠΌΠ΅ html ΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ UI ΡΡΡ Π΅ΡΠ΅ ΠΈ ΡΠΎΡΡΠ΅ΡΡ, MVC ΠΈ ΠΏΡΠΎΡΠΈΠ΅ ΡΠ»Π°Π΄ΠΎΡΡΠΈ.
2.Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ΄Π½Π° ΡΠΎΡΠΊΠ° Π²Ρ
ΠΎΠ΄Π°, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΈΡΠΊ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΎΡΠΈΠ±ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΡΠ°Π±ΠΎΡΠ΅ΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
3. ΠΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡΡΠ΅ΡΠΎΠ² (ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠΌ)
4. SEO
MVC-Π»ΠΎΠ³ΠΈΠΊΠ° ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ. ΠΠ»ΡΡΠ΅Π²Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ View Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, Π° Π²ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ javascript-ΠΎΠΌ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
API-ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π Π΅ΡΡΡΡ | GET | POST | PUT | DELETE |
---|---|---|---|---|
/books | ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠ½ΠΈΠ³ | Π½ΠΎΠ²Π°Ρ ΠΊΠ½ΠΈΠ³Π° | ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΊΠ½ΠΈΠ³ | ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΊΠ½ΠΈΠ³ |
/books/1 | ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΊΠ½ΠΈΠ³Ρ | ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ | ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ | |
/books-index | Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΠ°Π½ΠΈΡΡ html |
Π ΠΎΡΡΠ΅ΡΡ Ρ ΡΡΡΡΠΈΠΊΡΠΎΠΌ «-index» Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π²Π΅ΡΡΡΠΊΡ. ΠΠ°ΡΠ΅ΠΌ Π½Π° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΡΠ΅ΡΡΡΡΡ (css,js ΡΠΊΡΠΈΠΏΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅). ΠΠ°Π»Π΅Π΅ js-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· REST API ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΈΠ΄ΠΈΡ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
API Π΅ΡΡΡ Π²Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π½Π°ΠΏΠΈΡΠ°Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΠ΅ API.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π²Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΅ΡΠ΅Π· API, Π½ΠΎ ΠΎΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ΅ ΠΈ Π»ΠΈΡΠ΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² SPA:
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΠΎΠ΅ SPA
1. ΠΠΎ. Π·Π°ΡΠ΅ΠΌ?
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ SPA (Single Page Application).
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠ΅ΠΉ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°.
ΠΠ΄Π½Π°ΠΊΠΎ Π²ΡΡΠΊΠ°Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΡΠ°Π²ΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π²ΠΎ Π³Π»Π°Π²Ρ ΡΠ³Π»Π°. Π’Π΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΈΠ· Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΡΠ°ΠΊΡΠΎΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° ΠΏΠΈΡΠ΅ΡΡΡ Π½Π΅ Π΄Π»Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½ΠΈΡ Π½ΡΠΆΠ΄ Π±ΠΈΠ·Π½Π΅ΡΠ° Π° Π΄Π»Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½ΠΈΡ Π½ΡΠΆΠ΄ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°.
Π£ΡΠΈΡΡΠ²Π°Ρ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ hype-driven ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΡΡΠ° Π² Π½Π°ΡΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ Π² ΡΠΎΠΌ ΡΡΠΎ ΡΠ΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ Π±ΡΠ΄ΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΌΠΎΠ΄Π½ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Π΄Π»Ρ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π ΠΌΠΎΠΌΠ΅Π½Ρ ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΠΌΠΎΠ΄Ρ β Π²Ρ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Ρ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΡΡ (legacy) ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·Ρ Π»ΠΈΠ±ΠΎ ΡΡΠ°ΡΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ.
ΠΠ±Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠΎΠΏΡΡΠΆΠ΅Π½Ρ Ρ ΡΡΠ΅ΡΠ±ΠΎΠΌ Π΄Π»Ρ Π±ΠΈΠ·Π½Π΅ΡΠ°. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π½Π°ΠΉΠΌΠΎΠΌ Π½ΠΎΠ²ΡΡ ΠΈ ΠΌΠΎΡΠΈΠ²Π°ΡΠΈΠ΅ΠΉ ΡΠ΅ΠΊΡΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΡΡΠΎΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (ΡΠ»Π΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ β Π΄Π΅Π½Π΅Π³) Π½ΠΎ Π½Π΅ Π½Π΅ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΠ·Ρ Π΄Π»Ρ Π±ΠΈΠ·Π½Π΅ΡΠ°.
ΠΠ°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ SPA Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ Π΄Π»Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ.
2. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠ΅ ΡΠ΅Π»ΠΈ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ
Π¦Π΅Π»ΠΈ:
ΠΠΎΠ²ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½ΡΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠ½ΠΎΠΌ Π²Π·Π³Π»ΡΠ΄Π΅ Π½Π° ΡΡΡΡΠΊΡΡΡΡ ΠΊΠΎΠ΄Π°.
Π‘ΡΠΈΠΌΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ (separation of concerns) ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ΄Π° ΡΠ°ΠΊ ΡΡΠΎ:
ΠΠΎΠ΄ΡΠ»ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΄Π°ΡΡΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ (boundaries) Π° ΡΠ°ΠΊΠΆΠ΅ Π³ΡΡΠ·Π½ΡΠ΅ Ρ Π°ΠΊΠΈ ΠΈ Π²ΠΎΡΠΊΡΡΠ°ΡΠ½Π΄Ρ Π²ΡΠ½Π΅ΡΠ΅Π½Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ Π½Π΅ ΠΏΡΠΎΡΡΠ½ΡΡΡ ΡΠ΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΌΠ΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ°Π· ΠΎΡ Ρ Π°ΠΊΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ΅Π°Π»ΠΈΡΡΠΈΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π° Π½Π΅ Β«Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΡΠΌ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ΠΎΠΌΒ»
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Π²Π΅ΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Ρ Π½Π΅Π΄Π°Π»Π΅ΠΊΠΎ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° Π² ΡΡΡΡΠΊΡΡΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎΡ Ρ ΠΎΡΠΎΡΠ°Ρ ΡΡΠ°ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π° ΠΏΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ»ΠΎΡΠΌ ΠΈ ΠΏΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡΠΌ.
ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π°Π±ΡΡ ΡΠ²ΡΠ·Π½ΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ. ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ (ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π·Π°ΠΌΠ΅Π½Π°) Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΠ΅Ρ Π°Π½ΠΈΠΊΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ.
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π½Π΅ ΡΠΎΡΡΠ°Ρ ΡΠΊΠ²ΠΎΠ·Ρ Π²ΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·Ρ. ΠΠ½ΠΈ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π²Π½ΡΡΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΡ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ.
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ:
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (ΠΈΠ»ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΎ Π²) HTML+CSS Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ JavaScript Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ.
3. ΠΠ³ΡΠ°Π½ΠΈΡΠΈΠΌ ΡΠ΅ΠΌΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² ΠΊ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ: ΡΠ»ΠΎΠ΅Π½Π°Ρ (layered), Π»ΡΠΊΠΎΠ²ΠΈΡΠ½Π°Ρ (onion) ΠΈ ΡΠ΅ΡΡΠΈΠ³ΡΠ°Π½Π½Π°Ρ (hexagonal). ΠΠ΅Π³Π»ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π΄Π°Π½ΠΎ Π² ΠΌΠΎΠ΅ΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅.
ΠΠ°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ»ΠΎΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ»ΠΎΠ΅Π½ΠΎΠΉ/Π»ΡΠΊΠΎΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ SPA Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ . Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ»ΠΎΠΈ Π΄ΠΎΠΌΠ΅Π½Π° (domain) ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (application) ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½Ρ. ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ½ΡΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±Π·ΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠ»ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π΄Π°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎ ΡΠ»ΠΎΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠΌΠ΅Π½Π°, Π² ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΈΠ΅ ΡΠ»ΠΎΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΡΡΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ ΡΠ»ΠΎΠ΅Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅ΡΡΠΈΠ³ΡΠ°Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ (ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ Ports and Adapters) Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ localStorage Π² TodoMVC ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ ΠΊ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ (ΠΏΠ°ΠΏΠΊΠ° boundaries/local-storage).
4. Π‘ΡΡΡΠΊΡΡΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ°ΠΊ Π·Π°ΡΡΠ°Π²ΠΈΡΡ SPA ΠΊΡΠΈΡΠ°ΡΡ?
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΈΠΏΠΈΡΠ½ΡΠΉ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΌΠ°Π³Π°Π·ΠΈΠ½. ΠΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΠΊ ΠΎΠ½ ΠΌΠΎΠ³ Π±Ρ Π±ΡΡΡ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½ Π½Π° ΡΠ°Π»ΡΠ΅ΡΠΊΠ΅ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅ΠΌ Π±ΠΈΠ·Π½Π΅ΡΠ°:
Π ΠΈΡΡΠ½ΠΎΠΊ 1: ΡΠΈΠΏΠΈΡΠ½ΡΠΉ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΌΠ°Π³Π°Π·ΠΈΠ½, Π½Π°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΠ°Π»ΡΠ΅ΡΠΊΠ΅
ΠΠ°ΠΊΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΡΠΈΡΠ°ΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·Ρ? ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 2 Π²ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΎΡΡΠ°ΠΆΠ΅Π½Ρ ΠΊΠ°ΠΊ ΠΏΠ°ΠΏΠΊΠΈ.
Π ΠΈΡΡΠ½ΠΎΠΊ 2: ΡΡΡΡΠΊΡΡΡΠ° ΠΏΠ°ΠΏΠΎΠΊ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΎΡΡΠ°ΠΆΠ°ΡΡΠ°Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 1
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΊΡ βsharedβ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΡΠΎ Π³Π΄Π΅ Π±ΡΠ΄ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΎΠ±ΡΠΈΠ΅ UI Π±Π»ΠΎΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π±Π»ΠΎΠ½, ΠΏΠ°Π½Π΅Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ, ΠΊΠΎΡΠ·ΠΈΠ½Π°.
ΠΠ°ΡΠΈ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½Ρ ΠΈΠ· Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ (ΠΈ Π²ΠΈΠ΄ΠΈΠΌΡΡ ) ΡΠ°ΡΡΠ΅ΠΉ. ΠΠΎΠΊΠ° ΡΡΠΎ Π½Π°Π·ΠΎΠ²Π΅ΠΌ ΠΈΡ βΠ±Π»ΠΎΠΊΠ°ΠΌΠΈβ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Π² ΠΏΠ°ΠΏΠΊΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ βpartsβ. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ (ΡΠΈΡΡΠ½ΠΎΠΊ 3).
Π ΠΈΡΡΠ½ΠΎΠΊ 3: ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² Π²Π½ΡΡΡΠΈ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠΈ βpartsβ
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΡΠ²ΡΠ°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΆΠ΅ Π΄Π»Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΈΡΡ βgoods catalogueβ. ΠΡΡΡ βgoods-catalogue/parts/goods-list/parts/good-details.jsβ ΡΠΆΠ΅ Π½Π° Π³ΡΠ°Π½ΠΈΡΠ΅ Π°Π΄Π΅ΠΊΠ²Π°ΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ ΠΏΡΡΠΈ ΠΊ ΡΠ°ΠΉΠ»Ρ. ΠΡΠΈ ΡΠΎΠΌ ΡΡΠΎ Π² ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Π΄Π²Π° ΡΡΠΎΠ²Π½Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ β Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΏΡΠ΅Π΄Π΅Π».
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΈΠ·Π±Π°Π²ΠΈΠΌΡΡ ΠΎΡ ΠΏΠ°ΠΏΠΎΠΊ Β«partsΒ» Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠΈΡΡΠ½ΠΎΠΊ 4.
Π ΠΈΡΡΠ½ΠΎΠΊ 4: Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ Π²ΡΠ½Π΅ΡΠ΅Π½Ρ ΠΈΠ· ΠΏΠ°ΠΏΠΎΠΊ βpartsβ
Π’Π΅ΠΏΠ΅ΡΡ Π²Π½ΡΡΡΠΈ ΠΏΡΡΠΈ βgoods-catalogue/goods-listβ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠΈ ΡΠ°ΠΉΠ»Π°. goods-list.js (ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ) β ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΌΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π² Π½Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠΈ. Π ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , ΡΡΠΈΡΡΠ²Π°Ρ ΠΊΠΎΠ»-Π²ΠΎ ΡΠ°Π·Π½ΠΎΡΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² (js, html, css) ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΈΠΉ Π±Π»ΠΎΠΊ ΠΈ ΡΠ°ΠΉΠ»Ρ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΌΠΈ Π·Π° Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π² Π½Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠΈ.
ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌ β ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΠΏΠ°ΠΏΠΊΡ.
goods-list ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π»ΠΎΠΊΠΎΠΌ ΠΈ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, ΠΏΠΎΡΠΎΠΌΡ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½Π° ΠΏΠ°ΠΏΠΊΠ°.
filters ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π»ΠΎΠΊΠΎΠΌ ΡΠΎΡΡΠΎΡΡΠΈΠΌ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, ΠΏΠΎΡΠΎΠΌΡ Π΄Π»Ρ Π½Π΅Π³ΠΎ Π½Π΅ ΡΠΎΠ·Π΄Π°Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΏΠ°ΠΏΠΊΠ°.
ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ (Π½Π΅Π²Π°ΠΆΠ½ΠΎ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ) ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ β Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΏΡΠ΅ΡΠΈΠΊΡ Β«_Β». Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΡΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄Π½ΡΡΡ ΠΊ Π²Π΅ΡΡ Ρ ΠΏΠ°ΠΏΠΊΠΈ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΌ ΠΎΠ±ΠΎΠ·ΡΠ΅Π²Π°ΡΠ΅Π»Π΅.
_goods-list folder ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ goods-catalogue ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠ°ΠΏΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΡΠ΅ΡΠΈΠΊΡ.
goods-list.js ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° _goods-list ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠ΅ΡΠΈΠΊΡ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½.
_good-details.js ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ _goods-list ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠ΅ΡΠΈΠΊΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½.
Π ΠΈΡΡΠ½ΠΎΠΊ 5: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° Β«_Β» Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΎΡ ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ
ΠΠΎΡΠΎΠ²ΠΎ! Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΠΊΡΡΠ²Π°Ρ ΠΏΠ°ΠΏΠΊΡ Ρ Π±Π»ΠΎΠΊΠΎΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈ ΠΎΡΠΊΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°ΠΉΠ», ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ Π΄Π°Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌΡ Π±Π»ΠΎΠΊΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΠΎ ΠΏΠ°ΠΏΠΊΠ° pages Π±ΡΠ»Π° ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π° Π² components Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 5. Π’Π°ΠΊ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ Π±Π»ΠΎΠΊΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ Π²Π΅ΡΠ°ΠΌΠΈ Π½ΠΎ Π² ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ HTML ΠΈ ΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ ΠΊΠ°ΠΊ component. Π‘ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠ°ΠΏΠΊΠ° components ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΎΠΉ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Β«Π΄ΠΎΠΌΠΎΠΌΒ» Π΄Π»Ρ ΡΠ»ΠΎΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ.
5. Π―Π·ΡΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. JavaScript?
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΡΡΠΎ JavaScript. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ°ΡΠ΅ΠΉ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΡ Π΅Π³ΠΎ Π½Π΅ΡΡΡΠ°Π·Π½ΠΎΡΡΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠ΅ΡΡΡΡΡ ΠΎ Π½Π΅ΠΌ (ΡΠ°ΠΉΠΌ ΠΊΠΎΠ΄ 1-20), Π½ΠΎ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΠ΅Π»Π°Ρ ΡΠ°ΡΡΡ.
ΠΠ°ΠΆΠ½Π΅Π΅ ΡΠΎ, ΡΡΠΎ Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΠΊ ΡΠ·ΡΠΊΡ. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π³ΠΎΠ΄. ΠΠΎΠ²ΡΠΉ ΡΠΈΡΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ 4-ΡΡΠ°ΠΏΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΅Π²ΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠΎΠΏΠ°ΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π·Π°ΡΠ°ΡΡΡΡ, ΠΎΠ½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ Π΅ΡΡ Π΄ΠΎ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· Π²ΡΠ΅ 4 ΡΡΠ°ΠΏΠ°. Π Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΠΈ Π°Π²ΡΠΎΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠΈΡΠΈ Π΄ΠΎ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΡΡΠ°Π»ΠΈ ΡΠΈΡΠΎΠΊΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² 2015 Π³ΠΎΠ΄Ρ, Π½ΠΎ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π·Π°ΡΠ°ΡΡΡΡ Π±ΠΈΠ·Π½Π΅Ρ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΠΏΡΠΈΠΎΡΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΠ·ΡΠΊΠΎΠ²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ.
ΠΠΎΡΠΎΠΌΡ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΈΡΡΠΎΠ³ΠΎ JavaScript ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½ΡΠΏΠΈΠ»ΡΡΠΎΡ (babel) Ρ ΡΠ΅ΠΌ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ JavaScript, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ ΠΈΠ· Β«ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈ ΠΌΠΎΠ΄Π½ΠΎΠ³ΠΎΒ» JavaScript. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π½ΡΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ β Π½Π΅Ρ ΠΏΡΠΈΡΠΈΠ½ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅, Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠ΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ»ΡΠ±ΠΎΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΎΠΏΡΠΈΠΉ Π»Π΅ΠΆΠΈΡ Π²Π½Π΅ Π³ΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ, Π½ΠΎ ΠΌΠΎΠΉ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ β TypeScript ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½:
ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠΎΠ² Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
ΠΡΠ΄ΡΡΠΈ Π½Π°Π΄-ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ JavaScript, ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ JavaScript ΠΊΠΎΠ΄ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² (typings) ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΏΠΎΠ²Π΅ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ JavaScript ΠΊΠΎΠ΄Π° Π±Π΅Π· Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΡΠ΅ ΡΡΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ npm ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΠΆΠ΅ ΠΏΠΎΠΊΡΡΡΡ ΡΠ°ΠΉΠΏΠΈΠ½Π³Π°ΠΌΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ Π±Ρ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ TypeScript ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΏΠΎ-Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ.
6. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π΄ΠΈΠ·Π°ΠΉΠ½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΡΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ: HTML, CSS, JavaScript. Π’Π°ΠΊΠΆΠ΅ Π²ΡΠΏΠΎΠΌΠ½ΠΈΠΌ ΡΡΡΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 4: Π΄Π΅ΡΠ΅Π²ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ, ΠΎΡΡΠ°ΠΆΠ°ΡΡΠ΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ΅Π»ΡΡ [6.1] Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ HTML ΠΈ CSS ΠΈ ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ.
Π‘ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΡΠΈΡΡΠΎΠ³ΠΎ HTML ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ ΡΡΠΎ ΠΎΠ½ Π½Π΅ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π²ΠΈΠΆΠΊΠΎΠ² ΡΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ underscore.js, handlebars.js. ΠΠ΄Π½Π°ΠΊΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½Π° Π²Ρ ΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ, ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ Π½Π°Ρ Π² ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΡΠ°Π±Π»ΠΎΠ½Π΅ Π΄Π°Π½Π½ΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΡΠΎΡΠΎΠΉ ΡΠ΅Π»ΡΡ [6.2] ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ TypeScript ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΎΡΡΠ°ΠΆΠ°ΡΡΠΈΠ΅ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΡΠ°Π±Π»ΠΎΠ½Π΅ (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅). ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π²ΡΠ±ΡΠΎΡΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ Π² ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Ρ.
ΠΠ°ΠΆΠ΄ΡΠΉ UI ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΠΎ ΡΠ°Π·Π½ΠΎΠΌΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ Π΅ΠΌΡ Π΄Π°Π½Π½ΡΡ . HTML ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² Π²ΠΈΠ΄Π΅ HTML Π°ΡΡΠΈΠ±ΡΡΠΎΠ². ΠΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ. ΠΠ»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ . Π ΡΡΠΈΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°Ρ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΌΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΡΠ΅ΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² Π²ΠΈΠ΄Π΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ².
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΠ΅ΡΡΠ΅ΠΉ ΡΠ΅Π»ΡΡ [6.3] ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΈ ΠΈΠ· Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π»ΡΠ±ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ .
Π§Π΅ΡΠ²Π΅ΡΡΠΎΠΉ ΡΠ΅Π»ΡΡ [6.4] ΡΡΠ°Π½Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΡΠ°ΠΊΠΈΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΠΌ:
ΠΠΎΠ»ΠΆΠ½Π° ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π»ΠΈΡΡ ΡΠ°ΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ .
ΠΠΎΠ»ΠΆΠ½Π° ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ. ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΡΠ»ΡΡΠ°Ρ ΠΊΠΎΠ³Π΄Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½Ρ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π½Π°Π±ΠΎΡΡ Π΄Π°Π½Π½ΡΡ .
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»ΠΎΠ΅Π² Domain ΠΈ Application. ΠΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΡΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ ΠΈ Π³ΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ΅ΡΠ²ΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Dependency Injection. Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΡΠ»Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ.
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ β ΠΌΡ Π½Π΅ Ρ ΠΎΡΠΈΠΌ ΡΡΠΎΠ±Ρ Π΄Π°Π½Π½ΡΠ΅ Π²Π½ΡΡΡΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ Π±ΡΠ»ΠΈ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌΠΈ Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°. Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½Ρ Π·Π° ΡΠ²ΠΎΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΆΠ΅, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½ΠΈΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅ΠΌ ΡΡΡΠΎΠ³ΠΎ-ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅-ΠΈ-ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅-html-ΡΠ°Π±Π»ΠΎΠ½Ρ. ΠΠ»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π²Π½ΡΡΡΠΈ ΡΠ΅Π±Ρ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅ΡΠ΅Π½ΠΎ ΡΠ°Π½Π΅Π΅, Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΌΠ΅Π»ΠΊΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΡΠ»ΠΎ Π±Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΠ΅Π· Π΄Π°Π½Π½ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ Π΄ΠΎΡΡΠΈΠ³Π½Π΅ΠΌ:
ΠΡΡΡΠ΅ΠΉ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°, Ρ.ΠΊ. ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈΠ· Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡΡ ΡΡΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ.
ΠΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Ρ.ΠΊ. ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ .
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΡΠ°Ρ ΡΠ΅Π»Ρ [6.5] β ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΠΌ Π΄Π°Π½Π½ΡΡ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ TypeScript ΠΊΠ»Π°ΡΡΡ. ΠΠ±ΠΎΠ·Π½Π°ΡΠΈΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ΅Π·Π° Π΄Π°Π½Π½ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ.
ΠΠ΅ΡΠΆΠ° ΡΡΠΈ ΡΠ΅Π»ΠΈ Π² Π³ΠΎΠ»ΠΎΠ²Π΅, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°:
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ (Components) β ΡΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ HTML ΡΠ°Π±Π»ΠΎΠ½Ρ + CSS ΡΡΠΈΠ»ΠΈ
ΠΠΎΠ΄Π΅Π»ΠΈ Π²ΠΈΠ΄Π° (ViewModels) β ΠΊΠ»Π°ΡΡΡ, ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΡΡΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ (ΠΈ Π²ΡΠ΅ΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΏΠΎΠ΄ Π½ΠΈΠΌ).
Π€Π°ΡΠ°Π΄Ρ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π²ΠΈΠ΄Π° (ViewModel facades) β ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΈΠ΄Π° ΡΠ΅ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅.
Π ΠΈΡΡΠ½ΠΎΠΊ 6: ΠΆΠ΅Π»Π°Π΅ΠΌΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠΎΠ΄Π° Π² ΡΠ»ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ
ΠΠ΅-ΠΏΡΠ½ΠΊΡΠΈΡΠ½ΡΠ΅ ΡΡΡΠ΅Π»ΠΊΠΈ ΠΎΡΡΠ°ΠΆΠ°ΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠ΅Π»ΠΊΠΈ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ².
ΠΡΠ½ΠΊΡΠΈΡΠ½ΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ ΠΎΡΡΠ°ΠΆΠ°ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΠ΄Π½ΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΡΡΠΊΠΎΠ² ΠΊΠΎΠ΄Π° ΠΎΡ Π΄ΡΡΠ³ΠΈΡ (ΡΡΡΠ»ΠΊΠΈ).
ΠΠ»ΠΎΠΊΠΈ Ρ Π·Π΅Π»Π΅Π½ΠΎΠΉ ΡΠ°ΠΌΠΊΠΎΠΉ β Π³ΡΠ°Π½ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ/ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡΡΠ°ΠΆΠ΅Π½ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄ Π½Π΅Π³ΠΎ ΠΏΠ°ΠΏΠΊΠΎΠΉ. ΠΠ±ΡΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π»Π΅ΠΆΠ°Ρ Π² ΠΏΠ°ΠΏΠΊΠ΅ Β«sharedΒ».
ΠΠΎΠ»ΡΠ±ΡΠ΅ Π±Π»ΠΎΠΊΠΈ β ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΈΠ΄Π°. ΠΠΎΠ΄Π΅Π»ΠΈ Π²ΠΈΠ΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΏΠΎ ΡΡΡΠΊΠ΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»Ρ/ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»Ρ.
Π§ΡΠΎ ΡΠΏΡΡΠ΅Π½ΠΎ? ΠΠ°ΠΌΠ΅ΡΡΡΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΈΠ΄Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 6 Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΡΠΎ Π²ΡΠ΅Π³Π΄Π° ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ (ΡΡΡΠ°Π½ΠΈΡ) ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π²ΠΈΠ΄Π°. ΠΠΎ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π°ΡΠ°ΡΡΡΡ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΠ±ΠΎΠ·Π½Π°ΡΠΈΠΌ ΡΠ΅ΡΡΡΡ ΡΠ΅Π»Ρ [6.6] β ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΡ Π²ΠΈΠ΄Π° ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»Ρ.
Π ΠΈΡΡΠ½ΠΎΠΊ 7: Π°ΡΡΠΈΠ±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Π½ΠΎ ΠΈ Π² Π΅Π³ΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ Π²ΠΈΠ΄Π°
7. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
Π― Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Ρ ΡΠ΅ΠΌ ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠ°ΡΡΡ Π»Π΅Π³ΡΠ΅ Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΈΡΡΠΈΡ. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² β Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°.
7.1. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΠ»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΡΠΎΠ³ΠΎ-ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ tsx (ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ jsx). Π Π΅Π½Π΄Π΅ΡΠΈΠ½Π³ tsx ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ React, Preact and Inferno. Tsx ΠΠ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΡΡΠΌ HTML, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ Π²/ΠΈΠ· HTML. ΠΠΎΡΠΎΠΌΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ tsx ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΉ Ρ.ΠΊ. Π² ΡΠ»ΡΡΠ°Π΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π½Π° ΡΠΈΡΡΡΠΉ HTML, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΠ»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠ°, ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΡΠΈΡΡΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΌΠΈ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΌΠΈ JSX ΡΠ·Π΅Π». ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π±ΡΠ» ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΠΈ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ΅Π±Ρ Π·Π°ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» Π² ΡΠ°Π½Π½ΠΈΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΡΠ°Π·Π²ΠΈΡΠΈΡ React.
Π₯ΠΈΠ½Ρ: Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π³ΠΎΠ΄Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΈΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π²ΡΡΠ»ΠΈ ΠΈΠ· ΠΌΠΎΠ΄Ρ Π² ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ React. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ react hooks Π½Π°Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ΅Π°ΠΊΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ°ΠΉΠ΄-Π΅ΡΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΠΎΡΡΡΠ΅Ρ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π½Π΄Π΅ΡΠ° Ρ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ. Π₯ΡΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ API Π΄Π»Ρ React ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π² ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅, ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΌ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅.
ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π»ΠΈΡΠ΅Π½Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΠΈΡ ΡΠ΅ΡΠ΅Π· Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ UI=F(S) Π³Π΄Π΅
UI β Π²ΠΈΠ΄ΠΈΠΌΠ°Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ°
F β ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
S β ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΈΠ΄Π° (Π·Π΄Π΅ΡΡ ΠΈ Π΄Π°Π»Π΅Π΅ β Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ)
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅Ρ ΡΠ°ΠΊ:
ΠΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ todo ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π²Π½ΡΡΡΠΈ TodoMVC ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Π² ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ β ΡΡΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° JSX. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΡΠΈΡΠΎΠ²Π°Π½ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ. Π‘ ΡΠ°ΠΊΠΈΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠΌ Π·Π°ΠΌΠ΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ, Π½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Β«ΡΠ΅Π°Π»ΠΈΡΡΠΈΡΠ½ΠΎΠΉΒ».
ΠΡΠΎΠ³ΠΎ ΠΌΡ Π΄ΠΎΡΡΠΈΠ³Π»ΠΈ ΡΠ΅Π»Π΅ΠΉ [6.1] ΠΈ [6.2].
7.2. ΠΠΎΠ΄Π΅Π»ΠΈ ΠΠΈΠ΄Π° (Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ)
ΠΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ ΡΠ°Π½Π΅Π΅, ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΡΠΎΠ±Ρ Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ Π±ΡΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π² Π²ΠΈΠ΄Π΅ TypeScript ΠΊΠ»Π°ΡΡΠΎΠ² Ρ ΡΠ΅ΠΌ ΡΡΠΎ-Π±Ρ:
ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ .
ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎ ΡΠ»ΠΎΡΠΌΠΈ domain/application ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° dependency injection.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ»Π°ΡΡΡ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ Π΄Π°Π½Π½ΡΠ΅, ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ°.
ΠΡΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (reactive UI). ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² ΡΡΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅. ΠΠ°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π±ΡΠ» Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² WPF (C#) ΠΈ Π½Π°Π·Π²Π°Π½ Model-View-ViewModel. Π JavaScript ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅, ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΠΎΠ·ΡΠ΅Π²Π°Π΅ΠΌΡΠΌ (observable) Π΄Π°Π½Π½ΡΠΌ ΡΠ°ΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΠΌΠΈ (stores) ΡΠ»Π΅Π΄ΡΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ flux. ΠΡΠΌΠ΅ΡΡ ΡΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ:
ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΠΌΠ΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΡΡΠΈΠΉ Π»ΠΎΠ³ΠΈΠΊΡ Π»ΠΎΠ³ΠΈΠΊΡ Π±ΠΈΠ·Π½Π΅ΡΠ° ΠΈ Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠΉ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½ΠΎ ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΠΈΠΉΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌ.
ΠΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈΠ»ΠΈ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π»ΡΠ±Π°Ρ Π²ΡΡΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ, Π½ΠΎ Π½Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΡΡ.
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΡΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ:
ΠΠΎΠ΄, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΌΠ΅ΡΠ°Π½ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π±ΠΈΠ·Π½Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΡΡΠΌΠΎΠ΄Π΅Π»Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π½Π°ΡΡ ΠΎ ΡΠΎΠΌ ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΡΡΠ»Π°ΡΡΠΈΠ΅ΡΡ Π½Π° ΡΡΡ Π²ΡΡΠΌΠΎΠ΄Π΅Π»Ρ.
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ mobx Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΠ»Ρ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΠΎΠ·ΡΠ΅Π²Π°Π΅ΠΌΡΠΌΠΈ. ΠΡΠΈΠΌΠ΅Ρ Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΠΎ ΠΌΡ ΡΡΡΠ»Π°Π΅ΠΌΡΡ Π½Π° mobx Π½Π°ΠΏΡΡΠΌΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Π½Π΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π² ΡΠ΅Π»Π΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
Π― ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡ ΠΊΠ°ΠΊ Π°Π±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈ ΡΠ±ΡΠ°ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ mobx Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅. ΠΠΎΠΊΠ° ΡΡΠΎ ΠΏΠΎΡΡΠΈΡΠ°Π΅ΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°ΠΌ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ mobx. ΠΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Π½Π° Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°.
Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ°
ΠΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π΄Π»Ρ:
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² (ΠΏΠΎΠ΄-)ΠΌΠΎΠ΄ΡΠ»Ρ.
Π ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π²ΡΡΠΌΠΎΠ΄Π΅Π»Ρ Ρ ΡΠ°Π½ΠΈΡ ΡΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (ΡΠ²Π»ΡΠ΅ΡΡΡ statefull). ΠΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π° ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π° ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΡΡΠ΅Π·Π°Π΅Ρ ΡΠΎ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 7, ΡΠΎΡΠΊΠΎΠΉ Π²Ρ ΠΎΠ΄Π° Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π³ΠΎ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΡΡΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π° ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΡΡΡΡΠΊΡΡΡΡ DOM(mounted) ΠΈ ΡΠ΄Π°Π»Π΅Π½Π° ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΡΠΎ ΡΡΡΠ°Π½ΠΈΡΡ(unmounted). Π Π΅ΡΠΈΡΡ ΡΡΡ Π·Π°Π΄Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° (higher order components).
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΡΠΈΠΏ ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π½Π°Π΄ moduleRootComponent, ΠΊΠΎΡΠΎΡΡΠΉ:
ΠΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (mount) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
ΠΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π·Π°ΡΠΈΡΡΠΊΡ(ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅) Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ (unmount).
ΠΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° TodoMVC ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½Π° Ρ.ΠΊ. ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ IoC ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΡΡΠΎ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΠ°ΠΆΠ½ΠΎ ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π»Ρ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΠΊΡΡΡΠ° Π²Π½ΡΡΡΠΈ withVM.
TodoMVCDisconnected ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ΅Π½Π΄Π΅ΡΠ°
TodoMVC ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΠ΅Π½Π΄Π΅ΡΠ΅Π½ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅, Π½Π΅ Π·Π°Π²ΠΈΡΡΡΠ΅ΠΌ ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ΅Π½Π΄Π΅ΡΠ°
TodosVM ΡΡΡΠ»Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ. ΠΠΎΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅, Π΅Ρ ΠΎΡΠ²ΡΠ·ΠΊΠ° ΠΎΡ mobx ΡΠ΅Π°Π»ΡΠ½Π°.
Π₯ΠΈΠ½Ρ: Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΡΡΠ½ΠΊΡΠΈΡ withVM Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ react context API. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΠ±Ρ ΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π°ΠΏΠΈ. ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠ· ΡΠ°ΡΠ°Π΄ΠΎΠ² Π²ΡΡΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ β ΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ connectFn Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅.
7.3. Π€Π°ΡΠ°Π΄Ρ Π²ΡΡΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ
Π€Π°ΡΠ°Π΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡ, Π²ΡΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ/Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ· ΡΠΈΡΡΠ½ΠΊΠ° 6 Π²ΠΈΠ΄Π½ΠΎ ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎ ΡΠ°ΡΠ°Π΄Ρ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΈΠ·Π»ΠΈΡΠ½Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠ²Π½ΡΠΌ.
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ Β«ΡΠ°ΡΠ°Π΄ΠΎΠ²Β» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠ΅ Π²ΡΡΠΌΠΎΠ΄Π΅Π»Ρ (ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΡΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ) ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠ΅ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ/Π΄Π°Π½Π½ΡΡ , Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΠ°Π·ΠΎΠ²Π΅ΠΌ ΠΈΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΡΠ΅Π·Π° (slicing function). Π§ΡΠΎ Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π°ΡΡΠΈΠ±ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½Π° ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°?
Π ΠΈΡΡΠ½ΠΎΠΊ 8: ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠ°ΡΠ°Π΄Ρ Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ (ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ΅Π·Π°/slicing function)
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ (Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΠ΄Π½ΠΎΠΉ Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ):
ΠΠ°ΠΌΠ΅ΡΠΊΠ°: Π― Π½Π°Π·Π²Π°Π» Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π°ΡΡΠΈΠ±ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° βOwnPropsβ ΡΡΠΎ-Π±Ρ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΡ Π΅Π³ΠΎ ΠΊ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ Π² react/redux.
ΠΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ°ΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π² ΡΠΏΠΈΡΠΊΠ΅ todo ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²:
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅ ΡΡΠΎ connectFn ΡΠΊΡΡΠ²Π°Π΅Ρ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ:
ΠΠ½Π° Π±Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ TodoItemDisconnected ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠ΅Π·Π° sliceTodosVMProps β ΠΎΠ±Π΅ Π½Π΅ Π·Π½Π°ΡΡΠΈΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΈ ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° JSX.
ΠΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΠ΅, ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ.
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ connectFn Π΄Π»Ρ TodoMVC ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°.
8. ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠΎΠ³ΠΎ Π²Π΅ΡΡ ΠΊΠΎΠ΄, ΠΎΡΠ½ΠΎΡΡΡΠΈΠΉΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ Π±ΠΈΠ·Π½Π΅Ρ Π·Π°Π΄Π°ΡΠ°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ ΠΎΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ². TypeScript ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΡΠ½ΠΊΡΠΈΠΈ, TSX β ΡΡΠΎ Π²ΡΠ΅ ΠΊ ΡΠ΅ΠΌΡ ΠΌΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ.
ΠΠ°Π΄Π΅ΡΡΡ ΡΡΠΎ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΎ ΠΏΠΎΠ»ΡΠ·Ρ ΠΏΡΠΎΡΠ°Π±ΠΎΡΠΊΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ SPA ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΠΏΠ΅ΡΡΠ΄ ΡΡΠ°ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠ΄Ρ ΡΡΠ°ΡΡΠ»ΠΈΠ² Π΅ΡΠ»ΠΈ ΠΌΠ°ΠΉΠ½Π΄ΡΠ΅Ρ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π½Π° ΡΡΠ°ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ SPA ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ Ρ Β«Π±Π΅ΡΠ΅ΠΌ ΡΠ²Π΅ΠΆΠΈΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΈ Π²ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Ρ ΠΎΡΠΎΡΠΎΒ» Π½Π° Β«ΠΏΠΎΠ΄ΡΠΌΠ°Π΅ΠΌ ΡΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈ Π²ΡΠ±Π΅ΡΠ΅ΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΒ».
ΠΡΠ΅ ΠΆΠ΅, ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΠ»ΠΎΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ ΠΎΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ?
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎ-Π±Ρ ΡΠ±ΡΠ°ΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° mobx, react ΠΈ mobx-react ΠΈΠ· ΡΠ»ΠΎΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅:
ΠΠ±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΎΡ mobx Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ²
ΠΠ±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎ-Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ»ΠΎΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ TodoMVC Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ react-router ΠΈ react-router-dom.
ΠΠ±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΎΡ ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡΠ΅ΠΉ JSX.
ΠΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° ΠΏΡΠ½ΠΊΡΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ, ΡΡΠΎ Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅.
ΠΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠΎΠ±ΡΡΠΈΠΉ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈ ΡΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π»ΠΈΡΠ΅Π½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΊΠΎΠΌΡΡΠ½ΠΈΡΠΈ.
Π― ΠΏΡΠ°Π³ΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΡΠ΅Π°ΠΊΡΠ° Π² ΡΠ²ΠΎΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ . Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π·Π°ΠΌΠ΅Π½Π° React Π½Π° Π΄ΡΡΠ³ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΠ΅Π½Π΄Π΅ΡΠ° ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, ΠΏΡΡΡΡ ΡΡΠ° ΡΠ°Π±ΠΎΡΠ° ΠΈ Π±ΡΠ΄Π΅Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ Π½Π΅ Π·Π°ΡΡΠΎΠ½Π΅Ρ Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ΅Π·Π°.
P.S. Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ ΠΈ Π΅Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ SPA:
Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ ΡΠΎ ΡΠ²ΡΠ·ΠΊΠΎΠΉ React/Redux: Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡΡ reducers, action creators ΠΈ middlewares. ΠΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (ΡΠ²Π»ΡΡΡΡΡ stateful). ΠΠ΅Ρ time-travel. ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ. ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΡΠ°Π΄ΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²ΡΠ·Π²Π°Π½Π½ΠΎΠΉ Π½Π°Π»ΠΈΡΠΈΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ connect Ρ ΠΊΠ°ΠΊΠΎΠΉ ΡΠΎ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ Π²Π½ΡΡΡΠΈ. Redux-dirven ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π²ΡΠ΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ· Π·Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ connected ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π±ΠΎΡΠ»Π½Π΅ΠΊΠ°, ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ.
Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ vue: ΡΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ TSX. ΠΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΡΠ°Π²Π½ΠΎ ΠΊΠ°ΠΊ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ. Vue.js Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π½ΡΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ ΠΈΠΌΠ΅ΡΡΠ΅ΠΉ ΡΠ²ΠΎΠΉΡΡΠ²Π° βdataβ,βmethodsβ, ΠΈ Ρ.Π΄. ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ vue-ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ angular: ΡΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ TSX. ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ angular-ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π²Π½ΡΡΡΠΈ Π²ΡΡΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π² ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π΄Π²ΡΡΡΠΎΡΠΎΠ½Π½Π΅ΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ (two-way data binding). Π₯ΠΈΠ½Ρ: Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠΎΡΠΌΡ, Π΄Π²ΡΡΡΠΎΡΠΎΠ½Π½ΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° Π΄Π°Π½Π½ΡΡ ΡΠ΄ΠΎΠ±Π½Π° ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Π°.
Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ ΡΠΈΡΡΡΠΌ react Π³Π΄Π΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ρ ΡΠΊΠΎΠ² (hooks, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ useState/useContext):ΠΡΡΡΠ΅Π΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ. ΠΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ Π² ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ΅Π°ΠΊΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΠΈΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π° ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ:
ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ Π²ΡΠ·ΠΎΠ²Π° Ρ ΡΠΊΠΎΠ².
ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Ρ ΡΠΊΠΎΠ² useEffect Π²Π½ΡΡΡΠΈ βdepsβ ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ Π»ΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΡΠ»Π΅Π΄ΠΈΡΡ ΡΡΠΎ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΠ΅Π½Π΄Π΅ΡΠΎΠ² Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²Π½ΡΡΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Ρ ΡΠΊΠ° ΡΡΡΠ΅ΠΊΡΠ°.
ΠΠ°ΠΊ Π»ΡΠ±Π°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, Ρ ΡΠΊΠΈ (ΠΈ Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ β useEffect) ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌ. ΠΡΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², Π½ΠΎ ΠΏΡΠΈΠ½ΡΡΡ ΠΊΠ°ΠΊ Β«ΠΏΠΎΠ΄Ρ ΠΎΠ΄Β», Β«ΠΌΠΎΠ΄Π΅Π»Ρ ΠΌΡΡΠ»Π΅Π½ΠΈΡ (mental model)Β» ΠΈΠ»ΠΈ Β«ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ (best practices)Β». ΠΡΠ΅ΠΊΡΠ°ΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ ΠΏΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΡΠΊΠΎΠ² ΠΎΡ ΡΠ»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ react. ΠΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ Π΅Π΅ ΠΈ ΠΎΡΠ²Π΅ΡΡΡΠ΅ ΡΠ΅Π±Π΅ Π½Π° Π΄Π²Π° Π²ΠΎΠΏΡΠΎΡΠ°:
Π§ΡΠΎ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Ρ ΡΠΊΠΈ?
ΠΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ», Π½Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ/Π»ΠΈΠ½ΡΠ΅ΡΠΎΠΌ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π½Π° ΡΡΡΠ½ΠΎΠΌ ΠΊΠΎΠ΄ ΡΠ΅Π²ΡΡ, Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΡΠΊΠΎΠ² ΠΎΡΡΠ°Π²Π°Π»ΠΎΡΡ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ?ΠΡΠ»ΠΈ Π²ΡΠΎΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ β ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠΈΠ³Π½Π°Π» ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Ρ ΡΠΊΠ°ΠΌ ΡΡΠΎΠΈΡ Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ. Π₯ΠΈΠ½Ρ: ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΡΡΡΡΠ°ΡΠΈΠΈ ΠΎΡ Ρ ΡΠΊΠΎΠ²
Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ react-mobx ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠΎΠ΄Π° Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ react-mobx ΠΈ Π½Π΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ ΠΊ Π½Π΅ΠΌΡ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΡΠ°ΠΌ. Π Π°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ Π² ΡΡΠ°ΡΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠΌ.
Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ mobx-state-tree: ΠΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΡΠ°Π²Π½ΠΎ ΠΊΠ°ΠΊ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Π²Π½ΡΡΡΠΈ mobx-state-tree ΠΎΠΏΠΈΡΠ°Π΅ΡΡΡ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ mobx-state-tree Π² ΡΠ²ΡΠ·ΠΊΠ΅ Ρ TypeScript ΠΏΡΠΎΠ²ΠΎΡΠΈΡΡΠ΅Ρ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ β ΠΏΠΎΠ»Ρ ΡΠΈΠΏΠ° ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ TypeScript ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ±ΡΠ·Π°Π½Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠ°.