ΠΡΡΡΠΎΡΡΠΈΠ½Π³ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° React π»
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React.js
ΠΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π½Π°ΠΏΡΡΠΌΡΡ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΡΠΏΠ΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° β ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠΈΡ ΡΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π‘Π»ΠΎΠΆΠ½ΠΎ ΡΠ³Π½Π°ΡΡΡΡ Π·Π° Π²ΡΠ΅ΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π½ΠΎΠ²ΡΡ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΉ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΡΠΎΠΉ ΡΡΠ΅ΡΠ΅. Π‘ ΠΏΡΠΈΠ½ΡΡΠΈΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ES6, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΎΡΡ ΠΎΠ΄ΠΈΡΡ ΠΎΡ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ jQuery Π² ΡΡΠΎΡΠΎΠ½Ρ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΡ , ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½Π°ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΡΠ·ΡΠΊ JavaScript ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ Π²ΡΠ»Π΅Π΄ Π·Π° ΡΡΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠ° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΈΠ½ΡΡΠΎ Π²ΡΠ΄Π΅Π»ΡΡΡ ΡΡΠΈ Π³Π»Π°Π²Π½ΡΡ ΠΈΠ³ΡΠΎΠΊΠ° β React, Vue ΠΈ Angular, ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΌΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ Π² ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅. React β ΡΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Facebook. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ Π² 2013 Π³ΠΎΠ΄Ρ, ΠΈ Ρ ΡΠ΅Ρ ΠΏΠΎΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½Π΅ΡΠΊΠ»ΠΎΠ½Π½ΠΎ ΡΠ°ΡΡΠ΅Ρ. Π‘Π΅ΠΉΡΠ°Ρ Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΊΡΡΠΏΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠ°ΠΊ Instagram, Netflix, Yahoo, Dropbox ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠΎ Π΄Π°Π½Π½ΡΠΌ BuiltWith ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 2,5 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ React.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ ReactJS
Π‘ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ React, Vue ΠΈ Angular ΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (SPA). ΠΠ° ΡΡΠΎΠΌ Π³Π»Π°Π²Π½ΡΠ΅ ΡΡ ΠΎΠ΄ΡΡΠ²Π° Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Vue ΠΈ Angular, React ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, Π° Π½Π΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ. Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°ΡΡΡΠΉ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ², Π½ΠΎ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΠΌ, ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π±ΠΎΠ»ΡΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Ρ, ΡΠ΅ΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ.
ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π΅Π΅, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ DOM, Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΠΈΡ
ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ. ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π° ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ React ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ². ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄Π΅Ρ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΎΡΠ²ΠΎΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΠΈ ΠΏΠΎΡΠΎΠ³ Π²Ρ
ΠΎΠ΄Π° Π² ΡΡΡ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π²ΡΡΠ΅ ΡΠ΅ΠΌ Π² Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅.
Π Vue ΠΈ Angular, Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΡΡΠ°Π·Ρ Π²ΡΡΡΠΎΠ΅Π½Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΡΠΎΡΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΆΠΈΠ·Π½Ρ: ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Ρ Π°Ρ, ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. Π‘ΠΎΠ·Π΄Π°ΡΠ΅Π»ΠΈ ΡΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Β«ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈΒ» Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ²ΡΡ Π·Π°Π΄Π°Ρ. ΠΠΎ Π·Π° ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ»Π°ΡΠΈΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΡΡΠ΄ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
ΠΠ»Ρ ΠΊΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ React.js
ReactJS β ΡΡΠΎ ΡΠ°Π·ΡΠΌΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°. ΠΠ΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΈ ΡΡΠΊΠΎΡΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π²ΡΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠ°.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±ΡΠ°ΡΡ ΡΠ°ΠΉΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ· Π³ΠΈΠ±ΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² (ΠΏΠ°Π½Π΅Π»ΠΈ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ, ΡΠΏΠΈΡΠΊΠΈ ΠΈ ΠΏΡ.) Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Ρ ΠΊΠΎΠ΄. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Ρ Π³ΠΈΠ±ΠΊΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊ Π»ΡΠ±ΡΠΌ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ.
ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΈΠ½ΡΡΠΈΠ΅ΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²Π°ΡΠΈ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΡ, ΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ β ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Google Chrome ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠΉ Π²Π°Ρ ΡΠ°ΠΉΡ, Π° Π΄Π°Π»ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠΎΠ±ΡΠΈΡ Π²Π°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π»ΠΈ Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ React.
ΠΡΡΡΠΎΡΡΠΈΠ½Π³ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° React.js
ΠΠ° ΡΡΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ? ΠΠΎΠΌΠ½ΠΈΡΠ΅, React-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ β ΡΡΠΎ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, Ρ Π³Π»ΡΠ±ΠΎΠΊΠΈΠΌ Π·Π½Π°Π½ΠΈΠ΅ΠΌ JavaScript ΠΈ ΡΠΌΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ΅ Π±ΠΎΠΉΡΠ΅ΡΡ ΡΠΏΡΠΎΡΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π½Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΠ΅ Π°ΡΡΡΠΎΡΡΠΈΠ½Π³ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ React.js Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΠΎΠ΄ΡΡΠ΄ΡΠΈΠΊ Π·Π½Π°Π΅Ρ Π² ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ. ΠΡΠ»ΠΈ Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΉ ΠΎΠΏΡΡ ΠΈ ΡΠΈΡΠΎΠΊΠΈΠΉ ΠΊΡΡΠ³ΠΎΠ·ΠΎΡ, ΡΠΎ ΠΎΠ½ ΡΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠ΅Π»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠ°ΡΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ ΠΏΠΎ React.js
Π‘ΡΠ΅Π΄ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π°Π±Π»ΡΠ΄Π°Π΅ΡΡΡ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡ ΠΊ Π²ΡΠ±ΠΎΡΡ Π² ΠΏΠΎΠ»ΡΠ·Ρ React. ΠΠΎ Π΄Π°Π½Π½ΡΠΌ State of JS Ρ ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ°ΠΌΡΠΉ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ 70% ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΠ»Π°Π½ΠΈΡΡΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ Π² ΡΠ°Π±ΠΎΡΠ΅. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅ΠΉΡΠ°Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠΉ js-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Π΅Ρ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅.
ΠΠΎΡΠ΅ΠΌΡ ΠΌΡ
Π‘ΠΎΠ²Π΅ΡΡΠ΅Π½Π½Π°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ β ΡΡΠΎ ΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΈ ΡΡΠΊΠΎΡΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΡΠΈΠ½ΠΎΡΡ ΠΏΠΎΠ»ΡΠ·Ρ ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΡΠ°ΠΊ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ. Π‘ ReactJS ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², Π±ΡΠ΄Ρ ΡΠΎ ΠΊΡΡΠΏΠ½ΡΠ΅, ΡΡΠ΅Π΄Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΌΠ°Π»ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ.
ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ΠΉ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠΈ Π½ΡΠΆΠ½ΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎ Facebook ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ React Native Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ iOS ΠΈ Android. Π£ΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΊΠΎΡΠΎΡΡΡ, ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Ρ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° React. ΠΡΡΡΠΎΡΡΠΈΠ½Π³ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ React Native ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΡΡΠΈΡΡ Π±ΠΈΠ·Π½Π΅Ρ ΡΠ΅Π»Π΅ΠΉ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΎΡ Π²Π°Ρ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠΈ.
ΠΠ°ΡΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΡΡΠ΄ Π²Π΅Π± ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠΌΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎ ΠΎΡΠ΄Π΅Π»ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΎΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΎΠ»ΡΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΡΠ»ΡΡΠ°ΡΠΈΡ
React β Π²ΡΡ ΠΏΠΎ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ React-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π² 2021 Π³ΠΎΠ΄Ρ
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π½ΡΠΆΠ½ΠΎ Π²Π»Π°Π΄Π΅ΡΡ React-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π² 2021 Π³ΠΎΠ΄Ρ, ΡΡΠΎΠ±Ρ Π±ΡΡΡ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠΌ.
ΠΠ°ΠΊ ΡΡΠ°ΡΡ React-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Π² 2021: Π΄ΠΎΡΠΎΠΆΠ½Π°Ρ ΠΊΠ°ΡΡΠ°
Π₯ΠΎΡΠΈΡΠ΅ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΡΠ°ΡΡ React-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Π² 2021? ΠΠ΅ΡΠΆΠΈΡΠ΅ Π΄ΠΎΡΠΎΠΆΠ½ΡΡ ΠΊΠ°ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ±ΡΠ°Π»Π° must-have ΡΠ΅ΠΌΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Windows Π½Π° React Native
ΠΠ° React Native ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π½Π°ΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ Android ΠΈ iOS. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° Π½ΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΈ ΠΏΠΎΠ΄ Windows.
Flutter vs React-Native: Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Flutter ΠΈ React-Native ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ²ΡΠ» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΡΠ΅Π² Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ° Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ.
ΠΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΠΌ React ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Microsoft Office
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΈΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ MS Office Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ°ΡΡΠΎΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π½Π° JavaScript.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² Recharts
Π‘ΡΠ°ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΡΠ΅ΠΌ, ΠΊΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ React ΠΈ Recharts (ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ SVG) Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ².
Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π΄ΠΆΡΠ½ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ React
Π Π°Π·Π±ΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ· ΠΎΡΠΈΠ±ΠΎΠΊ (ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ), ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΆΡΠ½Ρ ΡΠΎΠ²Π΅ΡΡΠ°ΡΡ Π½Π° ΡΠ°Π½Π½Π΅ΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ°.
ΠΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ²ΠΎΡ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° React Native
Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΡ, ΡΡΠΎ ΠΆΠ΅ ΡΠ°ΠΊΠΎΠ΅ React Native, ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½ ΡΠ΅ΠΉΡΠ°Ρ Π²Π°ΠΆΠ΅Π½ ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΡΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π΄Π»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΠΎΡΠ½ΠΎΠ².
Π‘ΠΎΠ·Π΄Π°ΡΠΌ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π±ΡΠΊΠ΅Π½Π΄ΠΎΠΌ Π½Π° Django ΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ΠΎΠΌ Π½Π° React
Π‘ΠΎΠ·Π΄Π°ΡΠΌ REST API Π½Π° Django, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ React Π² ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ Django ΠΈ React.
10 ΡΠΈΡΠ΅ΠΊ ΠΈΠ· JavaScript, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° React
React β ΡΡΠΎ ΠΏΠΎΡΡΠΈ ΡΠΈΡΡΡΠΉ JS. Π§Π΅ΠΌ Π»ΡΡΡΠ΅ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ JS, ΡΠ΅ΠΌ Π»ΡΡΡΠ΅ Π²Ρ Π² React. Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΊΠΎΠ΄ΠΈΡΡ ΠΊΡΡΡΠ΅ ΠΈ Π½Π° ΡΠΎΠΌ, ΠΈ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ.
CΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π΄Π»Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ: React Native, Flutter, Ionic, Xamarin ΠΈ PhoneGap
Π‘ΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΡ, Π² ΠΊΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ . ΠΡΡΡ ΡΠ΄ΠΎΠ±Π½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ°.
React Context Π·Π° 5 ΠΌΠΈΠ½ΡΡ: ΡΡΠΎ ΡΡΠΎ ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React Context ΠΈ ΠΊΠ°ΠΊ Ρ Π½ΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ? ΠΡΡΡΡΡΠΉ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΡΠ°Π·Π±ΠΎΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
Π‘ΠΎΠ·Π΄Π°ΡΠΌ drag-and-drop ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π° React
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ drag-and-drop ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° React Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ react-beautiful-dnd ΠΎΡ Atlassian.
ΠΠΈΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ Π΄Π΅Π» ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ React Hooks
React Hooks β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» (state, lifecycle) React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ES6-ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° React Hooks: ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΡ; ΠΏΡΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈβ¦
Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ ΡΠ΅ΡΠ΅Π· ΠΊΠ»Π°ΡΡΡ: Π²ΡΡΠΈΡΠ°Π΅ΠΌ ΡΠ²ΠΎΠΉ JavaScript-ΠΊΠΎΠ΄
Π ΡΡΠ΅Π΄Π½ΠΈΡ ΠΈ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ Π²ΡΠ½ΠΎΡΠΈΡΡ ΡΠ°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ. Π ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΎΡΡΠ΅Π½ Π½Π΅ΠΎΠ±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
Π‘ΠΏΠΎΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ Π² React
React ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ:Render props / props; Context; React-Redux / Redux.
React: ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ
React β ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ. ΠΡΠ»ΠΈ ΠΈΠ·ΡΡΠΈΡΡ Π΅Π³ΠΎ Π³Π»ΡΠ±ΠΆΠ΅, ΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅.
React, Angular ΠΈ Vue: ΡΡΠΎ ΠΈΠ·ΡΡΠ°ΡΡ Π² 2019 Π³ΠΎΠ΄Ρ?
Π€ΡΠΎΠ½ΡΠ΅Π½Π΄ β ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠΈΡ ΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ΅ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ ΠΎΠ½ ΠΎΠ±ΡΠΎΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΠΏΡΠΈΠ·Π²Π°Π½Π½ΡΡ ΠΏΠΎΠΌΠΎΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅. ΠΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½ΠΎΠ²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: Π§ΡΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π΄Π»Ρβ¦
React.js Π΄Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΠΈΡ
ΠΡΠ°ΠΊ, Π²Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ React. Π§ΡΠΎ Π΄Π°Π»ΡΡΠ΅? Π Π²ΠΎΡ ΡΡΠΎ β 5 ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ, ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ΅Ρ Π²Π°Ρ ΡΠΊΠΈΠ»Π» Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ.
ΠΡΠΈΠΌΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°: ΠΏΡΠΎΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌ email-ΡΠ°ΡΡΡΠ»ΠΊΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ React
Π Π°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΠ»ΡΠ±Π΅ΡΡΠΎ Π ΡΡΡΠΈΡΠΎ, JS-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΠ°ΡΡ Π½Π΅Π΄Π΅Π»Ρ Π½Π°Π·Π°Π΄ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠΎΠΎΠ±ΡΠΈΠ», ΡΡΠΎ Π²Β Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΡΠΈΠ½ΡΠΎΠ² ΠΌΡΒ Π±ΡΠ΄Π΅ΠΌ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠΌΠΈ ΠΏΠΈΡΡΠΌΠ°ΠΌΠΈ. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ emailβΡ Π½Π°Π΄ΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΡΠΌΠΈ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎΒ Π±Ρ ΠΊΒ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ Π²ΡΡΡΡΠΊΠΈ.
ΠΠΈΡΠ΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° React Ρ Π½ΡΠ»Ρ Π·Π° ΡΠ°Ρ
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ React β JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². ΠΡ Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³Π½ΠΎΠ·Π° ΠΏΠΎΠ³ΠΎΠ΄Ρ Ρ Π½ΡΠ»Ρ.
Π‘ΠΎΡΡΠ΅ΡΡ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ ΡΠΈΠ»ΠΎΠΉ ΠΌΡΡΠ»ΠΈ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½ΠΎΠ²ΠΈΠ½ΠΎΠΊ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² β Π²ΡΡ, ΡΡΠΎ Facebook ΠΏΠΎΠΊΠ°Π·Π°Π»Π° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ F8
18β19 Π°ΠΏΡΠ΅Π»Ρ ΠΏΡΠΎΡΠ»Π° Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡ Facebook ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ F8. Π ΡΠ°ΠΌΠΊΠ°Ρ
ΡΡΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°Π»Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
Π½ΠΎΠ²ΠΈΠ½ΠΎΠΊ.
9 ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΠΎΠ²Π΅ΡΠΎΠ² Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ React.js
Π Π°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΡΠΌ ΠΠΆΠ΅ΠΊΡΠΎΠ½Β Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΒ React.jsΒ ΡΠΆΠ΅ 6 ΠΌΠ΅ΡΡΡΠ΅Π². ΠΠ°, Π·Π²ΡΡΠΈΡ, ΠΊΠ°ΠΊ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΡΠΎΠΊ, Π½ΠΎ Π΄Π»Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠ΅Π³ΠΎΡΡ ΠΌΠΈΡΠ° JS-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ»Π³ΠΎ! Π― ΡΠΆΠ΅ Π΄Π°Π²Π°Π» ΡΠΎΠ²Π΅ΡΡ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΅ΡΠΈΠ», ΡΡΠΎβ¦
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ React — ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ React. ΠΡ ΡΠ·Π½Π°Π΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠ΅ΠΉ ΠΎ Π΅Π³ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π½Π°ΡΡΡΠΎΠΈΠΌ Π±Π°Π·ΠΎΠ²ΡΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π° Π½Π°ΡΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΈ ΠΏΠΎΠΈΠ³ΡΠ°Π΅ΠΌ Ρ ΠΏΡΠΎΡΡΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ , ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ·Π½Π°Π΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ React ΡΠ°Π±ΠΎΡΠ°Π΅Ρ .
Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ: | HTML, CSS, ΠΈ JavaScript, Π±ΡΡΡ Π·Π½Π°ΠΊΠΎΠΌΡΠΌ ΡΒ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠΌ/ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ. React ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ HTML-in-JavaScript ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ JSX (JavaScript ΠΈ XML). ΠΠ½Π°Π½ΠΈΠ΅Β HTML ΠΈ JavaScript ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΈΠ·ΡΡΠΈΡΡ JSX ΠΈ Π»ΡΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΠ²ΡΠ·Π°Π½Ρ Π»ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ JavaScript ΠΈΠ»ΠΈ Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΡΡ React. |
---|---|
ΠΠ°Π΄Π°ΡΠ°: | ΠΠ°ΡΡΡΠΎΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ React, ΡΠΎΠ·Π΄Π°ΡΡΒ ΡΡΠ°ΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ½ΡΡΡ ΠΎΡΠ½ΠΎΠ²Ρ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ. |
ΠΠ°ΠΊ Π³Π»Π°ΡΠΈΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ»ΠΎΠ³Π°Π½, React — ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². React Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ β ΠΎΠ½ Π΄Π°ΠΆΠ΅ Π½Π΅ ΡΠ°ΡΡΡΠΈΡΠ°Π½ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ web. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡΒ Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π² ΡΠ²ΡΠ·ΠΊΠ΅ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ.Β ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, React Native ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ;Β React 360 ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ; ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ React Π² ΡΠ°Π½Π΄Π΅ΠΌΠ΅ Ρ ReactDOM. React and ReactDOM ΡΠ°ΡΡΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅Ρ
ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π½Π°ΡΡΠΎΡΡΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Π΄Π»Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠΎΠ³Π΄Π° ΠΌΡ ΡΡΡΠ»Π°Π΅ΠΌΡΡ Π½Π° React ΠΊΠ°ΠΊ Π½Π° Β«ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΒ», ΠΌΡ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΠΌΒ ΡΡΠΎΒ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ½ΠΎΠ΅Β ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ React — ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². ΠΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Π·Π° ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² — Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ°ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. Π ΡΠΆΠ΅ ΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡΒ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.Β React Π°Π±ΡΡΡΠ°Π³ΠΈΡΡΠ΅Ρ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΎΡΡΠ°Π²Π»ΡΡ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° Π΄ΠΈΠ·Π°ΠΉΠ½Π΅.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ Π² ΡΡΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅, React Π½Π΅ ΠΎΠ±ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΒ ΡΡΡΠΎΠ³ΠΈΠΌΒ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΉ ΠΎ ΠΊΠΎΠ΄Π΅ ΠΈΠ»ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Π΄ΠΎΠ³ΠΎΠ²Π°ΡΠΈΠ²Π°ΡΡΡΡ, ΡΡΠΎ Π΄Π»Ρ Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ, ΠΈ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°ΡΡΒ React ΠΏΡΠΎΠ΅ΠΊΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. React ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΠΎΠ΄Π½Ρ ΠΊΠ½ΠΎΠΏΠΊΡ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠ΅ΠΉ ΠΈΠ»ΠΈ ΠΆΠ΅Β Π²Π΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π₯ΠΎΡΡ React ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Β«Π·Π°ΠΉΡΠΈΒ» Π² Π½Π΅Π³ΠΎ Π½Π΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ, ΠΊΠ°ΠΊ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ,Β Π² jQuery, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π²ΠΎΒ Vue. ΠΡΠ΄Π° Π»Π΅Π³ΡΠ΅ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡΒ ΡΠΎΠ·Π΄Π°Π² Π²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ React.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°Β React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ,Β ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡΒ JSX,Β ΡΡΠ΅Π±ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅Β Π½Π° ΡΠ°ΠΉΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° BabelΒ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΡΠΎΠΌΡΒ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΒ React Π΅ΡΡΡ ΡΠ΅ΡΡΡΠ·Π½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΒ ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, Π½ΠΎ ΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ²ΠΎΠΈΡΡ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡΒ React Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡΒ create-react-app, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎΒ Facebook.
React utilizes features of modern JavaScript for many of its patterns. Its biggest departure from JavaScript comes with the use of JSX syntax. JSX extends JavaScript’s syntax so that HTML-like code can live alongside it. For example:
const heading = <h2>Mozilla Developer Network</h2>;
This heading constant is known as a JSX expression. React can use it to render that
<h2>
tag in our app.
Suppose we wanted to wrap our heading in a <header>
tag, for semantic reasons? The JSX approach allows us to nest our elements within each other, just like we do with HTML:
const header = (
<header>
<h2>Mozilla Developer Network</h2>
</header>
);
Note: The parentheses in the previous snippet aren’t unique to JSX, and donβt have any effect on your application. They’re a signal to you (and your computer) that the multiple lines of code inside are part of the same expression. You could just as well write the header expression like this:
const header = <header>
<h2>Mozilla Developer Network</h2>
</header>
However, this looks kind of awkward, because the <header>
tag that starts the expression is not indented to the same position as its corresponding closing tag.
Of course, your browser can’t read JSX without help. When compiled (using a tool like Babel or Parcel), our header expression would look like this:
const header = React.createElement("header", null,
React.createElement("h2", null, "Mozilla Developer Network")
);
It’s possible to skip the compilation step and use React.createElement()
to write your UI yourself. In doing this, however, you lose the declarative benefit of JSX, and your code becomes harder to read. Compilation is an extra step in the development process, but many developers in the React community think that the readability of JSX is worthwhile. Plus, popular tooling makes JSX-to-JavaScript compilation part of its setup process. You don’t have to configure compilation yourself unless you want to.
Because JSX is a blend of HTML and JavaScript, some developers find it intuitive. Others say that its blended nature makes it confusing. Once you’re comfortable with it, however, it will allow you build user interfaces more quickly and intuitively, and allow others to better understand your code base at a glance.
To read more about JSX, check out the React team’s JSX In Depth article.
There are many ways to use React, but we’re going to use the command-line interface (CLI) tool create-react-app, as mentioned earlier, which expedites the process of developing a React application by installing some packages and creating some files for you, handling the tooling described above.
It’s possible to add React to a website without create-react-app by copying some <script>
elements into an HTML file, but the create-react-app CLI is a common starting point for React applications. Using it will allow you spend more time building your app, and less time fussing with setup.
Requirements
In order to use create-react-app, you need to have Node.js installed. It’s recommended that you use the long-term support (LTS) version. Node includes npm (the node package manager), and npx (the node package runner).
You may also use the Yarn package manager as an alternative, but we’ll assume you are using npm in this set of tutorials. See Package management basics for more information on npm and yarn.
If you’re using Windows, you will need to install some software to give you parity with Unix/macOS terminal in order to use the terminal commands mentioned in this tutorial. Gitbash (which comes as part of the git for Windows toolset) or Windows Subsystem for Linux (WSL) are both suitable. See Command line crash course for more information on these, and on terminal commands in general.
Also bear in mind that React and ReactDOM produce apps that only work on a fairly modern set of browsers β IE9+ by way of some polyfills. It is recommended that you use a modern browser like Firefox, Safari, or Chrome when working through these tutorials.
Also see the following for more information:
Initializing your app
create-react-app takes one argument: the name you’d like to give your app. create-react-app uses this name to make a new directory, then creates the necessary files inside it. Make sure you cd
to the place you’d like your app to live on your hard drive, then run the following in your terminal:
npx create-react-app moz-todo-react
This creates a moz-todo-react
directory, and does several things inside it:
- Installs some npm packages essential to the functionality of the app.
- Writes scripts for starting and serving the application.
- Creates a structure of files and directories that define the basic app architecture.
- Initializes the directory as a git repository, if you have git installed on your computer.
Note: if you have the yarn package manager installed, create-react-app will default to using it instead of npm. If you have both package managers installed and explicitly want to use NPM, you can add the flag --use-npm
when you run create-react-app:
npx create-react-app moz-todo-react --use-npm
create-react-app will display a number of messages in your terminal while it works; this is normal! This might take a few minutes, so now might be a good time to go make a cup of tea.
When the process is complete, cd
into the moz-todo-react
directory and run the command npm start
. The scripts installed by create-react-app will start being served at a local server at localhost:3000, and open the app in a new browser tab. Your browser will display something like this:
Application structure
create-react-app gives us everything we need to develop a React application. Its initial file structure looks like this:
moz-todo-react βββ README.md βββ node_modules βββ package.json βββ package-lock.json βββ .gitignore βββ public β βββ favicon.ico β βββ index.html β βββ manifest.json βββ src βββ App.css βββ App.js βββ App.test.js βββ index.css βββ index.js βββ logo.svg βββ serviceWorker.js
The src
directory is where we’ll spend most of our time, as it’s where the source code for our application lives.
The public
directory contains files that will be read by your browser while you’re developing the app; the most important of these is index.html
. React injects your code into this file so that your browser can run it. There’s some other markup that helps create-react-app function, so take care not to edit it unless you know what you’re doing. You very much should change the text inside the <title>
element in this file to reflect the title of your application. Accurate page titles are important for accessibility!
The public
directory will also be published when you build and deploy a production version of your app. We wonβt cover deployment in this tutorial, but you should be able to use a similar solution to that described in our Deploying our app tutorial.
The package.json
file contains information about our project that Node.js/npm uses to keep it organized. This file is not unique to React applications; create-react-app merely populates it. You don’t need to understand this file at all to complete this tutorial, however, if you’d like to learn more about it, you can read What is the file `package.json`? on NodeJS.org; we also talk about it in our Package management basics tutorial.
In React, a component is a reusable module that renders a part of our app. These parts can be big or small, but they are usually clearly defined: they serve a single, obvious purpose.
Let’s open src/App.js
, since our browser is prompting us to edit it. This file contains our first component,
App
, and a few other lines of code:
import React from 'react';
import logo from './logo.svg';
import './App.css';
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
export default App;
The App.js
file consists of three main parts: some import
statements at the top, the App
component in the middle, and an export
statement at the bottom. Most React components follow this pattern.
Import statements
The import
statements at the top of the file allow App.js
to use code that has been defined elsewhere. Let’s look at these statements more closely.
import React from 'react';
import logo from './logo.svg';
import './App.css';
The first statement imports the React library itself. Because React turns the JSX we write into React.createElement()
, all React components must import the React
module. If you skip this step, your application will produce an error.
The second statement imports a logo from './logo.svg'
. Note the ./
at the beginning of the path, and the .svg
extension at the end β these tell us that the file is local and that it is not a JavaScript file. Indeed, the logo.svg
file lives in our source directory.
We don’t write a path or extension when importing the React
module β this is not a local file; instead, it is listed as a dependency in our package.
file. Be careful of this distinction as you work through this lesson! json
The third statement imports the CSS related to our App component. Note that there is no variable name and no from
directive. This particular import syntax is not native to JavaScript module syntax β it comes from Webpack, the tool create-react-app uses to bundle all our JavaScript files together and serve them to the browser.
The
App
component
After the imports, we have a function named App
. Whereas most of the JavaScript community prefers camel-case names like helloWorld
, React components use pascal-case variable names, like HelloWorld
, to make it clear that a given JSX element is a React component, and not a regular HTML tag. If you were to rename the App
function to app
, your browser would show you an error.
Let’s look at App more closely.
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
The App
function returns a JSX expression. This expression defines what your browser ultimately renders to the DOM.
Some elements in the expression have attributes, which are written just like in HTML, following a pattern of attribute="value"
. On line 3, the opening <div>
tag has a className
attribute. This the same as the class
attribute in HTML, but because JSX is JavaScript, we can’t use the word class
β it’s reserved, meaning JavaScript already uses it for a specific purpose and it would cause problems here in our code. A few other HTML attributes are written differently in JSX than they are in HTML too, for the same kind of reason. We’ll cover them as we encounter them.
Take a moment to change the <p>
tag on line 6 so that it reads «Hello, world!», then save your file. You’ll notice that this change is immediately rendered in the development server running at http://localhost:3000
in your browser. Now delete the <a>
tag and save; the «Learn React» link will be gone.
Your App
component should now look like this:
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Hello, World!
</p>
</header>
</div>
);
}
Export statements
At the very bottom of the App.js
file, the statement export default App
makes our App
component available to other modules.
Letβs open src/index.js
, because that’s where the App
component is being used. This file is the entry point for our app, and it initially looks like this:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
ReactDOM.render(<App />, document.getElementById('root'));
serviceWorker.unregister();
As with App.js
, the file starts by importing all the JS modules and other assets it needs to run. src/index.css
holds global styles that are applied to our whole app. We can also see our App
component imported here; it is made available for import thanks to the export
statement at the bottom of App.js
.
Line 7 calls Reactβs ReactDOM.render()
function with two arguments:
- The component we want to render,
<App />
in this case. - The DOM element inside which we want the component to be rendered, in this case the element with an ID of
root
. If you look insidepublic/index.html
, you’ll see that this is a<div>
element just inside the<body>
.
All of this tells React that we want to render our React application with the App
component as the root, or first component.
Note: In JSX, React components and HTML elements must have closing slashes. Writing just <App>
or just <img>
will cause an error.
Service workers are interesting pieces of code that help application performance and allow features of your web applications to work offline, but theyβre not in scope for this article. You can delete line 5, as well as lines 9 through 12.
Your final index.js
file should look like this:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
ReactDOM.render(<App />, document.getElementById('root'));
Next, we’ll use a few of our JavaScript skills to get a bit more comfortable editing components and working with data in React. We’ll talk about how variables are used inside JSX, and introduce props, which are a way of passing data into a component (which can then be accessed using variables).
Variables in JSX
Back in App.js
, letβs focus on line 9:
<img src={logo} className="App-logo" alt="logo" />
Here, the <img />
tag’s src
attribute value is in curly braces. This is how JSX recognizes variables. React will see {logo}
, know you are referring to the logo import on line 2 of our app, then retrieve the logo file and render it.
Let’s try making a variable of our own. Before the return statement of App
, add const subject = 'React';
. Your
App
component should now look like this:
function App() {
const subject = "React";
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Hello, World!
</p>
</header>
</div>
);
}
Change line 8 to use our subject
variable instead of the word «world», like this:
function App() {
const subject = "React";
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Hello, {subject}!
</p>
</header>
</div>
);
}
When you save, your browser should display «Hello, React!» instead of «Hello, world!»
Variables are convenient, but the one we’ve just set doesnβt make great use of React’s features. That’s where props come in.
Component props
A prop is any data passed into a React component. Props are written inside component calls, and use the same syntax as HTML attributes β prop="value"
. Letβs open index.js
and give our <App/>
call its first prop.
Add a prop of subject
to the <App/>
component call, with a value of Clarice
. When you are done, your code should look something like this:
ReactDOM.render(<App subject="Clarice" />, document.getElementById('root'));
Back in App.js
, let’s revisit the App function itself, which reads like this (with the return
statement shortened for brevity):
function App() {
const subject = "React";
return (
);
}
Change the signature of the App
function so that it accepts props
as a parameter. Just like any other parameter, you can put
props
in a console.log()
to read it out to your browser’s console. Go ahead and do that after your subject
constant but before the return
statement, like so:
function App(props) {
const subject = "React";
console.log(props);
return (
);
}
Save your file and check your browser’s JavaScript console. You should see something like this logged:
Object { subject: "Clarice" }
The object property subject
corresponds to the subject
prop we added to our <App />
component call, and the string Clarice
corresponds to its value. Component props in React are always collected into objects in this fashion.
Now that subject
is one of our props, let’s utilize it in App.js
. Change the subject
constant so that, instead of defining it as the string React
, you are reading the value of props.subject
. You can also delete your console.log()
if you want.
function App(props) {
const subject = props.subject;
return (
);
}
When you save, the the app should now greet you with «Hello, Clarice!». If you return to index.js
, edit the value of subject
, and save, your text will change.
This brings us to the end of our initial look at React, including how to install it locally, creating a starter app, and how the basics work. In the next article we’ll start building our first proper application β a todo list. Before we do that, however, let’s recap some of the things weβve learned.
In React:
- Components can import modules they need, and must export themselves at the bottom of their files.
- Component functions are named with
PascalCase
. - You can read JSX variables by putting them between curly braces, like
{so}
. - Some JSX attributes are different to HTML attributes, so that they don’t conflict with JavaScript reserved words. For example,
class
in HTML translates toclassName
in JSX. Note that multi-word attributes are camel-cased. - Props are written just like attributes inside component calls, and are passed into components.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° β React
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΡΡΠΈ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΠ°ΡΡΠ΅ΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ. ΠΠ° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΈΠ΄Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠ΄Π΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ API ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.
ΠΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ JavaScript. ΠΠ½ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ (Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ Β«propsΒ» ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ) ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ React-ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠ΅, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅.
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ β Π½Π°ΠΏΠΈΡΠ°ΡΡ JavaScript-ΡΡΠ½ΠΊΡΠΈΡ:
function Welcome(props) {
return <h2>ΠΡΠΈΠ²Π΅Ρ, {props.name}</h2>;
}
ΠΠ°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ β ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ React, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ-ΠΎΠ±ΡΠ΅ΠΊΡ Β«propsΒ» (ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π°) Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ React. Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΡ Π½Π°Π·ΡΠ²Π°Π΅ΠΌ Β«ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈΒ», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ JavaScript.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ ΠΈΠ· ES6 Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
class Welcome extends React.Component {
render() {
return <h2>ΠΡΠΈΠ²Π΅Ρ, {this.props.name}</h2>;
}
}
ΠΠ²Π° Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ React.
Π£ ΠΊΠ»Π°ΡΡΠΎΠ² Π΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π°Ρ . ΠΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ·-Π·Π° ΠΈΡ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ.
ΠΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
Π Π°Π½ΡΡΠ΅ ΠΌΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ React, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ DOM-ΡΠ΅Π³ΠΈ:
ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ:
const element = <Welcome name="Π‘Π°ΡΠ°" />;
ΠΠΎΠ³Π΄Π° React Π²ΠΈΠ΄ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΎΠ½ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ JSX-Π°ΡΡΠΈΠ±ΡΡΡ ΡΡΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² Π²ΠΈΠ΄Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡ Π½Π°Π·ΡΠ²Π°Π΅ΠΌ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ Β«propsΒ».
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Β«ΠΡΠΈΠ²Π΅Ρ, Π‘Π°ΡΠ°Β» Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅:
function Welcome(props) {
return <h2>ΠΡΠΈΠ²Π΅Ρ, {props.name}</h2>;
}
const element = <Welcome name="Sara" />;
ReactDOM.render(
element,
document.getElementById('root')
);
ΠΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π½Π° CodePen
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
- ΠΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ
ReactDOM.render()
Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ<Welcome name="Π‘Π°ΡΠ°" />
. - React Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ
Welcome
Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ{name: 'Sara'}
ΠΊΠ°ΠΊprops
. - ΠΠ°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ
Welcome
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ<h2>Hello, Sara</h2>
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. - React DOM ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ DOM, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ
<h2>Hello, Sara</h2>
.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΠ΅Π³Π΄Π° ΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Ρ Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡΠΊΠ²Ρ.
React ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ ΡΠΎ ΡΡΡΠΎΡΠ½ΡΡ Π±ΡΠΊΠ², ΠΊΠ°ΠΊ DOM-ΡΠ΅Π³ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
<div />
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ HTML-ΡΠ΅Π³ div, Π½ΠΎ<Welcome />
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±ΡWelcome
Π±ΡΠ» Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΎ ΠΏΡΠΈΡΠΈΠ½Π°Ρ , Π»Π΅ΠΆΠ°ΡΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ Π·Π΄Π΅ΡΡ.
ΠΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΡΠ²ΠΎΡΠΌ Π²ΡΠ²ΠΎΠ΄Π΅. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ½ΠΎΠΏΠΊΠ°, ΡΠΎΡΠΌΠ°, Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΡΠΊΡΠ°Π½: Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ React Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ App
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅Ρ Welcome
:
function Welcome(props) {
return <h2>ΠΡΠΈΠ²Π΅Ρ, {props.name}</h2>;
}
function App() {
return (
<div>
<Welcome name="Π‘Π°ΡΠ°" />
<Welcome name="ΠΠ°Ρ
Π°Π»Ρ" />
<Welcome name="ΠΠ΄ΠΈΡ" />
</div>
);
}
ReactDOM.
render(
<App />,
document.getElementById('root')
);
ΠΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π½Π° CodePen
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π² Π½ΠΎΠ²ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
React Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ App
, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°ΠΌΠΎΠΌ Π²Π΅ΡΡ
Ρ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΠ΅ React Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ ΡΠ½ΠΈΠ·Ρ Π²Π²Π΅ΡΡ
Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Button
, ΠΈ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΈΠ΄ΡΠΈ Π²Π²Π΅ΡΡ
ΠΏΠΎ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ.
ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
ΠΠ΅ Π±ΠΎΠΉΡΠ΅ΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Comment
:
function Comment(props) {
return (
<div className="Comment">
<div className="UserInfo">
<img className="Avatar"
src={props.author.avatarUrl}
alt={props.author.name}
/>
<div className="UserInfo-name">
{props.author.name}
</div>
</div>
<div className="Comment-text">
{props.text}
</div>
<div className="Comment-date">
{formatDate(props.date)}
</div>
</div>
);
}
ΠΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π½Π° CodePen
ΠΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ author
(ΠΎΠ±ΡΠ΅ΠΊΡ), text
(ΡΡΡΠΎΠΊΠ°) ΠΈ date
(Π΄Π°ΡΠ°) Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠΉΡΡΠ² ΠΈ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π½Π° ΡΠ°ΠΉΡΠ΅ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΡ
ΡΠ΅ΡΠ΅ΠΉ.
ΠΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·-Π·Π° Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π΅Π³ΠΎ ΡΠ°ΡΡΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΈΠ·Π²Π»Π΅ΡΡΠΌ ΠΈΠ· Π½Π΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ ΠΈΠ·Π²Π»Π΅ΡΡΠΌ Avatar
:
function Avatar(props) {
return (
<img className="Avatar"
src={props.user.avatarUrl}
alt={props.user.name}
/>
);
}
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Avatar
Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π²Π½ΡΡΡΠΈ Comment
. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΡ ΠΏΡΠΈΡΠ²ΠΎΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° props
Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠ΅Π΅ ΠΈΠΌΡ: user
, Π° Π½Π΅ author
.
ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° props
Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π° Π½Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΡΡ-ΡΡΡΡ ΡΠΏΡΠΎΡΡΠΈΡΡ Comment
:
function Comment(props) {
return (
<div className="Comment">
<div className="UserInfo">
<Avatar user={props.author} />
<div className="UserInfo-name">
{props.author.name}
</div>
</div>
<div className="Comment-text">
{props.text}
</div>
<div className="Comment-date">
{formatDate(props.date)}
</div>
</div>
);
}
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΠ·Π²Π»Π΅ΡΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ UserInfo
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ Avatar
ΡΡΠ΄ΠΎΠΌ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ:
function UserInfo(props) {
return (
<div className="UserInfo">
<Avatar user={props.user} />
<div className="UserInfo-name">
{props.user.name}
</div>
</div>
);
}
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠΏΡΠΎΡΡΠΈΡΡ Comment
Π΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅:
function Comment(props) {
return (
<div className="Comment">
<UserInfo user={props.author} />
<div className="Comment-text">
{props.text}
</div>
<div className="Comment-date">
{formatDate(props.date)}
</div>
</div>
);
}
ΠΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π½Π° CodePen
ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠ½Π°ΡΠ°Π»Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΌΠΎΠ½ΠΎΡΠΎΠ½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ, Π½ΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΠ°Π»ΠΈΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΎΠΊΡΠΏΠ°Π΅ΡΡΡ Π² Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
. Π₯ΠΎΡΠΎΡΠ΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π½Π° ΡΡΠΎΡ ΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊ β Π΅ΡΠ»ΠΈ ΡΠ°ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· (Button
,Panel
, Avatar
) ΠΈΠ»ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½Π° ΡΠ°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅ (App
, FeedStory
,Comment
), ΡΠΎ ΡΡΠΎ Ρ
ΠΎΡΠΎΡΠΈΠΉ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ Π½Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΡΠ°Π» ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ.
Π‘Π²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° props Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅ Π»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡ, ΠΎΠ½ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ sum
:
function sum(a, b) {
return a + b;
}
Π’Π°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Β«ΡΠΈΡΡΡΠΌΠΈΒ», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΡΡΠ°ΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²ΠΎΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΈ Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π»Ρ ΠΎΠ΄Π½ΠΈΡ ΠΈ ΡΠ΅Ρ ΠΆΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΏΡΠΎΡΠΈΠ², ΡΡΠ½ΠΊΡΠΈΡ Π½ΠΈΠΆΠ΅ β Π½Π΅ ΡΠΈΡΡΠ°Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ²ΠΎΠΈ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅:
function withdraw(account, amount) {
account.total -= amount;
}
React Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π³ΠΈΠ±ΠΊΠΈΠΉ, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄Π½ΠΎ ΡΡΡΠΎΠ³ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ:
ΠΡΠ΅ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ ΡΠΈΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΏΠ»Π°Π½Π΅ ΡΠ²ΠΎΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ².
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½Ρ ΠΈ ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Β«ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅Β». Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ React ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² ΠΎΡΠ²Π΅Ρ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΎΡΠ²Π΅ΡΡ ΠΈ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ Π΅ΡΡ Π±Π΅Π· Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»Π° Π²ΡΡΠ΅.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ReactJS
ΠΠ°Π·Π°Π΄
ReactΒ (ΠΈΠ½ΠΎΠ³Π΄Π°Β React.jsΒ ΠΈΠ»ΠΈΒ ReactJS)Β βΒ JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Β ΡΒ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌΒ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈΒ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ².
React ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡΒ Facebook,Β InstagramΒ ΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠΉ.
React ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈΒ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΡΡ Β ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ³ΠΎ ΡΠ΅Π»ΡΒ β ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π²ΡΡΠΎΠΊΡΡ ΡΠΊΠΎΡΠΎΡΡΡ, ΠΏΡΠΎΡΡΠΎΡΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² React ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊΒ Redux.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ
ΠΠ΄Π½ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½Π°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ
Π‘Π²ΠΎΠΉΡΡΠ²Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΊ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΒ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ
Β (Π°Π½Π³Π». Β immutable) Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π·Β callback ΡΡΠ½ΠΊΡΠΈΠΈ. Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²Π½ΠΈΠ·, ΡΠΎΠ±ΡΡΠΈΡ Π½Π°Π²Π΅ΡΡ
Β».
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ DOM
React ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉΒ DOMΒ (Π°Π½Π³Π».Β virtual DOM). React ΡΠΎΠ·Π΄Π°Π΅ΡΒ ΠΊΡΡΒ ΡΡΡΡΠΊΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΡΠΈΡΠ»ΡΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ DOM Π±ΡΠ°ΡΠ·Π΅ΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ, ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΠΎΠ½Π° ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡ, Π½ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΡΠ°Π΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ.
JSX
JavaScript XML (JSX)Β β ΡΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° JavaScript, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠΉ Π½Π° HTML ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ JSX, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎΒ JavaScript[12]. JSX Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ·ΡΠΊ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π€Π΅ΠΉΡΠ±ΡΠΊ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ PHP, XHP .
ΠΠ΅ΡΠΎΠ΄Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°
ΠΠ΅ΡΠΎΠ΄Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠ΄ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΡΠ°Π΄ΠΈΡΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
- shouldComponentUpdateβ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Β false, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°.
- componentDidMountβ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ½ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠ΅ΡΠ΅Π·Β API.
- renderβ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅.
ΠΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° HTML Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅
React ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ HTML Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Facebook ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ Π² ΡΠ΅Π³ΠΈΒ <canvas>. Netflix ΠΈ PayPal ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΈΠ·ΠΎΠΌΠΎΡΡΠ½ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΠ³ΠΎ HTML Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅.
Β
Π£ Π²Π°Ρ Π½Π΅Ρ ΠΏΡΠ°Π² Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
React Developer
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΈΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ — ΠΏΠΎ ΠΊΠ½ΠΈΠ³Π°ΠΌ ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΊΡΡΡΠ°ΠΌ, Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° ΠΊΡΡΡΡ Π΄Π»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ½Π°ΡΠ°Π»Π΅ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·ΡΡΠΈΡΡ ΡΠ·ΡΠΊΠΈ Π²Π΅ΡΡΡΠΊΠΈ HTML ΠΈ CSS. ΠΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ Π½Π°ΡΡΠΈΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΡΡ, Π±Π»ΠΎΡΠ½ΡΡ, ΠΊΡΠΎΡΡΠ±ΡΠ°ΡΠ·Π΅ΡΠ½ΡΡ, ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ, Π²Π°Π»ΠΈΠ΄Π½ΡΡ ΠΈ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΡΡΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ ΠΈ Ρ ΠΎΡΠΎΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌΡΠΌΠΈ. ΠΡΠ°ΠΊΡΠΈΠΊΠΎΠ²Π°ΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ, Π²Π΅ΡΡΡΠ°Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎ ΠΌΠ°ΠΊΠ΅ΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΎΡΠΊΡΡΡΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅.Β
ΠΠ»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π·ΡΡΡΡΡ Π·Π° ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ CSS ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° — SASS, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ. ΠΠΎΠ³Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π½Π° HTML ΠΈ CSS Π±ΡΡΡΡΠΎ ΠΈ Π±Π΅Π· ΠΎΡΠΎΠ±ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π½Π°ΡΠΈΠ½Π°ΠΉΡΠ΅ ΡΡΠΈΡΡ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ JavaScript ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠ²Π°ΡΡΡΡ Π² ΠΎΠ½Π»Π°ΠΉΠ½-ΡΡΠ΅Π½Π°ΠΆΠ΅ΡΠ°Ρ . ΠΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΡΠ΅Π½Π°ΠΆΠ΅Ρ ΠΎΡ ITVDN. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΎΡΡΠΎΡΠΈΡΡ Π½Π°Π²ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° HTML, CSS ΠΈ JavaScript.Β Β Β
ΠΠ½Π°Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠ° JavaScript Π½Π° Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π΄Π°ΡΡ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ jQuery. ΠΠ΄Π½Π°ΠΊΠΎ, Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΈΠΌ JS-ΠΎΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄ΠΎΠ²Π΅ΡΡΠΈ Π΄ΠΎ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π²Π΅Π΄Ρ ΡΡΠΎ Π³Π»Π°Π²Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ React ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΠ°ΡΠ΅ΠΌ ΠΈΠ·ΡΡΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ React, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΠΊΠΈΠ΅ Π²Π΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠ°ΠΊ DOM, AJAX, JSON ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π·Π° ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π²Π·ΡΡΡΡΡ (Gulp/Grunt Π»ΠΈΠ±ΠΎ Webpack).Β
ΠΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ iOS ΠΈ Android, ΠΈΠ·ΡΡΠΈΡΠ΅ React Native.
ΠΡΠ΅Π½Ρ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ Ρ Π²Π°Ρ Π±ΡΠ» Π½Π°ΡΡΠ°Π²Π½ΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠ³ Π±Ρ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° Π²Π°ΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΎΠΌ, ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΠ²ΡΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ, Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΠΎΠ²Π΅ΡΡ. Β
ΠΠ½Π°Π½ΠΈΠ΅ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π½Π΅ Π½ΠΈΠΆΠ΅ Intermediate ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΠ½ΠΎ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΡΠΎΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ JavaScript, React ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅. ΠΡΠ»ΠΈ Π²Π°ΡΠΈ Π·Π½Π°Π½ΠΈΡ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½Ρ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ — ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΡΠ½ΠΈΡΠ΅ ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΡΡΡΠΎΠ² Π»ΠΈΠ±ΠΎ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ·ΡΡΠΈΡΠ΅ Git, Π½Π°ΡΠ½ΠΈΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠΉΡΠ΅ ΠΈΡ Π½Π° GitHub — ΡΡΠΎ Π΄Π°ΡΡ Π²Π°ΠΌ ΡΠ΅Π½Π½ΡΠΉ ΠΎΠΏΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΠΈ ΡΠ°Π±ΠΎΡΡ Π΄ΡΡΠ³ΠΈΠΌ Π»ΡΠ΄ΡΠΌ. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡΠΈΡ Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡ Π²ΡΠ΅ Π²Π°ΡΠΈ Π½Π°Π²ΡΠΊΠΈ, ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎΡΡΡΠΎΠ»ΠΈΠΎ Π³ΠΎΡΠΎΠ²ΠΎ, Π° Ρ Π½ΠΈΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π°Π²Π°ΡΡ ΡΠ΅Π·ΡΠΌΠ΅ Π½Π° Π²Π°ΠΊΠ°Π½ΡΠΈΡ React ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
ΠΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π²ΡΠΊΠΈ React ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
Π‘ ΡΠΎΡΡΠΎΠΌ ΡΠΏΡΠΎΡΠ° Π½Π° React — ΠΎΠ½ Π³ΠΎΠ΄ Π·Π° Π³ΠΎΠ΄ΠΎΠΌ Π²ΠΎΠ·Π³Π»Π°Π²Π»ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½ΡΡ ΠΎΠΏΡΠΎΡΠΎΠ² Stack Overflow ΠΏΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ ΡΠΏΡΠΎΡ Π½Π° Π½Π°Π²ΡΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² React. ΠΠ’ ΡΠ΅ΠΊΡΡΡΠ΅ΡΡ ΡΠ°ΡΡΠΎ ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π² Π·Π°ΡΡΡΠ΄Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ΅Π·ΡΠΌΠ΅ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π½Π°Π²ΡΠΊΠ°ΠΌΠΈ. Π‘Π°ΠΌΠ°Ρ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π°Π²ΡΠΊΠΈ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ.
ΠΡΠΈ ΠΏΡΠΈΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° React ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π°Π½ΡΡΡ Π»ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° React Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π±ΠΈΠ·Π½Π΅ΡΠ°?
1. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React?
React (ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ React.js ΠΈΠ»ΠΈ ReactJS) — ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JavaScript Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² (UI). Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² ΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΠΊΡΠ°Π½Π½ΡΡ
ΠΌΠ΅Π½Ρ, ΠΏΠ°Π½Π΅Π»Π΅ΠΉ ΠΏΠΎΠΈΡΠΊΠ°, ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ Π²ΡΠ΅Π³ΠΎ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ, Ρ ΡΠ΅ΠΌ ΠΊΡΠΎ-ΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ½ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Facebook 2013 ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Ρ React Native).
React ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π² Π²ΠΈΠ΄Π΅ Π΄Π΅ΡΠ΅Π²Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΡΠ°ΡΡΠ΅ΠΉ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΌΠ΅ΡΡ HTML ΠΈ JavaScript, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Ρ Π²Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΠΆΠ½ΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ React, ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Ember.js ΠΈ Angular, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ React Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π΅ΡΠ΅ΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ±ΡΠ°ΡΡ. React ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ°ΠΌΠΎΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ. React Π·Π°ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ Π΄ΠΎΠΌΠΈΠ½ΠΈΡΡΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ. Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΎΠΏΡΠΎΡΡ State of Developer Ecosystem Survey Π·Π° 2020 Π³ΠΎΠ΄, React ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ, ΠΈ 63% ΡΠ΅ΡΠΏΠΎΠ½Π΄Π΅Π½ΡΠΎΠ² ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΅Π΅, ΡΡΠΎ Π½Π° 10% Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ Π³ΠΎΠ΄Ρ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, React Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΎΡΡΡΠ²ΠΎΠΌ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠΈ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ²Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΎΠΊ .
1.1. ΠΠ»Ρ ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ React ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΎΠ½ ΡΠ΅ΡΠ°Π΅Ρ?
ΠΠΎ React ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΎΡΡΠ°Π²Π°Π»ΠΎΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π²ΡΡΡΠ½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Β«vanilla JavaScriptΒ» (ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π³ΠΎΠ²ΠΎΡΡΡ ΠΎ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ JavaScript Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ
-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ
ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ²) ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠΎΠ² React, ΠΌΠ΅Π½Π΅Π΅ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ jQuery. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΈΠ²Π΅Π» ΠΊ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ Π½Π°ΡΡΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΡΠ΅Π²ΠΎΡΡ
ΠΎΠ΄ΡΡΠ²ΠΎ React Π±ΡΡΡΡΠΎ ΡΠ΅ΡΠΈΠ»ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠ° React ΡΠΎΠ·Π΄Π°Π½Ρ ΡΠΎΡΠ½ΠΈ ΡΡΡΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ². ΠΠ½ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΡΠ°Π±Π°. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ
ΡΠ°ΠΉΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ
React, — ΡΡΠΎ Facebook, Instagram, Netflix, Reddit, Airbnb ΠΈ Uber.
React ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ²ΡΡ
ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠΎΠ², ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π΄Π»Ρ SEO, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ
, Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° Π² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ΅ΡΡΡΡΠΎΠ΅ΠΌΠΊΠΈΡ
Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ Π΅ΡΡΡ JavaScript. Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ.
1.2. ΠΠΎΡ
ΠΎΠΆ Π»ΠΈ ΠΎΠ½ Π½Π° ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΠΈΠ»ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ?
ΠΠΈΠ·Π°ΠΉΠ½ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ React Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ
ΠΎΠΆ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ JavaScript-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ.
ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Vue Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΡ ΠΎΠ΄ΡΡΠ²ΠΎ Ρ React. ΠΠ½ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ DOM, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠΊΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ.
ΠΠΎ Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ: React ΡΠΎΠ·Π΄Π°Π΅Ρ HTML Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° JSX, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ HTML. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π·Π½Π°Π½ΠΈΠ΅ HTML ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΊ React.
1.3. ΠΠ°ΠΊΠΎΠ²Ρ Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈΠ»ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ?
Π―Π²Π½ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ React ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΈΠ»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ — ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΡΠ΅ΠΌ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΡΡΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ; ΠΈΠ·Π±Π΅Π³Π°Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ
Π΄Π°Π½Π½ΡΡ
ΠΈ ΠΏΠΎΠ±ΠΎΡΠ½ΡΡ
ΡΡΡΠ΅ΠΊΡΠΎΠ². Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΌ, Π° Π½Π΅ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΌ, ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ React ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ Β«ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎΒ» ΠΊΠΎΠ΄Π°. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΊΠΎΠ΄Π°. ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΡΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΡΠΈΡΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
React ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² JavaScript: JSX ΠΈ Virtual DOM.
JSX (ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ JavaScript eXtension) — ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° React, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ HTML Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ JavaScript. ΠΠ±ΡΡΠ½ΠΎ Π½Π°ΡΠΈΠ²Π½ΡΠΉ JavaScript Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ JSX Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠΊΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±ΡΠ°ΡΠ·Π΅ΡΠ° React ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ Π½Π° Π²ΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΡ, JSX ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π»ΡΠ±ΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ.
ΠΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ JSX Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ DOM, React ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π΅ΡΡΠΎ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ Virtual DOM. ΠΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ DOM — ΡΡΠΎ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½Π°Ρ ΠΊΠΎΠΏΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ DOM ΡΠ°ΠΉΡΠ°, ΠΈ React ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΡ ΠΊΠΎΠΏΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°ΡΡΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ DOM Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΡ). ΠΡΠΎΡ Π²ΠΈΠ΄ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ. Π ΡΠ΅Π»ΠΎΠΌ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΡΡΠ½ΡΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ².
2. Π§ΡΠΎ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΠ’ ΡΠ΅ΠΊΡΡΡΠ΅ΡΡ ΠΎ React?
ΠΠ’ ΡΠ΅ΠΊΡΡΡΠ΅ΡΡ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ React — ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° / ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΌΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (Π΄Π°Π½Π½ΡΠ΅) Π² Π½Π°ΡΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΡΠΎΡΡΡ ΡΡΠΎΠΌΡ, Π² 2015 Π³ΠΎΠ΄Ρ Π±ΡΠ»Π° Π²ΡΠΏΡΡΠ΅Π½Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Redux, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ Π΄ΠΎ 2019 Π³ΠΎΠ΄Π°. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Redux ΡΡΡΠ°ΡΠΈΠ» ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ, ΠΈ React Hooks ΡΡΠ°Π» ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ Π»ΡΠ΄ΠΈ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ ΠΏΠΈΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Redux. ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΠΏΡΠΎΠ΄ΡΠΊΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° Redux, ΠΈ ΠΈΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ
Π»Π΅Ρ.
2.1. ΠΠ°ΠΊ ΡΠ°ΡΡΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΡΠ΅ΠΊ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ?
ΠΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°ΡΡ Π±ΡΠ΄ΡΡΠ΅Π΅. ΠΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 2-3 Π³ΠΎΠ΄Π° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Π½Π° ΠΌΠΈΠΊΡΠΈΠ½ΠΎΠ² Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° ΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Ρ
ΡΠΊΠΎΠ².
2.2. ΠΠΎΡΡΡΠΏΠ½ΠΎ Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠΎΠ² / ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² / ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ?
ΠΠΎ React Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ
ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² ΠΏΠΎ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π£Π΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π΅ ΡΠ°ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Angular, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π° ΠΊΠ°ΠΊ ΡΡΠ΅Π΄ΠΈ Π»ΡΠ±ΠΈΡΠ΅Π»Π΅ΠΉ, ΡΠ°ΠΊ ΠΈ ΡΡΠ΅Π΄ΠΈ ΠΎΠΏΡΡΠ½ΡΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ².
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ React. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π±ΡΠ» ΡΠΈΠ½ΡΠ΅Π·ΠΈΡΠΎΠ²Π°Π½ Facebook, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ°Ρ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΡΠ½Π°Ρ. ΠΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ JS-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Ρ ΠΊΠΎΡΠΎΡΡΡ
Π΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ React. ΠΠ»Ρ React ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ
ΡΡ ΡΡΠΏΠ΅Ρ
ΠΎΠΌ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ (Π²Π°ΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π·Π°Π±ΡΠΎΡΠ΅Π½Π½ΡΠΌ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ).
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΡΡΠΈΡΡ React Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, ΠΈ Π»ΡΡΡΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° ΡΠ°ΠΊΠΈΡ ΡΠ°ΠΉΡΠ°Ρ , ΠΊΠ°ΠΊ Hongkiat .
2.3. Π‘ ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π½Π°ΠΊΠΎΠΌ React ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ?
ΠΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ
ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΡΠ²ΠΎΠΈΡΡ React — ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ΅Π°Π»ΡΠ½ΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². Π’Π°ΠΊ ΡΡΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΠΎ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π΅ΡΡΡ Π² ΡΡΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠΏΡΡ. ΠΠ½Π°Π½ΠΈΠ΅ React Hooks, React Context API ΠΈ Redux ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° React.
- ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ React Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π² HTML, CSS, SASS / LESS / Stylus. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, SVG Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ½ΡΡΠΎΠΌ.
- Π₯ΠΎΡΠΎΡΠ΅Π΅ Π·Π½Π°Π½ΠΈΠ΅ JavaScript ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌ. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΏΠΎΠ³ΡΠ°ΡΡΠΊΠΈΠΉ ΡΠΊΡΠΈΠΏΡ.
- ΠΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π½Π°Π½ΠΈΡ ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ: jQuery, MomentJS, Underscore ΠΈ Lodash.
- ΠΠΏΡΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ React Π·Π½Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ JavaScript: npm, Yarn, ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Node.js (Π² ΡΠ΅Π»ΠΎΠΌ) ΠΈ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ: Webpack, Parcel ΠΈΠ»ΠΈ Rollup (Grunt, Gulp ΠΈ Π Π°Π½ΡΡΠ΅ Browserify Π±ΡΠ» ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½, Π° ΡΠ΅ΠΉΡΠ°Ρ ΠΈΠΌ ΠΌΠ°Π»ΠΎ ΡΡΠΎ)
- ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π½Π°ΡΡ TDD, BDD, Unit Tests ΠΈ ΡΠΌΠ΅ΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΠΊ Jest ΠΈΠ»ΠΈ Enzyme. ΠΠ°ΡΠΌΠΈΠ½, ΠΠ°ΡΠΌΠ°, ΠΠΎΠΊΠΊΠΎ ΠΈ Π‘Π΅Π»Π΅Π½ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ.
- ΠΡΠΈΡΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΎΠΏΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΠ½ΡΠΌΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ SaaS, Amazon AWS, Google Cloud ΠΈΠ»ΠΈ Microsoft Azure.
- ΠΡΠΈΡΠ΅ ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Ρ Π½Π°Π²ΡΠΊΠ°ΠΌΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΠΌΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ: Jira ΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ: NGINX, Apache, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²Π° Slack, Miro, Figma ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Google ΠΈΠ»ΠΈ Microsoft ΠΈ Ρ.
Π΄.
2.4. ΠΠ°ΠΊΠΎΠΉ ΠΎΠΏΡΡ Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ Π² React ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅?
ΠΠ°ΡΡΠ½ΡΠΉ ΠΈ Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΡΡ Π΄Π»Ρ React ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΡΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ΅Π½. ΠΠΏΡΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ — ΡΡΠΎ Ρ
ΠΎΡΠΎΡΠΎ, Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΠ‘, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ.
ΠΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΡΡ Π·Π°Π΄Π°Ρ Π² React Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ , ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠ°ΠΆΠ°ΡΠ΅Π»ΠΈ-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΡΠ°ΡΡΡΡ Π½Π°ΡΠ°ΡΡ ΡΠ²ΠΎΡ ΠΊΠ°ΡΡΠ΅ΡΡ Ρ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°ΡΡΠΎ Ρ React. ΠΠΎΡΡΠΎΠΌΡ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΡΡΠΊΠ½ΠΈΠΊΠΎΠ² ΡΡΠ΅Π±Π½ΡΡ ΠΊΡΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ²ΠΎΡ ΠΏΠ΅ΡΠ²ΡΡ ΡΠ°Π±ΠΎΡΡ Π² React. ΠΠ°Π»ΠΈΡΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ° — ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π»ΡΠ΄ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ΅ΡΠ°Π»ΠΈ ΡΡΠ΅Π±Π½ΡΠ΅ Π»Π°Π³Π΅ΡΡ ΠΈ ΡΠ°ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π²Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° ΡΡΠΎΡΠΎΠ½Π΅. ΠΠ°Π²Π°ΡΡ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ ΡΠ°Π½Ρ — ΡΡΠΎ Π·Π΄ΠΎΡΠΎΠ²ΠΎ, Π½ΠΎ ΠΈΡ ΠΎΠΏΡΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΡ Π² Π±ΠΎΡ Π·Π½Π°Π½ΠΈΠΉ.
3. ΠΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π²ΡΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° React Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΏΠΎΠ΄Π±ΠΎΡΠ°?
Π’Π΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ»ΠΈ ΠΆΠ΅ΡΡΠΊΠΈΠ΅ Π½Π°Π²ΡΠΊΠΈ — ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ. ΠΡΠΈ Π½Π°Π²ΡΠΊΠΈ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ°ΡΡΡΡ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΡΠ΅ΠΌΠΈΠ½Π°ΡΠΎΠ², ΡΡΠ΅Π½ΠΈΠ½Π³ΠΎΠ² ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ².
ΠΠΎ Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΌΠ΅ΠΆΠ»ΠΈΡΠ½ΠΎΡΡΠ½ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΌΠ΅ΠΆΠ»ΠΈΡΠ½ΠΎΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠΌ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°. ΠΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΈΡΠΎΠ΄Π΅ ΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠΈΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ. ΠΡΠ³ΠΊΠΈΠ΅ Π½Π°Π²ΡΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π½Π°ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π»ΠΈ ΠΎΠ½ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°ΠΌΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΊΡΠ»ΡΡΡΡΠ΅. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΡ Π½Π°Π²ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° React Π²ΠΊΠ»ΡΡΠ°ΡΡ:
- ΠΡΠ»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠ²Π½ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ
- ΠΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ°
- Π’Π²ΠΎΡΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄
- Π£ΠΌΠ΅Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΠΊΡΠΈΡΠΈΠΊΠΎΠΉ
3.1. Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ ΡΠ΅Π·ΡΠΌΠ΅?
ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, ΠΏΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ Π² ΡΠ΅Π·ΡΠΌΠ΅, — ΡΡΠΎ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ front-end ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΡΠ΅Π³Π΄Π° ΠΎΡΠ΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΡΡ, Π° Π½Π΅ Π΄Π»ΠΈΠ½Π½ΠΎΠΌΡ ΡΠΏΠΈΡΠΊΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΡΠ΅ΠΌ?
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»Π° ΡΠΎΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΠ°ΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΉ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌΠΈ, Π° ΡΠ΅ΡΠ΅Π· Π΄Π²Π° Π³ΠΎΠ΄Π° ΠΎΠ½ΠΈ ΡΠΆΠ΅ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Ρ, ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ.
Π’ΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΠΊΡΠΎ-ΡΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΠ» ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ X Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅Π·ΡΠΌΠ΅, ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ. ΠΠΎ ΡΡΠΎ Π½Π΅ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Ρ Π½ΠΈΡ Π΅ΡΡΡ ΡΠ²Π΅ΡΠ΄ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½ΠΈ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠ²Ρ ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ. Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΊ Π½Π΅Π·Π½Π°ΠΊΠΎΠΌΡΠΌ ΡΠΈΡΡΠ°ΡΠΈΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π΄Π΅ΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ, Π±Π΅Π· ΡΡΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π·Π½Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎ, ΠΊ ΡΠ΅ΠΌΡ ΠΎΠ½ ΠΏΡΠΈΠ²ΡΠΊ ΠΈΠ»ΠΈ ΡΠ΅ΠΌΡ Π΅Π³ΠΎ Π½Π°ΡΡΠΈΠ»ΠΈ.
Π ΠΎΠ±ΡΠ΅ΠΌ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π½Π°ΠΊΠΎΠΌΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠ΅Π·ΡΠΌΠ΅, Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π²Π°ΠΆΠ½Π΅Π΅. ΠΡΠ»ΠΈ Π±Ρ ΠΊΡΠΎ-ΡΠΎ Π²ΠΊΠ»ΡΡΠΈΠ» Β«ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠΉΒ» ΠΈΠ»ΠΈ Β«ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡΒ», ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΈΠΌΠ΅Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½.
3.2. ΠΠ°ΠΊΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ Π³Π»ΠΎΡΡΠ°ΡΠΈΡ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°ΡΡ Π² React (Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΠ·ΡΠΊΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ)?
ΠΠΎΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΎΠΈΡ ΠΏΠΎΠ½ΡΡΡ:
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°
- ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°
- Π€ΡΠ½ΠΊΡΠΈΠΈ (Π²ΡΠ΅) ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
- Π Π΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Ρ ΡΠΊΠΈ
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
- React Context API
- Redux
- MobX
Π‘ΡΠΈΠ»Ρ
- Π‘ΡΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
- Emotion
- CSS Π² JS
- ΠΠΎΠ΄ΡΠ»ΠΈ CSS
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ ΡΠ΅ΠΊΡΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠΎΠ²
ΠΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°
Bundler
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ React ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ React Native, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ
ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. React Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ React Native ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠ΄ ΠΊΠ°ΠΊ Π΄Π»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ², ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²Π°ΠΆΠ½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅Π»ΡΠ·Ρ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ.
3.3. ΠΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°Π·Π½ΡΠ΅? ΠΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΡ
ΠΎΠΆΠΈ Π΄ΡΡΠ³ Π½Π° Π΄ΡΡΠ³Π°?
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Π΅ΡΡΠΈΠΉ Π½Π΅ ΡΠ°ΠΊ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π»ΡΠ΄ΠΈ Π½Π΅ Π·Π°ΡΡΠΈΠ²Π°ΡΡ ΠΈΡ
Π½Π°ΠΈΠ·ΡΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ React Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΠ»ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Β«ΡΠΏΠΎΡ
Β».
ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Python v2 ΠΈ v3 Π½Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ. Π§ΡΠΎ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, ΡΠ°ΠΊ ΡΡΠΎ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΡΠ΄ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π»ΠΈ. ΠΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ, Π½ΠΎ React v16.8.3 Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½Π°ΡΠ΅ΠΊΠ°Π½ΠΈΠΉ Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π»ΡΠ΄ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π½Π°ΠΊΠΎΠΌΡ (Π² Ρ
ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅), Π²ΠΊΠ»ΡΡΠ°ΡΡ:
ΠΠ»Π°ΡΡ React Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
- Mixins — ΠΎΡΠ΅Π½Ρ ΡΡΠ°ΡΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΡΠΎ, ΠΏΠΎ ΡΡΡΠΈ, Π½Π°ΡΠ»Π΅Π΄ΠΈΠ΅, ΠΈ Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π³Π΄Π΅ ΠΎΠ½ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ.
- HOC (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°) — ΠΈΠ΄Π΅Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ HOC Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ (Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΎΠ΄Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ). ΠΠ½ Π΅ΡΠ΅ Π΅ΡΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , Π½ΠΎ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΈΠ΅ΠΌ.
- Render Props — Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΎΠ³ΠΈΠΊΡ / ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π ΠΎΠ½ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΡΡ Β«ΠΎΠΏΠΎΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°Β», ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅. ΠΡΠ°ΠΊ, ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ΅ΠΌ Π»ΠΎΠ³ΠΈΠΊΡ ΠΎΡ UI. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π½ΠΎ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΈΠ΅ΠΌ.
Π€ΡΠ½ΠΊΡΠΈΡ React Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
- React Hooks — ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ 2018 Π³ΠΎΠ΄Π° ΠΈ Π±ΡΡΡΡΠΎ ΡΡΠ°Π»ΠΈ Π΄ΠΎΠΌΠΈΠ½ΠΈΡΡΡΡΠΈΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠΌ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΡΠΎ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ. ΠΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ°. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π΅Π³ΠΎ ΠΈΠ·ΡΡΠΈΡΠ΅, ΠΎΠ½ ΡΡΠ°Π½Π΅Ρ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Π½ΡΠΌ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ. ΠΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π΄Π»Ρ Π΅Π³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠΈΠ»ΠΈΠΉ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°.
ΠΡΠ΅ Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ Π² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΏΡΡΠ°ΡΡΡΡ Π΄ΠΎΡΡΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΡΠ΅Π»ΠΈ, Ρ
ΠΎΡΡ ΠΈ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ: ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² ΠΎΠ΄Π½Ρ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ, ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ.
3.4. ΠΠ°ΠΊΠΈΠ΅ Π΅ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ΅Π·ΡΠΌΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π½Π°Π²ΡΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° React?
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ React ΡΠ°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π³Π»ΡΠ±ΠΎΠΊΠΈΠ΅ Π·Π½Π°Π½ΠΈΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π°Π³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π½Π°Π²ΡΠΊΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅:
- Π―Π·ΡΠΊ: JavaScript, ES6
- ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ JavaScript (ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡ, ΡΠΎΠ±ΡΡΠΈΡ, async await ΠΈ rxjs)
- HTTP — ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄Π°ΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ.
- Typescript ΠΈ / ΠΈΠ»ΠΈ Flow (ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ React ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ)
- ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Material UI
- Π ΠΎΠ±ΡΠ΅ΠΌ, Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ Π΄ΠΈΠ·Π°ΠΉΠ½Π°.
3.5. ΠΠ°ΠΊΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡΡΡ? ΠΠΎΠ»Π΅Π·Π½Ρ Π»ΠΈ ΠΎΠ½ΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π°Π²ΡΠΊΠΎΠ²?
ΠΠΎ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅ Π½Π΅Ρ ΡΠ²Π°ΠΆΠ°Π΅ΠΌΡΡ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ², ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΠΎΠΈΡ ΡΡΡΠ΅ΠΌΠΈΡΡΡΡ. ΠΡΠ»ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΠΈ Π΅ΡΡΡ, ΡΠΎ ΠΎΠ½ΠΈ ΠΌΠ°Π»ΠΎΠΈΠ·Π²Π΅ΡΡΠ½Ρ. ΠΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎ ΡΠΎΠΌΡ, ΡΠ΅ΠΌ ΡΠ°Π½ΡΡΠ΅ Π±ΡΠ»Π° Java (Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²).
4. Π’Π΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π°Π²ΡΠΊΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° React Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅Π»Π΅ΡΠΎΠ½Π½ΠΎΠ³ΠΎ / Π²ΠΈΠ΄Π΅ΠΎ-ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ.
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠ²Π»ΡΠ΅ΡΠ΅ΡΡ Π»ΠΈ Π²Ρ ΠΠ’ ΡΠ΅ΠΊΡΡΡΠ΅ΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π²Ρ Ρ
ΠΎΡΠΎΡΠΎ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΡΡΠΏΠ΅Ρ
Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π°ΡΠ΅ΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡ Π»ΡΡΡΠΈΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΠΈΠΆΠ΅ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π²ΠΎΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° React Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π°ΡΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
4.1. ΠΠΎΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π΄Π°ΡΡ ΠΎΠ± ΠΎΠΏΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° React . ΠΠ°ΡΠ΅ΠΌ Π²Π°ΠΌ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ
Π²ΠΎΠΏΡΠΎΡΠΎΠ²?
1 ΠΡ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅?
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, Ρ ΠΊΠΎΡΠΎΡΡΡ
Π½Π΅Ρ ΠΏΡΠΈΠ²ΡΡΠΊΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ / e2e-ΡΠ΅ΡΡΡ, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ½Ρ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ΅Π½.
2 ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΈ Π»ΠΈ Π²Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ (a11y) Π² ΡΠ²ΠΎΠΈΡ
Π½Π΅Π΄Π°Π²Π½ΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
?
ΠΠ°ΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π²Π΅Π±-ΡΠ°ΠΉΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΄Π»Ρ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΡ
ΠΈ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΡ
ΡΡΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ Π»ΡΠ΄ΠΈ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
3 ΠΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ ΠΈΠ»ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ»ΠΎΠΉ?
ΠΠ°Π½Π΄ΠΈΠ΄Π°Ρ ΡΠΊΠ°Π·Π°Π» Π±Ρ, Π² ΡΠ΅ΠΌ Π΅Π³ΠΎ ΡΠΈΠ»ΡΠ½Π°Ρ ΡΡΠΎΡΠΎΠ½Π° ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΎΠ½ Π±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅Π» Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅.
4 ΠΠ°ΠΊ Π±Ρ Π²Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠ²ΠΎΡ ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·Ρ React?
ΠΡΠ²Π΅ΡΡ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π³ΠΎΠ²ΠΎΡΡΡ ΠΎΠ± ΠΎΠΏΡΡΠ΅. Π₯ΠΎΡΠΎΡΠΈΠΉ ΠΎΡΠ²Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ: memo, useMemo, PureComponent, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅Π½ΡΠΆΠ½ΡΡ
Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΡΠ°ΡΡΠΈ (ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»ΠΎΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ).
4.2. ΠΠΎΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π΄Π°ΡΡ ΠΎ Π·Π½Π°Π½ΠΈΡΡ
ΠΈ ΠΌΠ½Π΅Π½ΠΈΡΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² React . ΠΠ°ΡΠ΅ΠΌ Π²Π°ΠΌ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ
Π²ΠΎΠΏΡΠΎΡΠΎΠ²?
- ΠΠΎΡΠ΅ΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠ²Π΅ΡΠ³Π»ΠΎ Redux (ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π·Π°ΡΠ²ΠΈΠ»ΠΎ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΠΏΡΡΡ Π²ΠΏΠ΅ΡΠ΅Π΄ Π΄Π»Ρ React)?
- Π£ΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ ΠΊΠ°ΠΊ Redux, ΡΠ°ΠΊ ΠΈ React Context API. ΠΠ΄Π΅ Π±Ρ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΎΠ΄Π½ΠΎ Π²ΠΌΠ΅ΡΡΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ?
- ΠΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Ρ React Hooks?
- Π£ΠΊΠ°ΠΆΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Ρ Π½ΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ React.
ΠΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΡΠ²Π»ΡΡΡΡΡ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π±Ρ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΡΠ»ΠΈ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ Π½Π΅ΠΎΠΏΡΡΠ΅Π½, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ.
ΠΠ»ΠΎΡ ΠΎΠΉ ΠΎΡΠ²Π΅Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡ Β« ΠΠΎΡΠ΅ΠΌΡ Π±ΡΠ» ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ Redux ?Β» Π±ΡΠ»ΠΎ Π±Ρ Β« ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ React Hooks Π»ΡΡΡΠ΅ Β». ΠΠΎΠ»Π΅Π΅ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΡΠΉ ΠΎΡΠ²Π΅Ρ Π±ΡΠ» Π±Ρ, Ρ ΠΎΡΡ Redux ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, ΡΠ²Π½ΠΎΡΡΡ, ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π³ΠΎΡΡΡΠ°Ρ Π·Π°ΠΌΠ΅Π½Π° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Π² Redux Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π°, ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΡΡΠ°Π»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ, ΠΊΠ°ΡΠ°ΡΡΠΈΠ΅ΡΡ Π·Π½Π°Π½ΠΈΠΉ ΠΈ ΠΌΠ½Π΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡΡΠ°ΡΡ:
1 ΠΠΎΡΠ΅ΠΌΡ React ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» Virtual DOM?
ΠΡΠ²Π΅Ρ Π½Π΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅, Π° Π½Π° ΡΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ ΡΠ°ΠΌ, Π΄ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ, Π»Π΅ΠΆΠ°ΡΠΈΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°ΠΌΠΎΠ³ΠΎ React. ΠΠΎΡΠΎΡΠΊΠΈΠΉ ΠΎΡΠ²Π΅Ρ — ΠΈΠ·-Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΈ ΠΏΡΠΎΡΡΠΎΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ HTML.
2 ΠΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΅ΡΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ CSS?
ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΡΠΎΡΡΠΈΠ΅ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ CSS Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
React. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π½Π°ΡΡΠΆΡ, Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΠ»ΠΈ ΠΈΠ·Π²Π½Π΅ ΠΏΡΠΎΠ½ΠΈΠΊΠ°ΡΡ Π² Π²Π°ΡΠ΅ ΠΌΠ΅ΡΡΠΎ. ΠΠΎΠ΄ΡΠ»ΠΈ CSS ΠΈΠΌΠΈΡΠΈΡΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈ.
3 ΠΠΎΡΠ΅ΠΌΡ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡΡΡ ΡΡΡΠ»ΠΊΠΈ (ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΡΡΡΠ»ΠΎΠΊ)?
ΠΡΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΈΠ»ΠΎΡΠΎΡΠΈΠΈ React. ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΡΠΈΠΏΠΈΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ. React ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠΌΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ. Refs — ΡΡΠΎ ΡΡ
ΠΎΠ΄ Π² ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠΈΡ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ Π²Π½Π΅ ΡΠΈΠ»ΠΎΡΠΎΡΠΈΠΈ React. ΠΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΡΠ°ΠΉΠ½Π΅ΠΌ ΡΠ»ΡΡΠ°Π΅.
4.3. ΠΠΎΠ²Π΅Π΄Π΅Π½ΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°Π΄Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ React. ΠΠ°ΡΠ΅ΠΌ Π²Π°ΠΌ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ
Π²ΠΎΠΏΡΠΎΡΠΎΠ²?
1 ΠΠ°ΠΊΠ°Ρ ΡΠ°ΠΌΠ°Ρ ΡΠ»ΠΎΠΆΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ° React Π²Π°ΠΌ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΠ»Π°ΡΡ? ΠΠ°ΠΊ ΡΡ Ρ ΡΡΠΈΠΌ ΡΠΏΡΠ°Π²ΠΈΠ»ΡΡ?
ΠΡΠ²Π΅Ρ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π½Π΅Π·Π½Π°ΠΊΠΎΠΌΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΎΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΡΠΌ Π½Π°Π²ΡΠΊΠ°ΠΌ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΈΠ»ΠΈ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²Ρ Ρ Π±ΠΈΠ·Π½Π΅ΡΠΎΠΌ.
2 ΠΡΠ»ΠΈ Π±Ρ Π²Ρ ΡΠ·Π½Π°Π»ΠΈ, ΡΡΠΎ Π½Π°Π±ΠΈΡΠ°ΡΡΠ°Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ Π½ΠΎΠ²Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π΄Π»Ρ React, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π±Ρ Π²Ρ Π΅Π΅ Π² ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, Π·Π½Π°Ρ, ΡΡΠΎ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ Π΄Π²Π° ΡΠ°Π·Π½ΡΡ
ΡΠΏΠΎΡΠΎΠ±Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ?
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΌΠ΅Π½ΡΡΡΠΈΠ΅ΡΡ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΈ — ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΌΠ΅Π½ΡΡΡΡΡ, Π½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΡΠ΄ΠΈ ΡΠ΅ΡΡΡΡ ΡΠΎΠΊΡΡ ΠΈ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ Π½ΠΈΠΌ ΠΊΠ°ΠΊ ΠΊ ΡΠ°ΠΌΠΎΠΉ ΡΠ΅Π»ΠΈ, Π° Π½Π΅ ΠΊΠ°ΠΊ ΠΊ ΡΡΠ΅Π΄ΡΡΠ²Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ-ΡΠ΅Π»ΠΈ. ΠΡΠ΅Π³Π΄Π° ΠΎΡΠ΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΌΠΎΡΡΡΡ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π° Π½Π΅ Π½Π° ΡΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΡΡΠΈΡΡ.
3 ΠΡΠ»ΠΈ Π±Ρ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Ρ React, Π²Ρ Π±Ρ Ρ
ΠΎΡΠ΅Π»ΠΈ ΡΡΠ°ΡΡ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΏΡΠΎΡ
ΠΎΠ΄ΡΠ΅ΠΌ?
Π’ΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ Π²ΡΡΠ΅ — Π½Π΅ ΠΎΡΠ΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌ ΠΏΠ΅ΡΠ΅Π΄ Π±ΠΈΠ·Π½Π΅Ρ-ΡΠ΅Π»ΡΠΌΠΈ. ΠΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΄Π΅Π½Π΅Π³, ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΎ Π·Π½Π°ΡΡ.
Intro to React — React
ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π½Π°Π»ΠΈΡΠΈΡ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π·Π½Π°Π½ΠΈΠΉ React.
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ Π½Π°ΡΠ½Π΅ΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ ΠΈΠ³ΡΡ. Π£ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠΎΠ±Π»Π°Π·Π½ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Ρ Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΈΠ³ΡΡ, Π½ΠΎ Π΄Π°ΠΉΡΠ΅ Π΅ΠΌΡ ΡΠ°Π½Ρ. ΠΡΠΈΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΈΠ·ΡΡΠΈΡΠ΅ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅, ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ React, ΠΈ ΠΈΡ
ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π΄Π°ΡΡ Π²Π°ΠΌ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ React.
ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°
ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΡ ΡΡΠΈΡΡΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡ .ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ ΠΈΠ·ΡΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Ρ Π½ΡΠ»Ρ, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½Π°ΡΠΈΠΌ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°.
Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ²:
ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡ Π²ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ ΡΡΠ°Π·Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·Ρ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°. ΠΠΎΡΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΏΡΠΎΠΉΡΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°Π»ΡΡΠ΅ — Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π²Π° ΡΠ°Π·Π΄Π΅Π»Π°.
Π§ΡΠΎ ΠΌΡ ΡΡΡΠΎΠΈΠΌ?
Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΠΈΠ³ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ Ρ React.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΡΡΠΎΠΈΡΡ Π·Π΄Π΅ΡΡ: Final Result . ΠΡΠ»ΠΈ ΠΊΠΎΠ΄ Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠ½ΡΡΠ΅Π½ ΠΈΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ Π΅Π³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ, Π½Π΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ! Π¦Π΅Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° — ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ React ΠΈ Π΅Π³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ.
ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²Π°ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΈΠ³ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ΄Π½Π° ΠΈΠ· ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, — ΡΡΠΎ ΠΏΡΠΎΠ½ΡΠΌΠ΅ΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΏΡΠ°Π²Π° ΠΎΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ. ΠΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ Π΄Π°Π΅Ρ Π²Π°ΠΌ ΠΈΡΡΠΎΡΠΈΡ Π²ΡΠ΅Ρ Ρ ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ Π² ΠΈΠ³ΡΠ΅, ΠΈ ΠΎΠ½ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ Ρ ΠΎΠ΄Ρ ΠΈΠ³ΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΊΡΡΡΡ ΠΈΠ³ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ Π½Π΅ΠΉ. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ Π½Π°ΡΠ½Π΅ΠΌ Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π°. ΠΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ — Π½Π°ΡΡΡΠΎΠΈΡΡ Π²Π°Ρ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π½Π°ΡΠ°ΡΡ ΡΠ±ΠΎΡΠΊΡ ΠΈΠ³ΡΡ.
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
ΠΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ Π²Ρ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ HTML ΠΈ JavaScript, Π½ΠΎ Ρ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡΠ΅ Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ Π²Ρ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΏΠΎΠ½ΡΡΠΈΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈ, Π² ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ, ΠΊΠ»Π°ΡΡΡ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΡΡΠΈΡΡ JavaScript, ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ES6 — ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ JavaScript. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΡΠ΅Π»ΠΎΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ»Π°ΡΡΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ let
ΠΈ const
. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Babel REPL, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ES6 ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π΄Π»Ρ ΡΡΠ΅Π±Π½ΠΈΠΊΠ°
ΠΡΡΡ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ: Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅.
ΠΠ°ΡΠΈΠ°Π½Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ 1. ΠΠ°ΠΏΠΈΡΡ ΠΊΠΎΠ΄Π° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅
ΠΡΠΎ ΡΠ°ΠΌΡΠΉ Π±ΡΡΡΡΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ!
Π‘Π½Π°ΡΠ°Π»Π° ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΡΠΎΡ Π‘ΡΠ°ΡΡΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ Π² Π½ΠΎΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. ΠΠ° Π½ΠΎΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΏΡΡΡΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π΄Π»Ρ ΠΈΠ³ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ ΠΈ ΠΊΠΎΠ΄ React. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ React.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ Π²ΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΡΠ°Π·Π΄Π΅Π» Β«ΠΠ±Π·ΠΎΡΒ», ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±Π·ΠΎΡ React.
ΠΠ°ΡΠΈΠ°Π½Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ 2: ΠΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΡΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ°!
ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ: ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°
ΠΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΡΠ΅Π±ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ, Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΏΠΎ Π²Π°ΡΠ΅ΠΌΡ Π²ΡΠ±ΠΎΡΡ.ΠΠΎΡ ΡΠ°Π³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ:
- Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ββΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Node.js.
- Π‘Π»Π΅Π΄ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Create React App, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
npx ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ create-ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
- Π£Π΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠ°ΠΏΠΊΠ΅
src /
Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅:
ΠΠ΅ ΡΠ΄Π°Π»ΡΠΉΡΠ΅ Π²ΡΡ ΠΏΠ°ΠΏΠΊΡ
src
, ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π²Π½ΡΡΡΠΈ Π½Π΅Π΅. ΠΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π³Π΅ ΠΌΡ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
cd my-app
cd src
rm -f *
del *
cd .
.
- ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ
index.css
Π² ΠΏΠ°ΠΏΠΊΡsrc /
Ρ ΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ CSS. - ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ
index.js
Π² ΠΏΠ°ΠΏΠΊΡsrc /
Ρ ΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ JS. - ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠΈ ΡΡΠΈ ΡΡΡΠΎΠΊΠΈ Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠ°ΠΉΠ»Π°
index.js
Π² ΠΏΠ°ΠΏΠΊΠ΅src /
:
ΠΈΠΌΠΏΠΎΡΡ React ΠΈΠ· react;
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ReactDOM ΠΈΠ· react-dom;
ΠΈΠΌΠΏΠΎΡΡ './index.css ';
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ npm start
Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΎΡΠΊΡΠΎΠ΅ΡΠ΅ http: // localhost: 3000
Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΡΡΡΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ.
ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°.
ΠΠΎΠΌΠΎΠ³ΠΈΡΠ΅, Ρ Π·Π°ΡΡΡΡΠ»!
ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΡΡΡΡΠ»ΠΈ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Reactiflux Chat — ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π±ΡΡΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠΌΠΎΡΡ. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΎΡΠ²Π΅ΡΠ° ΠΈΠ»ΠΈ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠΎΠΎΠ±ΡΠΈΡΠ΅ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅, ΠΈ ΠΌΡ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅ΠΌ.
ΠΠ±Π·ΠΎΡ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π½Π°ΡΡΡΠΎΠΈΠ»ΠΈ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ React!
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React?
React — ΡΡΠΎ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½Π°Ρ, ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ ΠΈ Π³ΠΈΠ±ΠΊΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JavaScript Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈΠ· Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π°, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ Β«ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈΒ».
React ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠΈΠΏΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π½ΠΎ ΠΌΡ Π½Π°ΡΠ½Π΅ΠΌ Ρ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠ² React.Component
:
class ShoppingList ΡΠ°ΡΡΠΈΡΡΠ΅Ρ React.ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ {
ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ() {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠΊΡΠΏΠΎΠΊ Π΄Π»Ρ {this.props.name}
- Instagram
- WhatsApp
- Oculus
);
}
}
Π‘ΠΊΠΎΡΠΎ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ Π·Π°Π±Π°Π²Π½ΡΠΌ ΡΠ΅Π³Π°ΠΌ Π² ΡΡΠΈΠ»Π΅ XML. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ React, ΡΡΠΎ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ Π²ΠΈΠ΄Π΅ΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΠΎΠ³Π΄Π° Π½Π°ΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ, React Π±ΡΠ΄Π΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π½Π°ΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.
ΠΠ΄Π΅ΡΡ ShoppingList — ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° React ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠΈΠΏΠ° React. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ props
(ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ Β«ΡΠ²ΠΎΠΉΡΡΠ²Π°Β»), ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° render
.
ΠΠ΅ΡΠΎΠ΄ render
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅. React Π±Π΅ΡΠ΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, render
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ React , ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ.ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² React ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«JSXΒ», ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠΈΡ
ΡΡΡΡΠΊΡΡΡ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
React.createElement ('div')
. ΠΡΠΈΠΌΠ΅Ρ Π²ΡΡΠ΅ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½: return React.createElement ('div', {className: 'shopping-list'},
React.createElement ('h2',),
React.createElement ('ul',)
);
Π‘ΠΌ. ΠΠΎΠ»Π½ΡΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΡ Π²Π΅ΡΡΠΈΡ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, createElement ()
Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ Π² ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ΅ ΠΏΠΎ API, Π½ΠΎ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅.ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ JSX.
JSX Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ JavaScript. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π»ΡΠ±ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ JavaScript Π² ΡΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π²Π½ΡΡΡΠΈ JSX. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ React — ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ JavaScript, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ShoppingList
Π²ΡΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ DOM, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ
. ΠΠΎ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ React.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΏΠΈΡΠΊΡ ΠΏΠΎΠΊΡΠΏΠΎΠΊ, Π½Π°ΠΏΠΈΡΠ°Π²
. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ React ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ; ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈΠ· ΠΏΡΠΎΡΡΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠ°ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠ΅Π±Π½ΠΈΠΊΠΎΠΌ Π² ΡΠ²ΠΎΠ΅ΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π² Π½ΠΎΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅: Π‘ΡΠ°ΡΡΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ . ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΡΡΠ΅Π±Π½ΠΈΠΊΠΎΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, Π²ΠΌΠ΅ΡΡΠΎ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ src / index.js
Π² ΠΏΠ°ΠΏΠΊΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° (Π²Ρ ΡΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΈΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ).
ΠΡΠΎΡ Π‘ΡΠ°ΡΡΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ — ΠΎΡΠ½ΠΎΠ²Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ. ΠΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΡΡΠΈΠ»ΠΈ CSS, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ React ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ³ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ.
ΠΠ·ΡΡΠΈΠ² ΠΊΠΎΠ΄, Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° React:
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Square ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½
, Π° Board ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ 9 ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ². ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Game ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π΄ΠΎΡΠΊΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ-Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅.Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΡ
Π§ΡΠΎΠ±Ρ Π½Π°ΠΌΠΎΡΠΈΡΡ Π½ΠΎΠ³ΠΈ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Board Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Square.
ΠΡ Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π½Π°Π±ΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π²ΡΡΡΠ½ΡΡ, ΠΏΠΎΠΊΠ° Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ, Π° Π½Π΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ / Π²ΡΡΠ°Π²Π»ΡΡΡ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠ°Π·Π²ΠΈΡΡ ΠΌΡΡΠ΅ΡΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΈ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ.
Π ΠΌΠ΅ΡΠΎΠ΄Π΅ Board renderSquare
ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ value
Π² Square:
ΠΠ»Π°ΡΡ Board ΡΠ°ΡΡΠΈΡΡΠ΅Ρ React.ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ {
renderSquare (i) {
return <ΠΠ²Π°Π΄ΡΠ°ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = {i} />; }
}
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Square , ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π·Π°ΠΌΠ΅Π½ΠΈΠ²
{/ * TODO * /}
Π½Π° {this.props.value}
:
class Square extends React.Component {
ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ() {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
);
}
}
Π Π°Π½ΡΡΠ΅:
ΠΠΎΡΠ»Π΅: Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΈΡΠ»ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ΅ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄Π°.
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ! ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Β«ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ ΠΎΠΏΠΎΡΡΒ» ΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Board Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Square. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΠ° - ΡΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ React ΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ ΠΊ Π΄Π΅ΡΡΠΌ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
ΠΠ°Π²Π°ΠΉΡΠ΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±ΡΠΊΠ²ΠΎΠΉ Β«XΒ», ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠ΅Π»ΠΊΠ½Π΅ΠΌ ΠΏΠΎ Π½Π΅ΠΌΡ.
Π‘Π½Π°ΡΠ°Π»Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ΅Π³ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ render ()
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Square, Π½Π° ΡΡΠΎΡ:
ΠΊΠ»Π°ΡΡ Square ΡΠ°ΡΡΠΈΡΡΠ΅Ρ React.ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ {
ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ() {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
);
}
}
ΠΡΠ»ΠΈ Π²Ρ ΡΠ΅ΠΉΡΠ°Ρ Π½Π°ΠΆΠΌΠ΅ΡΠ΅ Π½Π° ΠΊΠ²Π°Π΄ΡΠ°Ρ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΡΠ²ΠΎΠ΅ΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
Π§ΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π²Π²ΠΎΠ΄ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ
ΠΈ
, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΡΠ΅Π»ΠΎΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎΠ±ΡΡΠΈΠΉ Π·Π΄Π΅ΡΡ ΠΈ Π΄Π°Π»Π΅Π΅:ΠΊΠ»Π°ΡΡ Square ΡΠ°ΡΡΠΈΡΡΠ΅Ρ React.ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ { ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ() { Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ( ); } }
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Ρ
onClick = {() => alert ('click')}
ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠ°ΠΊ ΠΎΠΏΠΎΡΡonClick
. React Π²ΡΠ·ΠΎΠ²Π΅Ρ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π»ΡΠΊΠ°. ΠΠ°Π±ΡΡΡ() =>
ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡonClick = {alert ('click')}
ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π³Π° ΠΌΡ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Square Β«Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠ»Β», ΡΡΠΎ ΠΏΠΎ Π½Π΅ΠΌΡ ΡΠ΅Π»ΠΊΠ½ΡΠ»ΠΈ, ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ» Π΅Π³ΠΎ Π·Π½Π°ΠΊΠΎΠΌ Β«XΒ». Π§ΡΠΎΠ±Ρ Β«Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡΒ» Π²Π΅ΡΠΈ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ .
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ React ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π·Π°Π΄Π°Π² this.state
Π² ΠΈΡ
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°Ρ
. this.state
ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΠ½ΡΠΉ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° React, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΡ
ΡΠ°Π½ΠΈΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Square Π² this.state
ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π΅Π³ΠΎ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° Square.
Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΊΠ»Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ:
class Square extends React.Component {
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ) {ΡΡΠΏΠ΅Ρ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ); this.state = {Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: null,}; }
ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ() {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
);
}
}
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
Π ΠΊΠ»Π°ΡΡΠ°Ρ JavaScript Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠ·ΡΠ²Π°ΡΡ
super
ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°.ΠΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² React, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ Π²ΡΠ·ΠΎΠ²Π°
super (props)
.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ Square render
, ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ:
- ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅
this.props.value
Π½Π°this.state.value
Π²Π½ΡΡΡΠΈ ΡΠ΅Π³Π° - ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΠΉ
onClick = {...}
Π½Π°onClick = {() => this.setState ({value: 'X'})}
. - ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°
className
ΠΈonClick
Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ Π»ΡΡΡΠ΅ΠΉ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ.
ΠΠΎΡΠ»Π΅ ΡΡΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ΅Π³
, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ render
Square, Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
class Square extends React.Component {
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ) {
ΡΡΠΏΠ΅Ρ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ);
this.state = {
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: null,
};
}
ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ() {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
ΠΊΠ½ΠΎΠΏΠΊΠ° <
className = "ΠΊΠ²Π°Π΄ΡΠ°Ρ" onClick = {() => ΡΡΠΎ.setState ({Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: 'X'})}>
{this.state.value}
);
}
}
ΠΡΠ·ΡΠ²Π°Ρ this.setState
ΠΈΠ· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° onClick
Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Square , ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ React ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΡΠΎΡ Square Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΡΡ Π΅Π³ΠΎ
. ΠΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ Square this.state.value
Π±ΡΠ΄Π΅Ρ 'X'
, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π° ΠΈΠ³ΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ X
. ΠΡΠ»ΠΈ Π²Ρ Π½Π°ΠΆΠΌΠ΅ΡΠ΅ Π½Π° Π»ΡΠ±ΠΎΠΉ ΠΊΠ²Π°Π΄ΡΠ°Ρ, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ X
.
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ setState
Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅, React Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π²Π½ΡΡΡΠΈ Π½Π΅Π³ΠΎ.
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ React Devtools Π΄Π»Ρ Chrome ΠΈ Firefox ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² React Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π²Π°ΡΠ΅Π³ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ°.
React DevTools ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² React.
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ React DevTools Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π»ΠΊΠ½ΡΡΡ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ Π»ΡΠ±ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅, Π½Π°ΠΆΠ°ΡΡ Β«InspectΒ», ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΈ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ React (Β«βοΈ ComponentsΒ» ΠΈ Β«βοΈ ProfilerΒ») ΠΏΠΎΡΠ²ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ Π΄Π»Ρ ΠΏΡΠ°Π²ΠΎ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Β«βοΈ ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡΒ» Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄Π΅ΡΠ΅Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π³ΠΎΠ², ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ CodePen:
- ΠΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΈΠ»ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ (Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠΏΠ°ΠΌΠ°).
- Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠΈΠ»ΠΊΠ°Β».
- Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ Β«ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²ΠΈΠ΄Β», Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«Π Π΅ΠΆΠΈΠΌ ΠΎΡΠ»Π°Π΄ΠΊΠΈΒ».
- Π Π½ΠΎΠ²ΠΎΠΉ ΠΎΡΠΊΡΡΠ²ΡΠ΅ΠΉΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΠ° React.
ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ³ΡΡ
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΡΠΎΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π½ΡΡ ΠΈΠ³ΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π½Π° Π΄ΠΎΡΠΊΠ΅ Β«XΒ» ΠΈ Β«OΒ», ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ.
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΠΌΠ° Π²Π²Π΅ΡΡ
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Square ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ³ΡΡ.Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ, ΠΌΡ ΡΠΎΡ ΡΠ°Π½ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· 9 ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ ΠΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΠ²Π°Π΄ΡΠ°ΡΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΠ²Π°Π΄ΡΠ°ΡΠ°. Π₯ΠΎΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π² React, ΠΌΡ Π½Π΅ ΠΎΠ΄ΠΎΠ±ΡΡΠ΅ΠΌ Π΅Π³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠΎΠ΄ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΡΠ΄Π½ΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ, ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ ΠΈ ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠ΄Π΄Π°Π΅ΡΡΡ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Ρ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ³ΡΡ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ Board, Π° Π½Π΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Square. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Board ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Square, ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡ ΡΡΠΎ Π΄Π΅Π»Π°Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π»ΠΈ ΡΠΈΡΠ»ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ Square.
ΠΠ»Ρ ΡΠ±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈΠ»ΠΈ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π΄Π²Π° Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΎΠ±ΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅. Π ΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΌΠΊΠ°ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²; ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ ΠΈ Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ.
ΠΠ΅ΡΠ΅Π½ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² React - Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π² Board ΠΈ Π·Π°Π΄Π°ΠΉΡΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Board, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π»ΠΎ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· 9 Π½ΡΠ»Π΅ΠΉ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ 9 ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°ΠΌ:
class Board ΡΠ°ΡΡΠΈΡΡΠ΅Ρ React.Component {
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ) {ΡΡΠΏΠ΅Ρ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ); this.state = {ΠΊΠ²Π°Π΄ΡΠ°ΡΡ: ΠΌΠ°ΡΡΠΈΠ² (9) .fill (null),}; }
renderSquare (i) {
return <ΠΠ²Π°Π΄ΡΠ°ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = {i} />;
}
ΠΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ Π΄ΠΎΡΠΊΡ ΠΏΠΎΠ·ΠΆΠ΅, ΠΌΠ°ΡΡΠΈΠ² this.state.squares
Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
[
'O', Π½ΠΎΠ»Ρ, 'X',
"X", "X", "O",
'O', Π½ΠΎΠ»Ρ, Π½ΠΎΠ»Ρ,
]
ΠΠ΅ΡΠΎΠ΄ ΠΏΠ»Π°ΡΡ renderSquare
Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
renderSquare (i) {
return <ΠΠ²Π°Π΄ΡΠ°ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = {i} />;
}
Π Π½Π°ΡΠ°Π»Π΅ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
prop Π²Π½ΠΈΠ· ΠΎΡ Board, ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠΈΡΠ»Π° ΠΎΡ 0 Π΄ΠΎ 8 Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ΅.ΠΠ° Π΄ΡΡΠ³ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π³Π΅ ΠΌΡ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΡΠΈΡΠ»Π° Π·Π½Π°ΠΊΠΎΠΌ Β«XΒ», ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Square. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Square Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ prop
, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ΅ Π΅ΠΌΡ Π‘ΠΎΠ²Π΅ΡΠΎΠΌ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΡΠ½ΠΎΠ²Π° Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΡΠΎΠΏΠ΅Π»Π»Π΅ΡΠΎΠ². ΠΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π΄ΠΎΡΠΊΡ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΡ Π΅Π³ΠΎ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ( 'X'
, 'O'
ΠΈΠ»ΠΈ null
). ΠΡ ΡΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² squares
Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ Board, ΠΈ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ Board renderSquare
, ΡΡΠΎΠ±Ρ ΡΠΈΡΠ°ΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ:
renderSquare (i) {
return <ΠΠ²Π°Π΄ΡΠ°ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = {this.state.squares [i]} />; }
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ²Π°Π΄ΡΠ°Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
prop, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ Π»ΠΈΠ±ΠΎ 'X'
, 'O'
, Π»ΠΈΠ±ΠΎ null
Π΄Π»Ρ ΠΏΡΡΡΡΡ
ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ².
ΠΠ°Π»Π΅Π΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΡΠ΅Π»ΡΠΊΠ΅ ΠΏΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΡ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Board ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΏΠΎΡΠΎΠ± Π΄Π»Ρ Square ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Board. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ°ΡΡΠ½ΡΠΌ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π΅Π³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Board Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· Square.
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΄ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡ Board ΡΡΠ½ΠΊΡΠΈΠΈ Square, ΠΈ Square Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ²Π°Π΄ΡΠ°Ρ. ΠΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ renderSquare
Π² Board Π½Π°:
.
renderSquare (i) {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
<ΠΠ²Π°Π΄ΡΠ°Ρ
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = {this.state.squares [i]}
onClick = {() => this.handleClick (i)} />
);
}
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΡΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ, ΡΡΠΎΠ±Ρ JavaScript Π½Π΅ Π²ΡΡΠ°Π²Π»ΡΠ» ΡΠΎΡΠΊΡ Ρ Π·Π°ΠΏΡΡΠΎΠΉ ΠΏΠΎΡΠ»Π΅
, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Ρ
ΠΈ Π½Π°ΡΡΡΠ°Ρ Π½Π°Ρ ΠΊΠΎΠ΄.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π΄Π²Π° ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈΠ· Board Π² Square: Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΈ onClick
. Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ onClick
- ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Square ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ. ΠΡ Π²Π½Π΅ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Square:
- ΠΠ°ΠΌΠ΅Π½ΠΈΡΡ
this.state.value
Π½Π°this.props.value
Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Square - ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅
this.setState ()
Π½Π°this.props.onClick ()
Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Square - Π£Π΄Π°Π»ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
ΠΠΎΡΠ»Π΅ ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Square Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΊΠ»Π°ΡΡ Square ΡΠ°ΡΡΠΈΡΡΠ΅Ρ React.ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ {render () {return (
ΠΊΠ½ΠΎΠΏΠΊΠ° <
className = "ΠΊΠ²Π°Π΄ΡΠ°Ρ"
onClick = {() => this.props.onClick ()}>
{this.props.value}
);
}
}
ΠΡΠΈ ΡΠ΅Π»ΡΠΊΠ΅ ΠΏΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ onClick
, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠ°Ρ Board. ΠΠΎΡ ΠΎΠ±Π·ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ:
- ΠΠΏΠΎΡΠ°
onClick
Π²ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ DOM - ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ React Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ
onClick
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅render ()
Square. - ΠΡΠΎΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ
this.props.onClick ()
. Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ SquareonClick
Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ ΠΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ. - ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Board ΠΏΠ΅ΡΠ΅Π΄Π°Π»
onClick = {() => this.handleClick (i)}
Π² Square, Square Π²ΡΠ·ΡΠ²Π°Π΅Ρthis.handleClick (i)
ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ. - ΠΡ Π΅ΡΠ΅ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄
handleClick ()
, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°Ρ ΠΊΠΎΠ΄ Π΄Π°Π΅Ρ ΡΠ±ΠΎΠΉ.ΠΡΠ»ΠΈ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ΅Π»ΠΊΠ½ΡΡΡ ΠΊΠ²Π°Π΄ΡΠ°Ρ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΊΡΠ°ΡΠ½ΡΠΉ ΡΠΊΡΠ°Π½ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Π²ΡΠΎΠ΄Π΅ Β«this.handleClick Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉΒ».
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΡΡΠΈΠ±ΡΡ
onClick
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° DOMΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠΎΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ React, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ. ΠΠ»Ρ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Square, Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π°Ρ. ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π΄Π°ΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΈΠΌΡ Π΄Π»Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° Square
onClick
ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° BoardhandleClick
, ΠΈ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π» Π±Ρ ΡΠ°ΠΊ ΠΆΠ΅.Π React ΠΏΡΠΈΠ½ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΠ² ΠΈΠΌΠ΅Π½Π°Ρ [Event],
Π΄Π»Ρ ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΡΡΠΈΡ, ΠΈΠ΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ [Event]
Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΡ.
ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ ΡΠ΅Π»ΠΊΠ½ΡΡΡ ΠΊΠ²Π°Π΄ΡΠ°Ρ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ Π΅ΡΠ΅ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ handleClick
. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ handleClick
ΠΊ ΠΊΠ»Π°ΡΡΡ Board:
.
class Board ΡΠ°ΡΡΠΈΡΡΠ΅Ρ React.Component {
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ) {
ΡΡΠΏΠ΅Ρ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ);
this.state = {
ΠΊΠ²Π°Π΄ΡΠ°ΡΡ: ΠΠ°ΡΡΠΈΠ² (9).Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ (Π½ΠΎΠ»Ρ),
};
}
handleClick (Ρ) {ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΡ = this.state.squares.slice (); ΠΊΠ²Π°Π΄ΡΠ°ΡΡ [Ρ] = 'X'; this.setState ({ΠΊΠ²Π°Π΄ΡΠ°ΡΡ: ΠΊΠ²Π°Π΄ΡΠ°ΡΡ}); }
renderSquare (i) {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
<ΠΠ²Π°Π΄ΡΠ°Ρ
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = {this.state.squares [i]}
onClick = {() => this.handleClick (i)}
/>
);
}
ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ() {
const status = 'Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΈΠ³ΡΠΎΠΊ: X';
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
{status}
{ΡΡΠΎ.renderSquare (0)}
{this.renderSquare (1)}
{this.renderSquare (2)}
{this.renderSquare (3)}
{this.renderSquare (4)}
{this.renderSquare (5)}
{this.renderSquare (6)}
{this.renderSquare (7)}
{this.renderSquare (8)}
);
}
}
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ
ΠΠΎΡΠ»Π΅ ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΡ ΡΠ½ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΆΠΈΠΌΠ°ΡΡ Π½Π° ΠΊΠ²Π°Π΄ΡΠ°ΡΡ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΡ , ΠΊΠ°ΠΊ ΠΈ ΡΠ°Π½ΡΡΠ΅.ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ Board, Π° Π½Π΅ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ Square. ΠΠΎΠ³Π΄Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Board ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Square Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ. Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²ΡΠ΅Ρ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ² Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ Board ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Square Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Square ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Board ΠΈ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Board ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° Π½ΠΈΡ . Π ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ React ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Square ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ .ΠΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ ΠΈΡ .
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π² handleClick
ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ .slice ()
, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΏΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° squares
Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡ ΠΎΠ±ΡΡΡΠ½ΠΈΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠΎΠΏΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ²
Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅.
ΠΠΎΡΠ΅ΠΌΡ Π²Π°ΠΆΠ½Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡΡ
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΠ΄Π° ΠΌΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ .slice ()
Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΏΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° squares
Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°.Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡΡ ΠΈ ΡΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΈΠ·ΡΡΠ°ΡΡ.
ΠΠ±ΡΡΠ½ΠΎ Π΅ΡΡΡ Π΄Π²Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ - Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π΅ΡΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Ρ ΠΌΡΡΠ°ΡΠΈΠ΅ΠΉ
var player = {ΠΎΡΠ΅Π½ΠΊΠ°: 1, ΠΈΠΌΡ: 'ΠΠΆΠ΅ΡΡ'};
player.score = 2;
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π±Π΅Π· ΠΌΡΡΠ°ΡΠΈΠΈ
var player = {ΠΎΡΠ΅Π½ΠΊΠ°: 1, ΠΈΠΌΡ: 'ΠΠΆΠ΅ΡΡ'};
var newPlayer = ΠΠ±ΡΠ΅ΠΊΡ.Π½Π°Π·Π½Π°ΡΠΈΡΡ ({}, ΠΈΠ³ΡΠΎΠΊ, {ΠΎΡΠ΅Π½ΠΊΠ°: 2});
ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΎΡ ΠΆΠ΅, Π½ΠΎ Π±Π΅Π· Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ ) ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ², ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π½ΠΈΠΆΠ΅.
Π‘Π»ΠΎΠΆΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΏΡΠΎΡΡΡΠΌΠΈ
ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠΎΠ·ΠΆΠ΅ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ Β«ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈΒ», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ³ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ ΠΈ Β«Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡΒ» ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ Ρ ΠΎΠ΄Π°ΠΌ. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΈΠ³ΡΠ°ΠΌ - Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΌΠ΅Π½ΡΡΡ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.ΠΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΏΡΡΠΌΠΎΠΉ ΠΌΡΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈΠ³ΡΡ Π½Π΅ΡΡΠΎΠ½ΡΡΡΠΌΠΈ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ ΠΏΠΎΠ·ΠΆΠ΅.
ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΡΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π»ΡΡ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌΠΈ ΠΊΠΎΠΏΠΈΡΠΌΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ΅Π±Ρ ΠΈ Π²ΡΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΉΡΠΈ.
ΠΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅. ΠΡΠ»ΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ°, ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ, Π·Π½Π°ΡΠΈΡ, ΠΎΠ±ΡΠ΅ΠΊΡ Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Π² React
ΠΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΈΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π² React. ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π±ΡΠ»ΠΈ Π»ΠΈ Π²Π½Π΅ΡΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ shouldComponentUpdate ()
ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΡΠΈΡΡΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² , ΠΏΡΠΎΡΠΈΡΠ°Π² ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Square Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ .
Π React ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ - ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ render
ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΠΌΠ΅ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ React.Component
, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ props
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΌΠ΅Π½Π΅Π΅ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΡ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½Ρ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠ»Π°ΡΡ Square ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ:
ΠΊΠ²Π°Π΄ΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ) {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
);
}
ΠΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ this.props
Π½Π° props
ΠΎΠ±Π° ΡΠ°Π·Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ.
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Square ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ
onClick = {() => this.props.onClick ()}
Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉonClick = {props.onClick}
(ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΊΡΡΠ³Π»ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ Π½Π° Ρ ΠΎΠ±Π΅ΠΈΡ ΡΡΠΎΡΠΎΠ½ ).
ΠΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΉ Π΄Π΅ΡΠ΅ΠΊΡ Π² Π½Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΠ΅ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ: Π±ΡΠΊΠ²Ρ Β«ΠΒ» Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠΌΠ΅ΡΠ΅Π½Ρ Π½Π° Π΄ΠΎΡΠΊΠ΅.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ Ρ ΠΎΠ΄ ΠΊΠ°ΠΊ Β«XΒ». ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² Π½Π°ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ Board:
class Board ΡΠ°ΡΡΠΈΡΡΠ΅Ρ React.Component {
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ) {
ΡΡΠΏΠ΅Ρ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ);
this.state = {
ΠΊΠ²Π°Π΄ΡΠ°ΡΡ: Array (9) .fill (null),
xIsNext: true,};
}
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³ΡΠΎΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ xIsNext
(Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ³ΡΠΎΠΊ ΠΏΠΎΠΉΠ΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ, ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ³ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΎ.ΠΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ handleClick
Π½Π° ΠΏΠ»Π°ΡΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ xIsNext
:
.
handleClick (i) {
const squares = this.state.squares.slice ();
ΠΊΠ²Π°Π΄ΡΠ°ΡΡ [i] = this.state.xIsNext? 'X': 'Π'; this.setState ({
ΠΊΠ²Π°Π΄ΡΠ°ΡΡ: ΠΊΠ²Π°Π΄ΡΠ°ΡΡ,
xIsNext:! this.state.xIsNext,});
}
Π‘ ΡΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Β«XΒ» ΠΈ Β«OΒ» ΠΌΠΎΠ³ΡΡ ΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ. ΠΠΎΠΏΡΠΎΠ±ΡΠΉ ΡΡΠΎ!
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΠ΅ΠΊΡΡ Β«ΡΡΠ°ΡΡΡΠ°Β» Π² ΠΏΠ°Π½Π΅Π»ΠΈ render
, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π», Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠ³ΡΠΎΠΊΠ° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Ρ
ΠΎΠ΄:
render () {
const status = 'Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΈΠ³ΡΠΎΠΊ:' + (this.state.xIsNext? 'X': 'O');
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
ΠΠΎΡΠ»Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠ»Π°ΡΡ:
class Board ΡΠ°ΡΡΠΈΡΡΠ΅Ρ React.Component {
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ) {
ΡΡΠΏΠ΅Ρ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ);
this.state = {
ΠΊΠ²Π°Π΄ΡΠ°ΡΡ: Array (9) .fill (null),
xIsNext: true,};
}
handleClick (i) {
const squares = this.state.squares.slice (); ΠΊΠ²Π°Π΄ΡΠ°ΡΡ [i] = this.state.xIsNext? 'X': 'Π'; this.setState ({ΠΊΠ²Π°Π΄ΡΠ°ΡΡ: ΠΊΠ²Π°Π΄ΡΠ°ΡΡ, xIsNext:! this.state.xIsNext,}); }
renderSquare (i) {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
<ΠΠ²Π°Π΄ΡΠ°Ρ
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = {this.state.squares [i]}
onClick = {() => this.handleClick (i)}
/>
);
}
ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ() {
const status = 'Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΈΠ³ΡΠΎΠΊ:' + (this.state.xIsNext? 'X': 'O');
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
{status}
{this.renderSquare (0)}
{this.renderSquare (1)}
{this.renderSquare (2)}
{ΡΡΠΎ.renderSquare (3)}
{this.renderSquare (4)}
{this.renderSquare (5)}
{this.renderSquare (6)}
{this.renderSquare (7)}
{this.renderSquare (8)}
);
}
}
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ³ΡΠΎΠΊ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Ρ ΠΎΠ΄, ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³ΡΠ° Π²ΡΠΈΠ³ΡΠ°Π½Π° ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ Ρ ΠΎΠ΄ΠΎΠ².Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ Π΅Π΅ Π² ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π°:
ΡΡΠ½ΠΊΡΠΈΡ calculateWinner (ΠΊΠ²Π°Π΄ΡΠ°ΡΡ) {
const lines = [
[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[0, 3, 6],
[1, 4, 7],
[2, 5, 8],
[0, 4, 8],
[2, 4, 6],
];
for (let i = 0; i
Π£ΡΠΈΡΡΠ²Π°Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· 9 ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ², ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 'X'
, 'O'
ΠΈΠ»ΠΈ null
Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ.
ΠΡ Π²ΡΠ·ΠΎΠ²Π΅ΠΌ calculateWinner (squares)
Π² ΡΡΠ½ΠΊΡΠΈΠΈ Board render
, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π²ΡΠΈΠ³ΡΠ°Π» Π»ΠΈ ΠΈΠ³ΡΠΎΠΊ. ΠΡΠ»ΠΈ ΠΈΠ³ΡΠΎΠΊ Π²ΡΠΈΠ³ΡΠ°Π», ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅ΠΊΡΡ, ΠΊΠ°ΠΊ Β«ΠΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ: XΒ» ΠΈΠ»ΠΈ Β«ΠΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ: OΒ». ΠΡ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ status
Π² ΡΡΠ½ΠΊΡΠΈΠΈ Board render
Π½Π° ΡΡΠΎΡ ΠΊΠΎΠ΄:
render () {
ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ = calculateWinner (this.state.squares); ΠΏΡΡΡΡ ΡΡΠ°ΡΡΡ; if (ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ) {status = 'ΠΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ:' + ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ; } else {status = 'Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΈΠ³ΡΠΎΠΊ:' + (this.state.xIsNext? 'X': 'O'); }
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ Board handleClick
, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π»Π°ΡΡ ΡΠ°Π½ΡΡΠ΅, ΠΈΠ³Π½ΠΎΡΠΈΡΡΡ ΡΠ΅Π»ΡΠΎΠΊ, Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ Π²ΡΠΈΠ³ΡΠ°Π» ΠΈΠ³ΡΡ ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΠΊΠ²Π°Π΄ΡΠ°Ρ ΡΠΆΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½:
handleClick (i) {
const squares = this.state.squares.slice ();
Π΅ΡΠ»ΠΈ (Π²ΡΡΠΈΡΠ»ΠΈΡΡΠΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ (ΠΊΠ²Π°Π΄ΡΠ°ΡΡ) || ΠΊΠ²Π°Π΄ΡΠ°ΡΡ [Ρ]) {Π²ΠΎΠ·Π²ΡΠ°Ρ; } ΠΊΠ²Π°Π΄ΡΠ°ΡΡ [i] = this.state.xIsNext? 'X': 'Π';
this.setState ({
ΠΊΠ²Π°Π΄ΡΠ°ΡΡ: ΠΊΠ²Π°Π΄ΡΠ°ΡΡ,
xIsNext:! this.state.xIsNext,
});
}
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ! Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ°Ρ ΠΈΠ³ΡΠ° Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ. Π Π²Ρ ΡΠΎΠΆΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ·Π½Π°Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ React. ΠΡΠ°ΠΊ, , Π²Ρ , Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π·Π΄Π΅ΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Β«Π²Π΅ΡΠ½Π΅ΠΌΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈΒ» ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ Ρ ΠΎΠ΄Π°ΠΌ Π² ΠΈΠ³ΡΠ΅.
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ
ΠΡΠ»ΠΈ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ² ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ² ΠΈ
, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ slice ()
Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° squares
ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ
ΠΎΠ΄Π° ΠΈ ΡΡΠΈΡΠ°Π»ΠΈ Π΅Π΅ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ Ρ
ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ²
ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΆΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π΄ΡΠΈΠΌΠΈ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ°ΠΌΠΈ.
ΠΡ Π±ΡΠ΄Π΅ΠΌ Ρ
ΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΡΠ»ΡΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ²
ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ history
. ΠΡΡΠΎΡΠΈΡ ΠΠ°ΡΡΠΈΠ²
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π΄ΠΎΡΠΊΠΈ, ΠΎΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Ρ
ΠΎΠ΄Π°, ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΡΡ ββΡΠΎΡΠΌΡ:
ΠΈΡΡΠΎΡΠΈΡ = [
{
ΠΊΠ²Π°Π΄ΡΠ°ΡΡ: [
Π½ΠΎΠ»Ρ, Π½ΠΎΠ»Ρ, Π½ΠΎΠ»Ρ,
Π½ΠΎΠ»Ρ, Π½ΠΎΠ»Ρ, Π½ΠΎΠ»Ρ,
Π½ΠΎΠ»Ρ, Π½ΠΎΠ»Ρ, Π½ΠΎΠ»Ρ,
]
},
{
ΠΊΠ²Π°Π΄ΡΠ°ΡΡ: [
Π½ΠΎΠ»Ρ, Π½ΠΎΠ»Ρ, Π½ΠΎΠ»Ρ,
Π½ΠΎΠ»Ρ, 'X', Π½ΠΎΠ»Ρ,
Π½ΠΎΠ»Ρ, Π½ΠΎΠ»Ρ, Π½ΠΎΠ»Ρ,
]
},
{
ΠΊΠ²Π°Π΄ΡΠ°ΡΡ: [
Π½ΠΎΠ»Ρ, Π½ΠΎΠ»Ρ, Π½ΠΎΠ»Ρ,
Π½ΠΎΠ»Ρ, 'X', Π½ΠΎΠ»Ρ,
Π½ΠΎΠ»Ρ, Π½ΠΎΠ»Ρ, 'O',
]
},
]
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π»Π°Π΄Π΅ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΈΡΡΠΎΡΠΈΠΈ
.
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΠΌΠ°, ΡΠ½ΠΎΠ²Π°
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Game Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π» ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΡΠ»ΡΡ
Ρ
ΠΎΠ΄ΠΎΠ². ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΠΌΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΡΡΠΎΡΠΈΠΈ
, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ
Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Game Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ.
Π Π°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ history
Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ Game ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ squares
ΠΈΠ· Π΅Π³ΠΎ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Board. Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡ Β«ΠΏΠΎΠ΄Π½ΡΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅Β» ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Square Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Board, ΠΌΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΠΌ Π΅Π³ΠΎ ΠΈΠ· Board Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Game Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ.ΠΡΠΎ Π΄Π°Π΅Ρ ΠΈΠ³ΡΠΎΠ²ΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ Π΄Π°Π½Π½ΡΠΌΠΈ Board ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΅ΠΌΡ ΠΏΡΠΎΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Board ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
Ρ
ΠΎΠ΄ΠΎΠ² ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ
.
Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Game Π² Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅:
class Game ΡΠ°ΡΡΠΈΡΡΠ΅Ρ React.Component {
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ) {ΡΡΠΏΠ΅Ρ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ); this.state = {ΠΈΡΡΠΎΡΠΈΡ: [{ΠΊΠ²Π°Π΄ΡΠ°ΡΡ: ΠΌΠ°ΡΡΠΈΠ² (9) .fill (null),}], xIsNext: true,}; }
ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ() {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
<ΠΠΎΡΠΊΠ° />
{}
{}
);
}
}
ΠΠ°ΡΠ΅ΠΌ Ρ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Board, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ²
ΠΈ props onClick
ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Game.ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠΊΠ° Π² Board Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ
Squares, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Square Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ onClick
, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ Square Π±ΡΠ» Π½Π°ΠΆΠ°Ρ. ΠΠΎΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ°Π³ΠΈ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Board:
- Π£Π΄Π°Π»ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
- ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅
this.state.squares [i]
Π½Π°this.props.squares [i]
Π² ΠΏΠ°Π½Π΅Π»ΠΈrenderSquare
. - ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅
this.handleClick (i)
Π½Π°this.props.onClick (i)
Π² ΡΠ°ΠΉΠ»Π΅ BoardrenderSquare
.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Board ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
class Board ΡΠ°ΡΡΠΈΡΡΠ΅Ρ React.Component {
handleClick (i) {
const squares = this.state.squares.slice ();
if (calculateWinner (squares) || squares [i]) {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ;
}
ΠΊΠ²Π°Π΄ΡΠ°ΡΡ [i] = this.state.xIsNext? 'X': 'Π';
this.setState ({
ΠΊΠ²Π°Π΄ΡΠ°ΡΡ: ΠΊΠ²Π°Π΄ΡΠ°ΡΡ,
xIsNext:! this.state.xIsNext,
});
}
renderSquare (i) {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
<ΠΠ²Π°Π΄ΡΠ°Ρ
value = {this.props.squares [i]} onClick = {() => this.props.onClick (i)} />
);
}
ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ() {
ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ = calculateWinner (this.state.squares);
ΠΏΡΡΡΡ ΡΡΠ°ΡΡΡ;
Π΅ΡΠ»ΠΈ (ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ) {
status = 'ΠΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ:' + ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ;
} Π΅ΡΠ΅ {
status = 'Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΈΠ³ΡΠΎΠΊ:' + (this.state.xIsNext? 'X': 'O');
}
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
{status}
{this.renderSquare (0)}
{this.renderSquare (1)}
{ΡΡΠΎ.renderSquare (2)}
{this.renderSquare (3)}
{this.renderSquare (4)}
{this.renderSquare (5)}
{this.renderSquare (6)}
{this.renderSquare (7)}
{this.renderSquare (8)}
);
}
}
ΠΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ render
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Game, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π·Π°ΠΏΠΈΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠ°ΡΡΡΠ° ΠΈΠ³ΡΡ:
render () {
const history = this.state.history; const current = history [history.length - 1]; const ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ = calculateWinner (current.squares); ΠΏΡΡΡΡ ΡΡΠ°ΡΡΡ; if (ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ) {status = 'ΠΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ:' + ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ; } else {status = 'Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΈΠ³ΡΠΎΠΊ:' + (this.state.xIsNext? 'X': 'O'); }
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
this.handleClick (i)} />
{status} {}
);
}
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Game ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΡΠ°ΡΡΡ ΠΈΠ³ΡΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° render
Board.ΠΠΎΡΠ»Π΅ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ»Π°ΡΡ render
Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
render () {return ( {this.renderSquare (0)}
{this.renderSquare (1)}
{this.renderSquare (2)}
{this.renderSquare (3)}
{this.renderSquare (4)}
{this.renderSquare (5)}
{ΡΡΠΎ.renderSquare (6)}
{this.renderSquare (7)}
{this.renderSquare (8)}
);
}
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ handleClick
ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Board Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Game. ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ handleClick
, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Game ΠΈΠΌΠ΅Π΅Ρ Π΄ΡΡΠ³ΡΡ ΡΡΡΡΠΊΡΡΡΡ. Π ΡΠ°ΠΌΠΊΠ°Ρ
ΠΌΠ΅ΡΠΎΠ΄Π° handleClick ΠΈΠ³ΡΡ ΠΌΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈΡΡΠΎΡΠΈΠΈ Ρ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ
.
handleClick (i) {
const history = this.state.history; const current = history [history.length - 1]; const squares = current.squares.slice (); if (calculateWinner (squares) || squares [i]) {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ;
}
ΠΊΠ²Π°Π΄ΡΠ°ΡΡ [i] = this.state.xIsNext? 'X': 'Π';
this.setState ({
history: history.concat ([{ΠΊΠ²Π°Π΄ΡΠ°ΡΡ: ΠΊΠ²Π°Π΄ΡΠ°ΡΡ,}]), xIsNext:! this.state.xIsNext,
});
}
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄Π° array
push ()
, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ, ΠΌΠ΅ΡΠΎΠ΄concat ()
Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌ Π΅Π³ΠΎ.
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Board Π½ΡΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ renderSquare
ΠΈ render
. Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ³ΡΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ handleClick
Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ Game.
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ»ΡΡ Ρ ΠΎΠ΄ΠΎΠ²
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ³ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π΅Π΅ Π΄Π»Ρ ΠΈΠ³ΡΠΎΠΊΠ° Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠΎΡΠ»ΡΡ Ρ ΠΎΠ΄ΠΎΠ².
Π Π°Π½Π΅Π΅ ΠΌΡ ΡΠ·Π½Π°Π»ΠΈ, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ React - ΡΡΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΊΠ»Π°ΡΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ JavaScript; ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΡ Π² Π½Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ .Π§ΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² React, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² React.
Π JavaScript ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄ map ()
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ ΡΠΈΡΠ»Π° = [1, 2, 3];
const doubled = numbers.map (x => x * 2);
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄ map
, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π½Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ Ρ
ΠΎΠ΄ΠΎΠ² Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ React, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° ΡΠΊΡΠ°Π½Π΅, ΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π΄Π»Ρ Β«ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π°Β» ΠΊ ΠΏΡΠΎΡΠ»ΡΠΌ Ρ
ΠΎΠ΄Π°ΠΌ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌ
Ρ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ
Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΈΠ³ΡΡ
:
render () {
const history = this.state.history;
const current = history [history.length - 1];
const ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ = calculateWinner (current.squares);
const move = history.map ((step, move) => {const desc = move? 'ΠΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ #' + move: 'ΠΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π½Π°ΡΠ°Π»Ρ ΠΈΠ³ΡΡ'; return ( );});
ΠΏΡΡΡΡ ΡΡΠ°ΡΡΡ;
Π΅ΡΠ»ΠΈ (ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ) {
status = 'ΠΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ:' + ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ;
} Π΅ΡΠ΅ {
status = 'Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΈΠ³ΡΠΎΠΊ:' + (this.state.xIsNext? 'X': 'O');
}
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
<ΠΠΎΡΠΊΠ°
ΠΊΠ²Π°Π΄ΡΠ°ΡΡ = {current.squares}
onClick = {(i) => this.handleClick (i)}
/>
{ΡΡΠ°ΡΡΡ}
{Π΄Π²ΠΈΠΆΠ΅ΡΡΡ}
);
}
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ
ΠΎΠ΄Π° Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΈΠ³ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ°
.Π£ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ onClick
, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ this.jumpTo ()
. ΠΡ Π΅ΡΠ΅ Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ jumpTo ()
. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ Ρ
ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ Π² ΠΈΠ³ΡΠ΅, ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π³Π»Π°ΡΠΈΡ:ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅:
ΠΠ°ΠΆΠ΄ΡΠΉ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΈΠ»ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Β«ΠΊΠ»ΡΡΠ΅Π²ΡΡΒ» ΠΎΠΏΠΎΡΡ. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Β«GameΒ».
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.
ΠΡΠ±ΠΎΡ ΠΊΠ»ΡΡΠ°
ΠΠΎΠ³Π΄Π° ΠΌΡ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ, React ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ ΡΠΏΠΈΡΠΊΠ°.ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ, React Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ. ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ, ΡΠ΄Π°Π»ΡΡΡ, ΠΏΠ΅ΡΠ΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΎΡ
Alexa: ΠΎΡΡΠ°Π»ΠΎΡΡ 7 Π·Π°Π΄Π°Ρ
ΠΠ΅Π½: ΠΎΡΡΠ°Π»ΠΎΡΡ 5 Π·Π°Π΄Π°Ρ
Π‘
ΠΏΠΎ
ΠΠ΅Π½: ΠΎΡΡΠ°Π»ΠΎΡΡ 9 Π·Π°Π΄Π°Ρ
ΠΠ»Π°ΡΠ΄ΠΈΡ: ΠΎΡΡΠ°Π»ΠΎΡΡ 8 Π·Π°Π΄Π°Ρ
Alexa: ΠΎΡΡΠ°Π»ΠΎΡΡ 5 Π·Π°Π΄Π°Ρ
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ°ΠΌ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, ΡΠΈΡΠ°ΡΡΠΈΠΉ ΡΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΠΊΠ°ΠΆΠ΅Ρ, ΡΡΠΎ ΠΌΡ ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΈ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΠ»Π΅ΠΊΡΠ° ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΠ΅Π½Π° ΠΈ Π²ΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΠ»Π°ΡΠ΄ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΠ»Π΅ΠΊΡΠ° ΠΈ ΠΠ΅Π½ΠΎΠΌ.ΠΠ΄Π½Π°ΠΊΠΎ React - ΡΡΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ Π·Π½Π°Π΅Ρ, ΡΡΠΎ ΠΌΡ Π·Π°Π΄ΡΠΌΠ°Π»ΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ React Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π½Π°ΡΡ Π½Π°ΡΠΈ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ key Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΠΈΡΠΊΠ°, ΡΡΠΎΠ±Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ° ΠΎΡ Π΅Π³ΠΎ Π±ΡΠ°ΡΡΠ΅Π² ΠΈ ΡΠ΅ΡΡΠ΅Ρ. ΠΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ alexa
, ben
, claudia
. ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ
ΠΠ»Π΅ΠΊΡΡ, ΠΠ΅Π½Π° ΠΈ ΠΠ»Π°ΡΠ΄ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ΅ΠΉ.
{user.name}: {user.taskCount} ΠΎΡΡΠ°Π»ΠΎΡΡ Π·Π°Π΄Π°Ρ
ΠΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΏΠΈΡΠΊΠ° React Π±Π΅ΡΠ΅Ρ ΠΊΠ»ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΠΈΡΠΊΠ° ΠΈ ΠΈΡΠ΅Ρ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠ»ΡΡ. ΠΡΠ»ΠΈ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅ Π΅ΡΡΡ ΠΊΠ»ΡΡ, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π½ΡΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ, React ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΡΠ»ΠΈ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΊΠ»ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π» Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅, React ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΡΠ»ΠΈ Π΄Π²Π° ΠΊΠ»ΡΡΠ° ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ. ΠΠ»ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ°ΡΡ React ΠΎΠ± ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ React ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΌΠΈ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°ΠΌΠΈ.ΠΡΠ»ΠΈ ΠΊΠ»ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ ΠΈ Π²ΠΎΡΡΠΎΠ·Π΄Π°Π½ Ρ Π½ΠΎΠ²ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ.
key
- ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π² React (Π½Π°ΡΡΠ΄Ρ Ρ ref
, Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ). ΠΠΎΠ³Π΄Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ, React ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ key
ΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΠΊΠ»ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΊΠ»ΡΡ
ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΠΎΠ½ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ props
, Π½Π° ΠΊΠ»ΡΡ
Π½Π΅Π»ΡΠ·Ρ ΡΡΡΠ»Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ this.props.key
.React Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠ»ΡΡ
, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΊΠ»ΡΡ
.
ΠΠ°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π½Π°Π·Π½Π°ΡΠ°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ². ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΊΠ»ΡΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠ΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²ΠΎΠΈΡ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎΠ±Ρ Π²Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ.
ΠΡΠ»ΠΈ ΠΊΠ»ΡΡ Π½Π΅ ΡΠΊΠ°Π·Π°Π½, React Π²ΡΠ΄Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ°. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ° ΠΈΠ»ΠΈ ΠΏΡΠΈ Π²ΡΡΠ°Π²ΠΊΠ΅ / ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ°.Π―Π²Π½Π°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° key = {i}
Π·Π°Π³Π»ΡΡΠ°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΡΠΎ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΈ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ.
ΠΠ»ΡΡΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌ ΠΌΠ°ΡΡΡΠ°Π±Π΅; ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΠΈΡ Π±ΡΠ°ΡΡΠ΅Π² ΠΈ ΡΠ΅ΡΡΠ΅Ρ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
Π ΠΈΡΡΠΎΡΠΈΠΈ ΠΈΠ³ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ»ΡΠΉ Ρ ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π½ΠΈΠΌ: ΡΡΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ Ρ ΠΎΠ΄Π°. Π₯ΠΎΠ΄Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°ΡΡΡΡ, Π½Π΅ ΡΠ΄Π°Π»ΡΡΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ Π²ΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΏΠΎΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ°.
Π ΠΌΠ΅ΡΠΎΠ΄Π΅ render
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Game ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ»ΡΡ ΠΊΠ°ΠΊ
const move = history.map ((step, move) => {
const desc = ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ?
'Go to move #' + Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅:
'ΠΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π½Π°ΡΠ°Π»Ρ ΠΈΠ³ΡΡ';
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
);
});
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ
ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΠΊΠ½ΠΎΠΏΠΎΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΠΈΡΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ΅ΡΠΎΠ΄ jumpTo
Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½.ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ jumpTo
, ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ stepNumber
Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Game, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ°Π³ ΠΌΡ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ.
Π‘Π½Π°ΡΠ°Π»Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ stepNumber: 0
ΠΊ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ Game
:
class Game ΡΠ°ΡΡΠΈΡΡΠ΅Ρ React.Component {
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ) {
ΡΡΠΏΠ΅Ρ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ);
this.state = {
ΠΈΡΡΠΎΡΠΈΡ: [{
ΠΊΠ²Π°Π΄ΡΠ°ΡΡ: Array (9) .fill (null),
}],
stepNumber: 0, xIsNext: ΠΈΡΡΠΈΠ½Π°,
};
}
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ jumpTo
Π² Game, ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΎΡ stepNumber
.ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π΄Π»Ρ xIsNext
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true, Π΅ΡΠ»ΠΈ ΡΠΈΡΠ»ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΠΌΠ΅Π½ΡΠ΅ΠΌ stepNumber
Π½Π° ΡΠ΅ΡΠ½ΠΎΠ΅:
handleClick (i) {
}
jumpTo (ΡΠ°Π³) {this.setState ({stepNumber: step, xIsNext: (step% 2) === 0,}); }
ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ() {
}
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π²Π½Π΅ΡΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ³ΡΡ handleClick
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ²Π°Π΄ΡΠ°Ρ.
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ Π½Π°ΠΌΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ stepNumber ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ Ρ
ΠΎΠ΄, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠΉ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ΅ΠΉΡΠ°Ρ.ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ Ρ
ΠΎΠ΄, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ
stepNumber
, Π΄ΠΎΠ±Π°Π²ΠΈΠ² stepNumber: history.length
ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° this.setState
. ΠΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΌΡ Π½Π΅ Π·Π°ΡΡΡΡΠ½Π΅ΠΌ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Ρ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ Ρ
ΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ Π½ΠΎΠ²ΡΠΉ.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ ΡΡΠ΅Π½ΠΈΠ΅ this.state.history
Π½Π° this.state.history.slice (0, this.state.stepNumber + 1)
. ΠΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ Β«Π²Π΅ΡΠ½Π΅ΠΌΡΡ Π² ΠΏΡΠΎΡΠ»ΠΎΠ΅Β», Π° Π·Π°ΡΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠ°Π³ Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΌΡ Π²ΡΠ±ΡΠΎΡΠΈΠΌ Π²ΡΡ Β«Π±ΡΠ΄ΡΡΡΡΒ» ΠΈΡΡΠΎΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠ°Π»Π° Π±Ρ Π½Π΅Π²Π΅ΡΠ½ΠΎΠΉ.
handleClick (i) {
const history = this.state.history.slice (0, this.state.stepNumber + 1); const current = history [history.length - 1];
const squares = current.squares.slice ();
if (calculateWinner (squares) || squares [i]) {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ;
}
ΠΊΠ²Π°Π΄ΡΠ°ΡΡ [i] = this.state.xIsNext? 'X': 'Π';
this.setState ({
history: history.concat ([{
ΠΊΠ²Π°Π΄ΡΠ°ΡΡ: ΠΊΠ²Π°Π΄ΡΠ°ΡΡ
}]),
stepNumber: history.length, xIsNext:! this.state.xIsNext,
});
}
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ render
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Game, Π·Π°ΠΌΠ΅Π½ΠΈΠ² Π²ΡΠ΅Π³Π΄Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Ρ
ΠΎΠ΄Π° Π½Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Ρ
ΠΎΠ΄Π° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ stepNumber
:
render () {
const history = this.state.history;
const current = ΠΈΡΡΠΎΡΠΈΡ [this.state.stepNumber]; const ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ = calculateWinner (current.squares);
ΠΡΠ»ΠΈ ΠΌΡ ΡΠ΅Π»ΠΊΠ½Π΅ΠΌ ΠΏΠΎ Π»ΡΠ±ΠΎΠΌΡ ΡΠ°Π³Ρ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΈΠ³ΡΡ, Π΄ΠΎΡΠΊΠ° Π΄Π»Ρ ΠΈΠ³ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ Π΄ΠΎΡΠΊΠ° Π²ΡΠ³Π»ΡΠ΄Π΅Π»Π° ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎΡ ΡΠ°Π³ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π».
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π΄Π΅ΡΡ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ! ΠΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΈΠ³ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ:
- ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ³ΡΠ°ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ,
- Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³ΡΠΎΠΊ Π²ΡΠΈΠ³ΡΠ°Π» ΠΈΠ³ΡΡ,
- Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ³ΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π΅Π΅ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ,
- ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ³ΡΠΎΠΊΠ°ΠΌ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ³ΡΡ ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ.
ΠΡΠ»ΠΈΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ°! ΠΡ Π½Π°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π²Ρ ΡΡΠ²ΡΡΠ²ΡΠ΅ΡΠ΅, ΡΡΠΎ ΠΈΠΌΠ΅Π΅ΡΠ΅ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ React.
ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π·Π΄Π΅ΡΡ: Final Result .
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠ²Π°ΡΡΡΡ Π² Π½ΠΎΠ²ΡΡ Π½Π°Π²ΡΠΊΠ°Ρ React, Π²ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ΄Π΅ΠΉ ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Π½Π΅ΡΡΠΈ Π² ΠΈΠ³ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ:
- ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ ΠΎΠ΄Π° Π² ΡΠΎΡΠΌΠ°ΡΠ΅ (ΡΡΠΎΠ»Π±Π΅Ρ, ΡΡΡΠΎΠΊΠ°) Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ Ρ ΠΎΠ΄ΠΎΠ².
- ΠΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ Π²ΡΠ΄Π΅Π»Π΅Π½ ΠΆΠΈΡΠ½ΡΠΌ ΡΡΠΈΡΡΠΎΠΌ.
- Rewrite Board, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π²Π΅ ΠΏΠ΅ΡΠ»ΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ² Π²ΠΌΠ΅ΡΡΠΎ ΠΈΡ ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
- ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΎΠ΄Ρ Π² Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠ΅ΠΌ ΠΈΠ»ΠΈ ΡΠ±ΡΠ²Π°ΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
- ΠΠΎΠ³Π΄Π° ΠΊΡΠΎ-ΡΠΎ Π²ΡΠΈΠ³ΡΡΠ²Π°Π΅Ρ, Π²ΡΠ΄Π΅Π»ΠΈΡΠ΅ ΡΡΠΈ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π»ΠΈ ΠΊ ΠΏΠΎΠ±Π΅Π΄Π΅.
- ΠΡΠ»ΠΈ Π½ΠΈΠΊΡΠΎ Π½Π΅ Π²ΡΠΈΠ³ΡΠ°Π», ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π½ΠΈΡΡΠ΅ΠΉ.
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ Π·Π°ΡΡΠΎΠ½ΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ React, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ
ΡΠ΅ΠΌ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ.Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠΌ React.Component
API.
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ - React
ΠΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±Π·ΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ React ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ².
React - ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JavaScript Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². Π£Π·Π½Π°ΠΉΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React, Π½Π° Π½Π°ΡΠ΅ΠΉ Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ»ΠΈ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅.
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ React
React Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎΠ³ΠΎ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ, Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ React, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΊ ΠΏΡΠΎΡΡΠΎΠΉ HTML-ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ React, ΡΡΡΠ»ΠΊΠΈ Π² ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ.
ΠΠ³ΡΠΎΠ²ΡΠ΅ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠΈ ΠΎΠ½Π»Π°ΠΉΠ½
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡ Ρ React, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΡ Π΄Π»Ρ ΠΊΠΎΠ΄Π°. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½ Hello World Π½Π° CodePen, CodeSandbox ΠΈΠ»ΠΈ Stackblitz.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΡΠΎΡ HTML-ΡΠ°ΠΉΠ», ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΈ ΠΎΡΠΊΡΡΡΡ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π² Π²Π°ΡΠ΅ΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.ΠΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠΎΡΡΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΉ.
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅Π°ΠΊΡΠΈΡ Π½Π° Π²Π΅Π±-ΡΠ°ΠΉΡ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ React Π½Π° HTML-ΡΡΡΠ°Π½ΠΈΡΡ Π·Π° ΠΎΠ΄Π½Ρ ΠΌΠΈΠ½ΡΡΡ. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ°ΡΡΠΈΡΡΡΡ Π΅Π³ΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅, Π»ΠΈΠ±ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°Ρ .
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ React
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° React ΠΏΡΠΎΡΡΠ°Ρ HTML-ΡΡΡΠ°Π½ΠΈΡΠ° Ρ ΡΠ΅Π³Π°ΠΌΠΈ ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΡΡΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π·Π°ΠΉΠΌΠ΅Ρ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΠ½ΡΡΡ!
ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠ° Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°.ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°Π±ΠΎΡΠΎΠ² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² JavaScript. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π±Π΅Π· Π½Π΅Π΅ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΎΠ³Π°ΡΡΡ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ React. ΠΠ°ΡΡΠΈΡΡΡΡ.
ΠΠ·ΡΡΠΈΡΠ΅ React
ΠΡΠ΄ΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ Π² React Ρ ΡΠ°Π·Π½ΡΠΌ ΠΎΠΏΡΡΠΎΠΌ ΠΈ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΡΠΈΠ»ΡΠΌΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΌΡ Π½Π°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ ΡΡΠΎΡ ΡΠ°Π·Π΄Π΅Π» ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π΄Π»Ρ Π²Π°Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ.
ΠΠ°ΠΊ ΠΈ Π»ΡΠ±Π°Ρ Π½Π΅Π·Π½Π°ΠΊΠΎΠΌΠ°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, React ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.Π‘ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ ΠΈ ΡΠ΅ΡΠΏΠ΅Π½ΠΈΠ΅ΠΌ Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ .
ΠΠ΅ΡΠ²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ
ΠΠΎΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° React ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² React Ρ ΠΆΠΈΠ²ΡΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΠΎ React, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΡ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
React Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
ΠΡΠ»ΠΈ Π²Ρ ΡΡΠ²ΡΡΠ²ΡΠ΅ΡΠ΅, ΡΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ React ΠΈΠ΄Π΅Ρ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ Π²Ρ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΡΡΠΈΠΌ ΠΎΠ±Π·ΠΎΡΠΎΠΌ React ΠΎΡ Π’Π°Π½ΠΈ Π Π°ΡΡΠΈΠΈ. ΠΠ½ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π·Π½Π°ΠΊΠΎΠΌΠΈΡ Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌΠΈ React ΠΈ ΡΠ΄ΠΎΠ±Π΅Π½ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ².ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΠ΅, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΅ΡΠ΅ ΡΠ°Π·!
React Π΄Π»Ρ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠΎΠ²
ΠΡΠ»ΠΈ Π²Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ, ΡΡΠΈ ΡΠ΅ΡΡΡΡΡ - ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π°.
Π Π΅ΡΡΡΡΡ JavaScript
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ React ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π° ΡΠ·ΡΠΊΠ΅ JavaScript. ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠΌ, Π½ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΡΡΠΈΡΡ React ΠΈ JavaScript ΡΠ»ΠΎΠΆΠ½Π΅Π΅.
ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠΎΡ ΠΎΠ±Π·ΠΎΡ JavaScript, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π·Π½Π°Π½ΠΈΠΉ.ΠΡΠΎ Π·Π°ΠΉΠΌΠ΅Ρ Ρ Π²Π°Ρ ΠΎΡ 30 ΠΌΠΈΠ½ΡΡ Π΄ΠΎ ΡΠ°ΡΠ°, Π½ΠΎ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΡΠ²ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ΅Π±Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ, ΠΈΠ·ΡΡΠ°Ρ React.
ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°
ΠΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Π°Ρ ΡΡΠΎ-ΡΠΎ ΠΏΡΡΠ°Π΅Ρ Π² JavaScript, Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ MDN ΠΈ javascript.info. ΠΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΡΡΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°, Π³Π΄Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΡΠΈΡΡ ΠΎ ΠΏΠΎΠΌΠΎΡΠΈ.
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ ΡΡΠΈΡΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½Π°ΡΠΈΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ. Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΈΠ³ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ Π² React.Π£ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠΎΠ±Π»Π°Π·Π½ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Ρ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ³Ρ, Π½ΠΎ Π΄Π°ΠΉΡΠ΅ Π΅ΠΌΡ ΡΠ°Π½Ρ. ΠΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΈΠ·ΡΡΠΈΡΠ΅ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅, ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π»ΡΠ±ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ React, ΠΈ ΠΈΡ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π΄Π°ΡΡ Π²Π°ΠΌ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅.
ΠΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ ΠΈΠ·ΡΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΡΠ°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ, Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ Ρ - Π½Π°ΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌ. ΠΠ°ΠΆΠ΄Π°Ρ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π³Π»Π°Π²Π° Π² Π½Π΅ΠΌ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π½Π° Π·Π½Π°Π½ΠΈΡΡ , ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π³Π»Π°Π²Π°Ρ , ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅.
ΠΡΡΠ»ΠΈΡΡ Π² ΡΠ΅Π°ΠΊΡΠΈΡΡ
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ React ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΡΡΠ΅Π½ΠΈΠ΅ Β«Thinking in ReactΒ» ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° React Π½Π°ΠΊΠΎΠ½Π΅Ρ Β«ΡΠ΅Π»ΠΊΠ½ΡΠ»Β» Π΄Π»Ρ Π½ΠΈΡ . ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΠΎ ΡΠ°ΠΌΠΎΠ΅ ΡΡΠ°ΡΠΎΠ΅ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ React, Π½ΠΎ ΠΎΠ½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠ΅ ΠΊΡΡΡΡ
ΠΠ½ΠΎΠ³Π΄Π° Π»ΡΠ΄ΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΊΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ, ΡΠ΅ΠΌ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. ΠΡ Π²Π΅Π΄Π΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΡΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½Ρ.
Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΎΡΠ²ΠΎΠΈΡΠ΅ΡΡ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌΠΈ ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΠ³ΡΠ°Π΅ΡΠ΅ Ρ React, Π²Π°Ρ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠ΅ΠΌΡ.Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ ΠΌΠΎΡΠ½ΡΠΌΠΈ, Π½ΠΎ ΠΌΠ΅Π½Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ React, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ context ΠΈ refs.
Π‘ΡΡΠ»ΠΊΠ° API
ΠΡΠΎΡ ΡΠ°Π·Π΄Π΅Π» Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ React API. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΠΏΠΎ API React.Component
ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π²Π°ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ setState ()
, ΠΈ Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°.
ΠΠ»ΠΎΡΡΠ°ΡΠΈΠΉ ΠΈ ΡΠ°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ
ΠΠ»ΠΎΡΡΠ°ΡΠΈΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ±Π·ΠΎΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π²ΡΡΡΠ΅ΡΠΈΡΠ΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ React.Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π» ΡΠ°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ², ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ ΠΈ ΠΎΡΠ²Π΅ΡΠ°ΠΌ Π½Π° ΠΎΠ±ΡΠΈΠ΅ ΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² AJAX, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΡΡΡΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΡΠ΄ΡΡΠ΅ Π² ΠΊΡΡΡΠ΅
ΠΠ»ΠΎΠ³ React ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ React. ΠΡΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΊ Π²ΡΠΏΡΡΠΊΡ ΠΈΠ»ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΊΠ°Π·Π΅ ΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ, Π±ΡΠ΄Π΅Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ ΡΠ°ΠΌ.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° Π°ΠΊΠΊΠ°ΡΠ½Ρ @reactjs Π² Twitter, Π½ΠΎ Π²Ρ Π½Π΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠΈΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π±Π»ΠΎΠ³.
ΠΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠΏΡΡΠΊ React Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Π±Π»ΠΎΠ³Π΅, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΠΆΡΡΠ½Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΡΠΏΡΡΠΊΠ° Π² ΡΠ°ΠΉΠ»Π΅ CHANGELOG.md
Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ React, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Releases.
ΠΠ΅ΡΡΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π²ΡΠ΅Π³Π΄Π° ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ React. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ React 16, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΡΠ»ΡΡ Π²Π΅ΡΡΠΈΠΉ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠΏΡΡΠΊΠ° ΠΈ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ.
Π§ΡΠΎ-ΡΠΎ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ?
ΠΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ, ΡΡΠΎ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΡΠ°ΡΡΡ ΡΠ±ΠΈΠ²Π°Π΅Ρ Π²Π°Ρ Ρ ΡΠΎΠ»ΠΊΡ, ΡΠΎΠΎΠ±ΡΠΈΡΠ΅ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Ρ Π²Π°ΡΠΈΠΌΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡΠΈΡΠ΅ Π² Π’Π²ΠΈΡΡΠ΅ΡΠ΅ Π½Π° @reactjs Π°ΠΊΠΊΠ°ΡΠ½Ρ. ΠΡ Π»ΡΠ±ΠΈΠΌ ΡΠ»ΡΡΠ°ΡΡ Π²Π°Ρ!
Hello World - React
Π‘Π°ΠΌΡΠΉ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ React Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ReactDOM.render (
ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!
,
document.getElementById ('ΠΊΠΎΡΠ΅Π½Ρ')
);
ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Β«ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!Β» Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅.
ΠΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π½Π° CodePen
Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΡΡΡΠ»ΠΊΡ Π²ΡΡΠ΅, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΠ΅Π΄Π°ΠΊΡΠΎΡ. ΠΠ΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ Π²Π½ΠΎΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΠ° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΡΡΠ°Π½ΠΈΡ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠΎΠΌΡ.
ΠΠ°ΠΊ ΡΠΈΡΠ°ΡΡ ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΡΠΎΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ React: ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΡΠ²ΠΎΠΈΠ² ΠΈΡ , Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ· Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ°ΡΡΠ΅ΠΉ.
ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°
ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ .ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ ΡΡΠΈΡΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½Π°ΡΠΈΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΈ ΡΡΠ΅Π±Π½ΠΈΠΊ, Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°.
ΠΡΠΎ ΠΏΠ΅ΡΠ²Π°Ρ Π³Π»Π°Π²Π° Π² ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌ React. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ Π΅Π³ΠΎ Π³Π»Π°Π² Π½Π° Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ. ΠΡΠ»ΠΈ Π²Ρ ΡΠΈΡΠ°Π΅ΡΠ΅ ΡΡΠΎ Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ, Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡ Π² ΠΏΡΠ°Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡΠ³Π»Ρ ΡΠΊΡΠ°Π½Π°.
ΠΠ°ΠΆΠ΄Π°Ρ Π³Π»Π°Π²Π° Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° Π·Π½Π°Π½ΠΈΡΡ , ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π³Π»Π°Π²Π°Ρ . ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΡΡΠΈΡΡ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ React, ΠΏΡΠΎΡΠΈΡΠ°Π² Π³Π»Π°Π²Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Β«ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈΒ» Π² ΡΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π½Π° Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Β«ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² JSXΒ» - ΡΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π³Π»Π°Π²Π° ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠΉ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠ²Π½Ρ Π·Π½Π°Π½ΠΈΠΉ
React - ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JavaScript, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠ·ΡΠΊΠ΅ JavaScript. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² ΡΠ΅Π±Π΅, ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΏΡΠΎΠΉΡΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ JavaScript, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π·Π½Π°Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠΎΠΌΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Ρ, Π½Π΅ Π·Π°Π±Π»ΡΠ΄ΠΈΠ²ΡΠΈΡΡ.ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ ΠΎΡ 30 ΠΌΠΈΠ½ΡΡ Π΄ΠΎ ΡΠ°ΡΠ°, Π½ΠΎ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Π°ΠΌ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ Π²Ρ ΠΈΠ·ΡΡΠ°Π΅ΡΠ΅ React ΠΈ JavaScript ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ JavaScript Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ . ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Ρ JavaScript Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ, ΡΡΠΈ ΡΡΠΈ ΠΏΡΠ½ΠΊΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ Π² ΡΡΠΎΠΌ.
ΠΡΠΈΡΡΡΠΏΠΈΠΌ!
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°ΡΡ Π²Π½ΠΈΠ·, ΠΈ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ Π³Π»Π°Π²Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΏΡΡΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΈΠΆΠ½ΠΈΠΌ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»ΠΎΠΌ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°.
Fullstack React: ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React?
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
Π ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ 30 Π΄Π½Π΅ΠΉ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ°ΡΡΡΡ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° React ΠΈ Π΅Π³ΠΎ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ Π½Π°ΡΠ΅Π³ΠΎ 30-Π΄Π½Π΅Π²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡΡ Π½Π° ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ Π΄Π½Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊ ΠΊΠΎΠ½ΡΡ ΡΠ΅ΡΠΈΠΈ Π²Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π±ΡΠ΄Π΅ΡΠ΅ Π·Π½Π°ΡΡ ΡΠ΅ΡΠΌΠΈΠ½Ρ, ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, Π½ΠΎ ΠΈ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ React Π² Π²Π°ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠΈΡΡΡΠΏΠΈΠΌ. ΠΡ Π½Π°ΡΠ½Π΅ΠΌ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π°.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React?
React - ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JavaScript Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². ΠΡΠΎ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ React Π»Π΅ΠΆΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² . ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ - ΡΡΠΎ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ React. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠΎΡΡΠ°Π²Π½ΡΠ΅ .ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ²ΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ React ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ React, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΠΌ ΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΠ·ΡΠΌΠΈΡΠ΅ ΡΠΎΡΠΌΡ. Π€ΠΎΡΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π°, ΠΌΠ΅ΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π²Π½ΡΡΡΠΈ ΡΠΎΡΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ React.ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΡΠ°ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠΎΡΠΌΡ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠΎΡΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΠΎΡΠΌΡ ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² Π½Π΅Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ React ΡΠΎΠ±Π»ΡΠ΄Π°Π΅Ρ ΡΡΡΠΎΠ³ΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ. Π‘Π»ΠΎΠΆΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΠ°ΡΡΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΡ React ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π° ββΠ½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ Π½Π°ΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠ³Π°Π΄ΡΠ²Π°ΡΡ, ΠΊΠ°ΠΊ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π½Π°Π±ΠΎΡΠ΅ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ².ΠΡ ΡΠ³Π»ΡΠ±ΠΈΠΌΡΡ Π² ΡΡΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΠΎΠ·ΠΆΠ΅ Π² ΡΡΠΎΠΌ ΠΊΡΡΡΠ΅.
Π₯ΠΎΡΠΎΡΠΎ, Π° ΠΊΠ°ΠΊ Π½Π°ΠΌ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ?
React - ΡΡΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ JavaScript. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ, ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΉΠ» JavaScript Π² Π½Π°Ρ HTML ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΡΠΏΠΎΡΡ React
Π² JavaScript Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Hello world ΠΏΡΠΈΠΌΠ΅Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° React ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΏΡΠΎΡΡΡΠΌ, ΠΊΠ°ΠΊ:
ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ
Π₯ΠΎΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ³Π°ΡΡΠΈΠΌ, ΠΊΠΎΠ΄ JavaScript ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΡ ΡΡΡΠΎΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Hello world .ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² JavaScript, ΡΡΠΎΠ±Ρ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ.
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ?
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠ²ΠΎΠΈΡ
ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠΎΠ², React ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° (DOM) Π±ΡΠ°ΡΠ·Π΅ΡΠ°, Π° Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ DOM . Π’ΠΎ Π΅ΡΡΡ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΌ
Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π½Π°ΡΠΈΡ
Π΄Π°Π½Π½ΡΡ
(ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ), ΠΎΠ½ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² DOM, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ DOM React ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π½Π΅ΡΡΠΈ Π² DOM ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ°.
React Virtual DOM ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ DOM Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ°. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ React, ΠΌΡ Π½Π΅ ΠΏΠΈΡΠ΅ΠΌ Π½Π°ΠΏΡΡΠΌΡΡ Π² DOM, Π° ΠΏΠΈΡΠ΅ΠΌ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ React ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡ Π² DOM.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ Π΄Π»Ρ Π½Π°Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½Π°ΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ React, ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ JSX ΠΈ Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π½Π°ΡΠΈ ΠΏΠ΅ΡΠ²ΡΠ΅ Π½Π°ΡΡΠΎΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.
ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
React - ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JavaScript Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ².
ΠΡΠΎ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ React. ΠΠΎ ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ JavaScript? Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ? Π‘ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΏΠΎΠ½ΡΡΡ (ΠΈ ΠΈΠ·ΡΡΠΈΡΡ) React?
ΠΠΎΠΉ ΠΎΡΠ²Π΅Ρ ΡΠ²Π΅ΡΠ΄ΠΎΠ΅ ΠΠ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Ρ Π½Π°ΠΏΠΈΡΠ°Π» ΡΡΡ ΡΡΠ°ΡΡΡ: ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React? Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React.js (ΠΈΠ»ΠΈ ReactJS)? ΠΠ»Ρ ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ React? ΠΠΎΡΠ΅ΠΌΡ React ΡΠ°ΠΊ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½? ΠΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΅ΡΠ°Π΅Ρ?
ΠΡΠ° ΡΡΠ°ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² React Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . ΠΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΈΠ·ΡΡΠ°ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ React.Π― ΠΎΠ±ΡΡΡΠ½Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ΄Π΅ΠΈ React ΠΏΡΠΎΡΡΡΠΌ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ (ΠΈ Π΄ΡΠ΄Π»Π°ΠΌΠΈ π΄). ΠΠ΅Ρ ΠΎΠΏΡΡΠ° ΡΠ°Π±ΠΎΡΡ Ρ JavaScript? ΠΠ΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ! ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π·Π½Π°Π½ΠΈΡ HTML (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΡΠΌΠ°Ρ HTML-ΡΠ΅Π³Π°), Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΠ΅ ΠΎΡ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ.
ΠΡΠΎ Π²ΠΈΠ΄ Ρ Π²ΡΡΠΎΡΡ ΠΏΡΠΈΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»Π΅ΡΠ°, Π½ΠΎ Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ½Π°Π±ΠΆΡ Π²Π°Ρ Π±ΠΈΠ½ΠΎΠΊΠ»Π΅ΠΌ. ΠΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π±ΠΎΠ»ΡΡΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ React ΠΎΡΠΎΠ±Π΅Π½Π½ΡΠΌ, Π½ΠΎ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΡΠ΅ ΠΌΠ°ΡΡΡΠ°Π±, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° React.Π Π΄Π°, Π·Π½Π°Π½ΠΈΠ΅ JS Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ!
ΠΠΎΠΌΠ½ΠΈΡΠ΅: Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠΏΡΡΠ½ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ΄Π΅ΠΈ React!
ΠΠΎΡΠΎΠ²Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Π² ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΠ΅?
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ React. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Ρ ΡΠΎΠ·Π΄Π°Ρ ΠΊΡΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ Π² ΡΡΠΎΠΌ.
Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ React ΠΏΠΎΡΠ»Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π΄Π½Π΅ΠΉ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, , Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ . ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ, ΠΈ Ρ Π΄Π°ΠΌ Π²Π°ΠΌ Π·Π½Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΡΡΡ Π±ΡΠ΄Π΅Ρ Π³ΠΎΡΠΎΠ²!
ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ»ΡΡΠ°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·, - DOM.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ DOM?
ΠΠΎΠ³Π΄Π° Π²Ρ Π²Π²ΠΎΠ΄ΠΈΡΠ΅ Π°Π΄ΡΠ΅Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π»ΡΠ±ΠΈΠΌΠΎΠ³ΠΎ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° Π² Π±ΡΠ°ΡΠ·Π΅Ρ, Π²Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ, ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ . ΠΠ±ΡΡΠ½ΠΎ Π²Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ:
ΠΠ°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ: ΠΠΉ, ΡΡΠΎ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅ learnreact.design?
Π‘Π΅ΡΠ²Π΅Ρ: ΠΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΠ΅ ΠΌΠ½Π΅ ΠΊΠΎΠ΅-ΡΡΠΎ Π΄Π»Ρ Π²Π°Ρ Π·Π°Ρ Π²Π°ΡΠΈΡΡ. ΠΠΈΠΏ.ΠΡΠΏ.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ°ΡΡΡ ΠΎΡΠ²Π΅ΡΠ° ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²: HTML, CSS ΠΈ JavaScript.
HTML ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π΅Π΅ ΡΡΡΡΠΊΡΡΡΡ. Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈ Π°Π±Π·Π°ΡΠ΅Π²? ΠΠ°ΠΊΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΈΠ΄Π΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ? Π‘ΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π»ΠΈ ΡΡΠ° ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΠΏΠΎΠ»Π΅?
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π±ΡΠ°ΡΠ·Π΅Ρ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π΅ΡΡΠΎ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ ... DOM!
ΠΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ, DOM - ΡΡΠΎ ... Π΄Π΅ΡΠ΅Π²ΠΎ? ΠΠ³Π°, Π΄Π΅ΡΠ΅Π²ΠΎ! ΠΠ°ΠΊ Π½ΠΈ ΡΡΡΠ°Π½Π½ΠΎ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π΅ΡΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΊΠ°ΠΊ Π΄Π΅ΡΠ΅Π²ΠΎ.ΠΠ°Π²Π°ΠΉΡΠ΅ Π΄Π°Π΄ΠΈΠΌ Π½Π°ΡΠ΅ΠΌΡ Π΄ΡΠ΅Π²Π΅ΡΠ½ΠΎΠΌΡ Π΄ΡΡΠ³Ρ ΠΏΡΠΎΠ·Π²ΠΈΡΠ΅ ... Ρ ΠΌ, Π° ΠΊΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ ΠΠΎΠΌΠΎ?
ΠΠΎΠΌΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠΎΠ΄Π΅Π»ΡΡ Π² ΠΏΡΠ΅ΡΡΠΈΠΆΠ½ΠΎΠΉ Π°ΡΡ-ΡΡΡΠ΄ΠΈΠΈ Β«ΠΠ΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΒ». ΠΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ° - ΠΏΠΎΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄ Ρ ΡΠ΄ΠΎΠΆΠ½ΠΈΠΊΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΈΡΠ΅Ρ ΠΏΠΎΡΡΡΠ΅Ρ (ΠΈΠ»ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ ΠΏΠΎΡΡΡΠ΅ΡΠΎΠ²).
Π ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ DOM ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ - ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠ°ΠΊ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ°). ΠΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎΠ·Ρ. ΠΡΠ°ΡΠ·Π΅Ρ ΡΠΈΡΡΠ΅Ρ ΠΏΠΎΡΡΡΠ΅Ρ. ΠΠΎΡΡΡΠ΅ΡΡ - ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π½Π° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ΅: ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΏΠΎΠ»Ρ, Π°Π±Π·Π°ΡΡ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.Π Π°Π±ΠΎΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΡΠ°Π±ΠΎΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΠΎΠΌΠΎ, ΡΡΠΎ Π½Π°Π΄Π΅ΡΡ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ·Π΅ ΡΠ΄Π°ΡΠΈΡΡ. ΠΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ Π² ΠΈΡΠΎΠ³Π΅ Π±ΡΠ΄ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΡΠΈ ΠΏΠΎΡΡΡΠ΅ΡΡ.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ DOM, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠΉ Π±ΡΠ°ΡΠ·Π΅Ρ, ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ Π½Π° ΡΡΠΎΠΉ ΡΠ°ΠΌΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«ΠΡΠΎΠ²Π΅ΡΠΈΡΡΒ». ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«ΠΠ»Π΅ΠΌΠ΅Π½ΡΡΒ»?
DOM API
ΠΡ ΡΠ°ΡΡΠΎ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ° Π±ΡΠ»Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ - ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΅Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π·Π΄Π΅ΡΡ ΠΈ ΡΠ°ΠΌ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ Π½ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΠ΅ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ DOM. Π₯ΡΠ΄ΠΎΠΆΠ½ΠΈΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΠΎΡΡΡΠ΅ΡΡ, ΠΏΠΎΠΊΠ° ΠΠΎΠΌΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅Ρ Π² Π½ΠΎΠ²ΡΡ ΠΏΠΎΠ·Ρ.
ΠΠ°ΠΊ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΠΎΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² Π½ΠΎΠ²ΡΡ ΠΏΠΎΠ·Ρ?
ΠΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Ρ Π½ΠΈΠΌ. ΠΠ½ ΡΠ»ΡΡΠ°Π΅Ρ. ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΡΠΎ Ρ ΡΡΠ΅ΠΉ ΠΠΎΠΌΠΎ Π΅ΡΡΡ ΠΈΠΌΡ: DOM API .
ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ DOM ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π½Π° JavaScript, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ DOM API ΠΈ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠ°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ
ΠΠ΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ Ρ Domo ΡΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠΌ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Π²Π΅Π±-ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π±ΡΠ» Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΡΠ°ΡΠΈΡΠ½ΡΠΌ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠ³ Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΏΠΎΠ²Π΅ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΡΠ°Π½ΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π² Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π° JavaScript.
ΠΠ΄Π½Π°ΠΊΠΎ Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ), ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Gmail ΠΈ Google Maps, Π»ΡΠ΄ΠΈ Π½Π°ΡΠ°Π»ΠΈ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ. ΠΠΌΠ΅ΡΡΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ ΠΈΠΌ Π½ΡΠΆΠ½Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅, Π±ΡΡΡΡΡΠ΅ ΠΈ ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ .
ΠΠΎΠ΄, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠ΅ΠΌΠ½ΡΠΌ ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠΌ. Π§Π°ΡΡΠΎ ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²Π° ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π» ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠΎΡΡΠΎΡΠ½Π½ΡΠΉ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ Ρ ΠΠΎΠΌΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Ρ Π°ΠΎΡΠΈΡΠ½ΡΠΌ ΠΈ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ.
ΠΠΎΠ·Π²ΠΎΠ»ΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π²Π°ΠΌ ΡΡΠΏΠ΅ΡΠ³Π΅ΡΠΎΡ, React:
Π‘ React ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΎΠ±ΡΠ°ΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Ρ ΠΠΎΠΌΠΎ. React Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ Π°Π³Π΅Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΈ Domo. ΠΠ½ ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΡΡΠ΅ΡΠ°.
React ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡ ReactJS ΠΈΠ»ΠΈ React.js, Π½ΠΎ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ - React.
React ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΊΠΎΠ΄Π° JavaScript. ΠΠ½ ΠΏΠΎΡΡΡΠΎΠ΅Π½ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ Π½Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ DOM API Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π². ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠ΄, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ React ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ Ρ DOM ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ.
React ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ²Π΅ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠΌΠΈ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°ΡΡΡΡΠ΅ΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ:
- ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
- ΠΠ΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
- Π Π΅Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ DOM
ΠΡΠ»ΠΈ ΡΡΠΈ ΡΠ΅ΡΠΌΠΈΠ½Ρ Π·Π²ΡΡΠ°Ρ Π΄Π»Ρ Π²Π°Ρ ΠΏΡΠ³Π°ΡΡΠ΅, Π½Π΅ ΠΏΡΠ³Π°ΠΉΡΠ΅ΡΡ! ΠΠ°ΠΊ ΠΈ ΠΎΠ±Π΅ΡΠ°Π», Ρ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΠΈ ΠΊΠ°ΡΠ°ΠΊΡΠ»ΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² Π½ΠΈΡ .ΠΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎ!
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅ ΡΠΈΡΠ°ΡΡ!
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ - ΡΡΠΎ ΡΠ»Π°Π³ΠΌΠ°Π½ΡΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ React. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΏΡΠΎΡΡΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ: ΡΠ°Π·Π΄Π΅Π»ΡΠΉ ΠΈ Π²Π»Π°ΡΡΠ²ΡΠΉ. ΠΡΠ»ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΡΠ°Π·Ρ, ΠΌΡ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ Π΅Π΅ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ΅ΡΠ°Π΅ΠΌ ΠΈΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² React - ΡΡΠΎ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ: ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΏΠΎΠΈΡΠΊ Π»ΡΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ, ΠΏΠΎΠ΄Π³ΠΎΠ½ΠΊΠ° Π΄ΡΡΠ³ ΠΊ Π΄ΡΡΠ³Ρ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΈ Ρ. Π.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Framer ΠΈ Figma, ΡΠΎΠΆΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ (ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² Sketch). ΠΠ½ΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ React, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΈ ΠΌΠΎΡΠ½ΡΠ΅. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ Π²Π΄ΠΎΡ Π½ΠΎΠ²Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°Π»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΡΠ»ΠΈ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π²ΡΠ΅, ΡΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² React ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π΄Π²ΡΠΌΡ Π²Π°ΠΆΠ½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ:
- ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΡΠ΅ΠΌΡ . ΠΠ½ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ.
- ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° . ΠΡΠ»ΠΈ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΊΠΎΠ΄ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΡΡΠΈ Π½Π΅ ΡΠ»ΠΎΠΌΠ°ΡΡΡΡ.
ΠΡΠ»ΠΈ ΡΡΠΎ Π·Π²ΡΡΠΈΡ Π΄Π»Ρ Π²Π°Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎ, Π½Π΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ! ΠΡΠΊΠΎΡΠ΅ Ρ ΠΏΠΎΠΊΠ°ΠΆΡ Π²Π°ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΡΡΠ½Ρ ΡΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°.
ΠΠ΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΉ UI
ΠΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ vs.Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΉ
ΠΡΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Ρ DOM API Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π² Π½ΡΠΆΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈ Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΡΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΠΎΠΌΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ ΡΡΠ°Π²ΠΈΡΡ Π³ΠΎΠ»ΠΎΠ²Ρ, ΡΡΠΊΠΈ ΠΈ Π½ΠΎΠ³ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΡΡΠ΅ΡΠ°.
Π§Π΅ΡΡ Π²ΠΎΠ·ΡΠΌΠΈ, ΡΡΠΎ Π·Π²ΡΡΠΈΡ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈ ΡΡΠ΅Π²Π°ΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ! ΠΠΎΡΠ΅ΠΌΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΠΎΠΌΠΎ , ΠΊΠ°ΠΊΠΎΠΉ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π²ΠΌΠ΅ΡΡΠΎ , ΠΊΠ°ΠΊ ΠΏΠΎΠ·ΠΈΡΠΎΠ²Π°ΡΡ? Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π² React. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΈΡΡΠ΅Ρ ΠΊΡΠ°ΡΠΊΠΈΠΉ Π½Π°Π±ΡΠΎΡΠΎΠΊ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ.React ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ ΠΠΎΠΌΠΎ, ΠΊΠ°ΠΊ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ·ΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ, ΡΠ²Π»ΡΡΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ, ΠΌΡ ΡΠ°ΡΡΠΎ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΠΎΠΌΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΌΠ΅Π½ΡΠ» ΠΏΠΎΠ·Ρ. ΠΡ ΡΠΈΡΡΠ΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΈΠ·ΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΈΡ Π² React Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΡΠΎΠΏΠΊΠΎΠΉ. React ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΡΡΠΈ ΡΠΊΠ΅ΡΡΠΈ Π²ΠΌΠ΅ΡΡΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΈΡ , ΠΊΠ°ΠΊ ΡΠ»ΠΈΠΏΠ±ΡΠΊ. ΠΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ!
Π‘ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠ΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΌΡ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ, ΡΡΠΎ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ² ; Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ , ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ . Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΡΠΌΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ DOM API ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ, Π° ΡΠΏΠΎΡΠΎΠ± React - Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΌ.
ΠΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ Π² ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π°, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ Π±ΡΠ»ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΌΠΈ. ΠΡΠ΄ΡΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ : Π³Π΄Π΅ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠΈΡΠ»Π°, ΠΊΠ°ΠΊ ΡΠΌΠ½ΠΎΠΆΠ°ΡΡ ΠΈ Ρ. Π. ΠΠΎ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΡΡΠΎ ΡΡΠ°Π»ΠΎ Π½Π΅ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌ, Π»ΡΠ΄ΠΈ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠΌΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. Π’Π°ΠΊ ΡΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Virtual DOM
ΠΠΎΠΌΠΈΠΌΠΎ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΆΠΈΠ·Π½ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² React ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠΎΠ³Π΄Π° Ρ React Π΅ΡΡΡ Π²ΡΠ΅ ΡΠΊΠ΅ΡΡΠΈ Π·Π°ΡΠ°Π½Π΅Π΅, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ , ΡΠ΄Π°Π»ΠΈΡΡ Π»ΡΠ±ΡΠ΅ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΠΎΠΌΠΎ ΠΈ Ρ ΡΠ΄ΠΎΠΆΠ½ΠΈΠΊ Π΄Π΅Π»Π°ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ.
ΠΡΠΈ ΡΡΠΊΠΈΠ·Ρ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Virtual DOM . ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ DOM Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΡΡΡΡΠ΅Π΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ΅ΠΌ DOM. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Virtual DOM Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ DOM. React Π±Π΅ΡΠ΅Ρ Π½Π° ΡΠ΅Π±Ρ Π³ΡΡΠ·Π½ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ DOM.
Π Π΅Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ DOM
ΠΡΠ΅ ΠΊΡΡΡΠ΅, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΎΡΡΠ°Π²ΠΈΡΡ Π² Π½Π°ΡΠΈΡ ΡΡΠΊΠΈΠ·Π°Ρ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΠΈ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΠΎΠ·Ρ.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΊΡΠΎ-ΡΠΎ ΠΏΡΠΎΡΠΈΡ ΠΏΠΎΡΡΡΠ΅ΡΡ ΠΠΎΠΌΠΎ Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠ»ΡΠΏΠ΅, Π½Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π³ΠΎΠ²Π°ΡΠΈΠ²Π°ΡΡ Ρ React. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΡΡΠ»Π°Π±ΠΈΡΡΡΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ React ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ Π·Π° Π½Π°Ρ.
Π¨Π»ΡΠΏΠ° - ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ°ΠΌ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ²ΡΠ·Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ React Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π΄Π»Ρ Π½Π°Ρ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ DOM. ΠΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ DOM Β«ΡΠ΅Π°Π³ΠΈΡΡΠ΅ΡΒ» Π½Π° Π»ΡΠ±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅.ΠΠ΅ Π½ΡΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ DOM. ΠΠ½ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ (Ρ ΠΏΠΎΠΌΠΎΡΡΡ React).
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ ΡΡΡΠΊΡ React ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠ²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ React, - , ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠΉ . ΠΠ΄Π΅Ρ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΡΠ·Π½Π°Π»ΠΈ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ, ΠΈ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² React. Π§ΡΠΎΠ±Ρ Π²Π°ΠΌ Π±ΡΠ»ΠΎ Π»Π΅Π³ΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, Ρ ΡΠΏΡΡΡΠΈΠ» Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ Π² ΠΊΠΎΠ΄Π΅ (Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, JavaScript). Π¦Π΅Π»Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΠ²ΠΈΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΈΠ΄Π΅ΡΠΌ, Π½Π΅ ΡΠ²ΡΠ·Π½ΡΠ² Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ JS.ΠΡΠ»ΠΈ Π²Π°ΠΌ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ JavaScript, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄.
Π₯ΠΎΡΠΎΡΠΎ. ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠΌΠΎΡΡ ΠΠΎΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΡΠ»ΡΠΏ π§’.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°ΡΡ
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠ΅ΠΉ:
- ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ: Π²Π΅ΡΡ Π½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»
- ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅: ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ
- ΠΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»: Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ» ΡΠ½ΠΈΠ·Ρ
ΠΡΠΎ ΡΠ°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π² ΠΊΠΎΠ΄Π΅ ΡΠ°ΠΊ:
<ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ />
<ΠΠ»Π°Π²Π½Π°Ρ />
<ΠΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ» />
ΠΡΠΎ ΠΏΠΎΡ
ΠΎΠΆΠ΅ Π½Π° HTML, Π²Π΅ΡΠ½ΠΎ? ΠΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ΅Π³ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ Π·Π°Π³Π»Π°Π²Π½ΡΡ
Π±ΡΠΊΠ²:
,
ΠΈ .ΠΡΠΎ Π½Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈ HTML. ΠΡΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ΅Π³ΠΈ.
Π§ΡΠΎ ΡΡΠΎ Π·Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠ΅Π³ΠΈ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅? ΠΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠΈΡΡ React, ΡΡΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ΅Π³Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, Π³ΡΡΠΏΠΏΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ° ΠΈ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎΠΈΡΠΊΠ°?
ΠΠΈΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Header!
<Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ>
Π’Π΅ΠΏΠ΅ΡΡ Π² ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠ½ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π΄Π²Π° Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ
ΡΠ΅Π³Π°:
ΠΈ
.Π§ΡΠΎ ΡΠ°ΠΌ?
ΠΠΎΠΌΠ½ΠΈΡΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² React? ΠΡ ΡΠΎΡΡΠ°Π²Π½ΡΠ΅ . ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² - ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ.
Π ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΎΡ Π²Π°ΠΌ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ (ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π»ΡΡΡΠΈΠΉ ΠΎΠΏΡΡ):
βοΈ ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ SearchBar Π² Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ». Π§ΡΠΎΠ±Ρ ΡΡ Π΄Π΅Π»Π°Π»? ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅:
ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ:
- ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΠ΅Π³ΠΈ Π²Π½ΡΡΡΡ
- ΠΡΠΎΠΊΡΡΡΠΈΡΠ΅ Π²Π²Π΅ΡΡ
, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΠ΄
ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
- ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅Π³ΠΈ
ΠΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π΄Π²Π° ΠΏΠΎΠΈΡΠΊΠ° Π±Π°ΡΡ? ΠΡ ΠΏΠΎΠ½ΡΠ»ΠΈ!
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠΎΠ·Π΄Π°Π½Ρ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
Β«Π‘ΠΎΡΡΠ°Π²Π½ΠΎΠΉΒ» ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΅Π³ΠΎ ΡΡΡΠΎΠΈΡΠ΅Π»ΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ².ΠΡΠΎ Π·Π²ΡΡΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΈΡΠΎΠ΄Π°, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΡ: Π² React, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅, ΠΎΠ½ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Β«ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΠ΅ΡΡΡΒ» ΠΊ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΠΎΠ³Π΄Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π» ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, Π²ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½ΠΈΠΌ.
βοΈ ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ΅ΠΊΡΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π² ΠΊΠΎΠ΄Π΅ SearchBar Π½ΠΈΠΆΠ΅:
Π§ΡΠΎ Π²Ρ Π²ΠΈΠ΄Π΅Π»ΠΈ? SearchBar ΠΊΠ°ΠΊ Π² Π²Π΅ΡΡ Π½Π΅ΠΌ, ΡΠ°ΠΊ ΠΈ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ.ΠΠ΅ΡΠ½ΠΎ? ΠΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Framer ΠΈ Figma.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ React ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ . ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ΅Π³Π° Π² Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Ρ ΠΎΡΠΈΠΌ. ΠΡΠ»ΠΈ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π΅Π³ΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡ
ΠΠΎΠΌΠ½ΠΈΡΠ΅? ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ React ΡΠ°ΠΊΠΆΠ΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ . ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ (ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π΅Π³ΠΎ) ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π±ΡΠ΄ΡΡ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΡΠ°Π½ΡΡΠ΅.
ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ SearchBar Π²ΡΡΠ΅, ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡ Π½ΠΈΠΉ ΠΈ Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Ρ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΡΠΌ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ). ΠΠΎ ΡΡΠΎ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΈΠ΄Π΅Ρ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΠΈ ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΈ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½Π°Ρ
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ Π΄Π²ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΡΡΠΏΠ΅ΡΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠΌ React: Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠΌΡ UI ΠΈ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΠΌ DOM .
Π ΡΠ°ΠΏΠΊΡ Π΄Π»Ρ ΠΠΎΠΌΠΎ ΡΠΆΠ΅ Π²ΡΠ±ΠΈΡΠ°Π»ΠΈ? ΠΡΠ»ΠΈ Π½Π΅Ρ, ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΠ»ΡΠΏ Π² ΡΠ°Π±Π»ΠΈΡΠ΅.Π¨Π»ΡΠΏΠ° Π½Π° Π³ΠΎΠ»ΠΎΠ²Π΅ ΠΠΎΠΌΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΠ΅ΡΡΡ, Π΄Π°?
Π ΡΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΡΠ΅Π»ΡΠΎΠΊ ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ Β«Π²ΡΠ±ΡΠ°Π½Π½Π°Ρ ΡΠ»ΡΠΏΠ°Β». ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΡΠ²ΡΠ·Π°Π»ΠΈ DomoWithHat
Ρ Β«Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΠ»ΡΠΏΠΎΠΉΒ», ΡΠ»ΡΠΏΠ° Π½Π° Domo Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ. ΠΠΎΠΌΠ½ΠΈΡΡ? Π Π΅Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ DOM .
ΠΠΎΡ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° DomoWithHat
.
<ΠΠΎΠΌΠΎ />
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΊΠΎΠ΄Π΅ Π½Π°ΠΌ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ (ΠΠΎΠΌΠΎ ΠΈ ΡΠ»ΡΠΏΠ° Π² div), ΠΈ Β«ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΒ» Π΄Π°Π½Π½ΡΠ΅ (Β« type = {hat}
Β»).ΠΠΎΠ³Π΄Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ
ΡΠ»ΡΠΏΠ°
ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ (ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΡΠ»ΡΠΏΡ), ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ DOM. ΠΠ°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ Π±ΡΡΡΡΡΠΉ Π½Π°Π±ΡΠΎΡΠΎΠΊ, ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄. ΠΠΎΡ ΠΈ Π΄Π²Π΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ²Π΅ΡΡ
ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ React: Declarative UI , ΠΏΠ»ΡΡ Reactive DOM Updates .
ΠΠΎΠ»ΠΏΠ°ΡΠΎΠΊ
$ 50
ΠΠΎΠΊΡΡΠ²Π°Π»ΠΎ Π΄Π»Ρ Π³ΠΎΠ»ΠΎΠ²Ρ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Ρ ΡΠΈΠ³ΡΡΠ½ΠΎΠΉ ΠΌΠ°ΠΊΡΡΠΊΠΎΠΉ ΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ.
Π ΠΊΠΎΡΠ·ΠΈΠ½Ρ
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ! ΠΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π°ΠΆΠ½ΡΠΉ ΡΡΠΎΠΊ React! Π Π΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½Π΅: Π·Π°ΡΠ΅ΠΌ Π½Π°ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΡΠΆΠ΅Π½ React? ΠΠΎΡ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΈΠ΄Π΅ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ React ΠΌΠΎΡΠ½ΡΠΌ: ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ DOM.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Ρ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ React (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ!) ΠΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ. ΠΠΎΠ³Π΄Π° Ρ ΠΏΠΈΡΠ°Π» ΠΏΠ΅ΡΠ²ΡΡ Π²Π΅ΡΡΠΈΡ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ Π½Π°Π·Π°Π΄, Ρ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠ» Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΠ°Ρ . ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ° Π²Π΅ΡΡΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½Π°!
ΠΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ², Π·Π°ΡΡΠΎΠ½ΡΡΡΡ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ:
- DOM (ΠΎΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°)
- DOM API
- React ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
- ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΡΠ΅ΠΌΡΠΌΠΈ ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌΠΈ
- ΠΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ vs.Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ DOM
- Π Π΅Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ DOM
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ° ΡΡΠ°ΡΡΡ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π΄Π»Ρ Π²Π°Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ!
ΠΠ΄Π½Π° ΠΈΠ· ΠΌΠΎΠΈΡ ΡΠ΅Π»Π΅ΠΉ Π½Π° 2021 Π³ΠΎΠ΄ - Π½Π°ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ»Π΅Π·Π½ΡΡ , ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΠΈ ΡΠ°Π·Π²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΡ . Π₯ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΡ Π±ΡΠ΄ΡΡΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ? ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ Π½ΠΈΠΆΠ΅. ΠΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΏΠ°ΠΌΠ°, ΠΎΡΠΊΠ°ΠΆΠΈΡΠ΅ΡΡ ΠΎΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡΡ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React Native? ΠΠ°ΠΊ ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ React? Π’Π΅ΡΠΌΠΈΠ½Ρ React ΠΎΠ±ΡΡΡΠ½Π΅Π½Ρ ΠΏΡΠΎΡΡΡΠΌ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΈ ΡΠΈΡΡΠ½ΠΊΠ°ΠΌΠΈ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Redux: ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠ°
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ:
design-react
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Redux? ΠΠ°ΡΠ΅ΠΌ Π²Π°ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ (ΠΊΠ°ΠΊ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΡ)? Π§ΡΠΎ ΡΠΌΠ΅Π΅Ρ Redux? Π― ΠΎΡΠ²Π΅ΡΡ Π½Π° ΡΡΠΈ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΡΠΎΡΡΡΠΌ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΊΠ°ΡΠ°ΠΊΡΠ»Π΅ΠΉ ΠΈ ΠΏΠΎΠΌΠΎΠ³Ρ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ ΠΎΠ±ΡΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React? - Twilio
React (ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ReactJS) - ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JavaScript Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². ΠΠ½ΠΎΠ³Π΄Π° Π΅Π³ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΊΠ°ΡΠΊΠ°ΡΠΎΠΌ .
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π° Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². Π₯ΠΎΡΡ React ΡΠ°ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ JavaScript, Π΅Π³ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π² Node.js ΠΈΠ»ΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ React Native. Π₯ΠΎΡΡ React ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΎΠ½ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Facebook.
React Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Facebook, Π½ΠΎ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ. ΠΠ³ΠΎ ΡΠ°ΡΡΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ Angular ΠΈΠ»ΠΈ Vue.js, Π½ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄.ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π²ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ²ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΠΈ ΡΡΡΡΠΊΡΡΡΠ΅ Π²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ½ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΡ Π½Π° ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, Π° Π·Π°ΡΠ΅ΠΌ ΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ / Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² ΡΡΠ°ΡΡΡΡ ΠΈ ΠΊΠ½ΠΈΠ³Π°Ρ .
ΠΠ΄Π½Π° Π²Π΅ΡΡ , ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ React, - ΡΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π²Π°ΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ. React ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠΌ Β«ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²Π½ΠΈΠ·, ΡΠΎΠ±ΡΡΠΈΡ Π²Π²Π΅ΡΡ Β» Ρ ΡΠΏΠΎΡΠΎΠΌ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ
React ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ React Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅Π΅ Β«Π΄Π΅ΡΠ΅Π²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²Β» . ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠ²ΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄Π²ΡΡ Π²Π΅ΡΠ΅ΠΉ:
- Props - Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠ·Π²Π½Π΅
- Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ - Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ΠΎ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ ΡΠ΅ΡΠ΅Π· props
.
ΠΡΠ»ΠΈ Π»ΡΠ±ΠΎΠ΅ ΠΈΠ· Π΄Π²ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, React Π·Π°ΠΏΡΡΡΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ Π·Π°ΡΡΠΎΠ½ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²Π²Π΅ΡΡ ΠΏΠΎ Π΄Π΅ΡΠ΅Π²Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ.
ΠΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ?
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ:
function ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ) { returnΠΡΠΈΠ²Π΅Ρ, {props.name}
; }
ΠΠ³ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡ JavaScript:
class Welcome ΡΠ°ΡΡΠΈΡΡΠ΅Ρ React.ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ { ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ() { returnΠΡΠΈΠ²Π΅Ρ, {this.props.name}
; } }
Redux
Π’Π΅ΡΠΌΠΈΠ½, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ React, - ΡΡΠΎ Redux. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ°ΡΡΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ Π±Π΅Π· Π΄ΡΡΠ³ΠΎΠ³ΠΎ. Π¦Π΅Π»Ρ Redux - ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ± ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Flux. ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Β«Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉΒ», ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
Redux Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ React ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡ Redux Π² ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ React. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ React - ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠ΅ΡΡΡΡ, Π½ΠΎ ΠΌΡ ΠΏΠΎΠΌΠΎΠΆΠ΅ΠΌ Π²Π°ΠΌ Π½Π°ΡΠ°ΡΡ Π·Π΄Π΅ΡΡ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ Node.js ΠΈ npm 5.2+, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ React:
ΠΡ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΠ΅ ΡΡΡΠ°ΡΠ΅Π²ΡΡΡ Π²Π΅ΡΡΠΈΡ ΡΡΠΎΠ³ΠΎ SDK.
ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠ²Π΅ΡΠ° JSON API
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΡ, ΡΠ°ΠΊΡΡ ββΠΊΠ°ΠΊ CodeSandbox.io, ΠΏΡΡΠΌΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
Twilio Flex ΠΏΠΎΡΡΡΠΎΠ΅Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊ React, ΡΠ°ΠΊ ΠΈ Redux. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄Π»Ρ Flex, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Flex Ρ ΠΏΠΎΠΌΠΎΡΡΡ Redux ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Twilio Flex Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ create-flex-plugin
.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ React, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΈΠ· ΡΡΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ²:
ReactJS ΠΈ React Native: ΠΎΠ±Π·ΠΎΡ, ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ
ΠΡΠ΅ΠΌΡ ΡΡΠ΅Π½ΠΈΡ: 15 ΠΌΠΈΠ½ΡΡ
ReactJS ΠΈ React Native - ΡΡΠΎ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π΄Π»Ρ Π²Π΅Π±- ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Facebook.ΠΡΠΎΠ΅ΠΊΡ Π±ΡΠ» Π·Π°ΠΏΡΡΠ΅Π½ ΠΠΆΠΎΡΠ΄Π°Π½ΠΎΠΌ Π£ΠΎΠ»ΠΊΠΎΠΌ, ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠΌ-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ Facebook, Π² 2011 Π³ΠΎΠ΄Ρ. Π§ΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΎΠ½ ΡΠ΅ΡΠΈΠ» ΡΠΎΠ·Π΄Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π±Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ React, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°Ρ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ React.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React?
ReactJS - ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JavaScript, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΡΠ΅ΡΠ°Π΅Ρ Π² ΡΠ΅Π±Π΅ ΡΠΊΠΎΡΠΎΡΡΡ JavaScript ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΈΡ ΠΎΡΠ΅Π½Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΡΠΌΠΈ ΠΈ Π±ΡΡΡΡΠΎ ΡΠ΅Π°Π³ΠΈΡΡΡΡΠΈΠΌΠΈ Π½Π° Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.ΠΡΠΎΠ΄ΡΠΊΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Facebook ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π±ΡΠ»Π° Π²ΡΠΏΡΡΠ΅Π½Π°, ΠΎΠ½Π° ΡΡΠ°Π»Π° ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠΉ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΠ΅Π²ΠΎΠ»ΡΡΠΈΠΎΠ½Π½ΠΎΠΌΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ²ΡΠ΅ΠΌΡ Π΄Π°Π²Π½ΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ React ΠΈ Angular, Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΠ°Π·Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ React, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠ΅ΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ:
ΠΠ°ΠΊ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ React
ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΈ ΠΏΡΠΎΡΡΠΈΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ React Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ
ΠΠΎΡΠ΅ΡΠΈΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ React Π½Π° Github, ΡΡΠΎΠ±Ρ Π²Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ Π² Π΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΠ»ΠΈ ΡΠ³Π»ΡΠ±ΠΈΡΡΡΡ Π² ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ
ΠΠΎΡΠ΅ΡΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ Stack Overflow React, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΎΡΠ²Π΅ΡΡ Π½Π° ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΠΈΠ»ΠΈ ΠΎΡΠ΅Π½Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎ React
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ React
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ Π½Π° CodePen, CodeSandbox, Glitch ΠΈΠ»ΠΈ Stackblitz Π΄Π»Ρ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π°.
ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ Π²ΡΠΏΡΡΠΊΠ°ΠΌΠΈ React
ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° React Hooks, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
ΠΡΠ°ΡΠΊΠ°Ρ ΠΈΡΡΠΎΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΠ΅ΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ReactJS, ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ React, ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ, ΠΏΠ΅ΡΠ΅Π΄ Facebook ΡΡΠΎΡΠ»Π° ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ - ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Ρ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ Ρ ΠΎΡΠ΅Π»ΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π»Π΅Π½ΡΡ Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ Π»ΡΠ΄ΡΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌΠΈ ΡΠ°Ρ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Facebook ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΈ ΠΠΆΠΎΡΠ΄Π°Π½ Π£ΠΎΠ»ΠΊ ΡΠ΅ΡΠΈΠ» ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript.ΠΠ½ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ XHP, ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Facebook, Π² ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ JS. ΠΠ΄Π΅Ρ ΠΊΠ°Π·Π°Π»Π°ΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ, Π½ΠΎ Π² 2011 Π³ΠΎΠ΄Ρ Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠΏΡΡΡΠΈΠ»Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ReactJS Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΈΠΌΠ±ΠΈΠΎΠ·Π° JavaScript ΠΈ XHP. ΠΠ°ΡΠ΅ΠΌ Facebook ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ ReactJS ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ Π»ΡΠ±Π°Ρ Π΄ΡΡΠ³Π°Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. Π 2013 Π³ΠΎΠ΄Ρ Facebook Π²ΡΠΏΡΡΡΠΈΠ» React ΠΊΠ°ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ JavaScript Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
ΠΠ²Π° Π³ΠΎΠ΄Π° ΡΠΏΡΡΡΡ ΡΠ° ΠΆΠ΅ Π³ΡΡΠΏΠΏΠ° ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ² Π²ΡΠΏΡΡΡΠΈΠ»Π° React Native, Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ iOS ΠΈ Android.ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π±ΡΠ» ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΡΠ΅Ρ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°Ρ , ΡΡΠΎ ΠΈ ReactJS, ΠΈ Π²ΡΠΊΠΎΡΠ΅ Π±ΡΠ» ΠΏΡΠΈΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Β«ΡΠ½Π°ΡΠ°Π»Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅Β».
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ React Native? React Native ΡΠΎΡΠ΅ΡΠ°Π΅Ρ Π² ΡΠ΅Π±Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° JavaScript. Π₯ΠΎΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΆΠ΅Π»ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π΄Π»Ρ iOS ΠΈ Android, ΠΎΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ . Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² PhoneGap ΠΈ Cordova, React Native Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ WebView, ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠ΄.ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΎΠ΄Π½ΡΠΌ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²ΠΈΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΡΠ°ΠΊ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ React ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΠΌ, ΡΠ΅ΠΌ React Native ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΎΠ½ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π» ΠΎΡ ReactJS.
ΠΠ»ΡΡΡ ReactJS
ΠΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ DOM Π² React ΡΠΏΡΠΎΡΠ°Π΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΈ ΡΡΠΊΠΎΡΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
DOM (ΠΎΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°) - ΡΡΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠΎΡΠΌΠ°ΡΠ°Ρ HTML, XHTML ΠΈΠ»ΠΈ XML.ΠΡΠ»ΠΈ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΡΠΎ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ Π½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»Π°, ΡΡΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΡ ΠΈ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΈΠΌΠ΅ΡΡΠ΅Π΅ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΡ ΡΠΎΡΠΌΡ. ΠΠ΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ HTML Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ .
ΠΠ΅ΡΠ΅Π²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² HTML DOM
ΠΡΡΠΎΡΠ½ΠΈΠΊ: W3Schools
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ DOM Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ Π²Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅, Π·Π°ΠΏΡΠΎΡΡ ΠΈ Ρ. Π. Π‘Π΅ΡΠ²Π΅Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ°Π·Π½ΠΈΡΡ, Π²ΡΠ·Π²Π°Π½Π½ΡΡ ΡΡΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΎΡΠ²Π΅Ρ.Π§ΡΠΎΠ±Ρ ΠΎΡΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π΄Π΅ΡΠ΅Π²ΡΡ DOM Π²ΡΠ΅Π³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΡΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ³ΠΎΠ½ΠΎΠΌΠΈΡΠ½ΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π΅ΡΠ΅Π²ΡΡ DOM ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΡΡΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΠΎΠΌΠ°Π½Π΄Π΅ React ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ DOM. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Real DOM, ReactJS ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ²ΠΎΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ ΠΊΠΎΠΏΠΈΡ - Virtual DOM. ΠΠ½ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π΄Π°ΠΆΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, Π½ΠΎ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² React, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΡΠ΅ΡΠ΅Π· ΠΌΠΈΠ½ΡΡΡ, ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ Π΄Π°Π½Π½ΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅.
Π Π΅Π°Π»ΡΠ½ΡΠ΅ ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ DOM
ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΡΠΌΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²ΡΡΠΎΠΊΠΎΠ΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΎΠ½ ΠΏΠΈΡΠ΅Ρ Π² ΡΠ°ΡΠ΅ Facebook ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΠΈΠ΄ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡΡΡ Π»Π΅Π½ΡΡ Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π² React ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡ DOM ΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ React ΡΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ Π½Π΅ΠΌΡ.
ΠΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π±ΡΡΡΡΠ΅Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ UI-ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΠΎΡΡΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ (ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ).ΠΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ²ΡΡΠΈΠ»ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, Π½ΠΎ ΠΈ ΡΡΠΊΠΎΡΠΈΠ»ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² React Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π²ΡΠ΅ΠΌΡ
ΠΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Facebook ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»Π° Ρ React, - ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΊΠΎΠ΄Π° Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ Π·Π½Π°ΡΠΈΠΌΡΠΌ ΡΡΡΠ΅ΠΊΡΠΎΠΌ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠ°Ρ . ΠΠ½ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ Π°ΠΊΡΠΈΠ²Ρ. ΠΡΠ»ΠΈ Π±Ρ ΠΎΠ½ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ, ΠΈΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΠ΅ Π»ΠΎΠ³ΠΎΡΠΈΠΏΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ½ΠΎΠ²Π° ΠΈ ΡΠ½ΠΎΠ²Π°. ΠΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ: ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ - ΡΡΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π΄ΠΈΠ·Π°ΠΉΠ½Π°.Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΡΡΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² Π³ΠΎΠ»ΠΎΠ²Π½ΡΡ Π±ΠΎΠ»Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΠ°Π±ΠΎΡΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ.
Π£ΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ Π»Π΅Π³ΠΊΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ React ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Ρ, ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ°ΠΌΠΈ ΠΏΠΎ ΡΠ΅Π±Π΅, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΡΠΌ, ΡΡΠ³ΠΎΠ½ΠΎΠΌΠΈΡΠ½ΡΠΌ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΡΡΠΈΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΠ»Π΅ΠΊΡΠ° ΠΡΠΈΠ³ΠΎΡΡΠ½Π° ΠΈΠ· WalmartLabs ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ReactJS.
ΠΠ΄Π½ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ Π² ReactJS ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄
React ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½ΠΈΡΡ ΠΎΠ΄ΡΡΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΡΡΡΡΠΊΡΡΡΠ°Ρ Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ΄ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΌ.
Π‘Π°ΠΌΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ JS-ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ, Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ - ΡΡΡΡΠΊΡΡΡΡ ΠΏΠΎΡΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ . Π ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π²Π»ΠΈΡΡΡ Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ. Facebook ΡΠ΄Π°Π»ΠΈΠ» ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² React, ΡΠ΄Π΅Π»Π°Π² Π΅Π³ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°.
ΠΠΌΠ΅ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π½ΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ReactJS ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ - Π½ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠΉ. Π ΡΠ°ΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π²Π»ΠΈΡΡΡ Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅. Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, Π²ΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ, - ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π±ΡΠ΄ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Facebook Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ: ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ ΠΎΡΠΊΡΡΡΠ° Π΄Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°
React Π±ΡΠ» ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ JavaScript ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π²ΡΠΏΡΡΠ΅Π½Π½ΡΡ Facebook Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ReactJS ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° - ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΎΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠΈΡ Π₯Π°Π½Ρ ΠΈΠ· Facebook Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ Π΄Π²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ - ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈΠ΅ - Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° GitHub. Π’Π΅ΠΏΠ΅ΡΡ ReactJS Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 5-Π΅ ΠΌΠ΅ΡΡΠΎ Π² ΡΠ΅ΠΉΡΠΈΠ½Π³Π΅ Trending Π½Π° GitHub Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 152 000 Π·Π²Π΅Π·Π΄. Π Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ 1400 ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
Redux: ΡΠ΄ΠΎΠ±Π½ΡΠΉ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠΈΡΠ°ΡΡ Π³Π½Π΅Π²Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Redux Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Ρ ΡΠ°Π΄ΠΎΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Ρ Angular ΠΈΠ»ΠΈ Vue ΠΈ ΡΡΠΎ ΠΎΠ½ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½ΡΠΌ Π΄Π»Ρ React Π²ΠΎΠΎΠ±ΡΠ΅, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ ΡΡΠΎ Π·Π½Π°Π΅ΠΌ.ΠΠ΄Π½Π°ΠΊΠΎ Π·Π΄Π΅ΡΡ ΡΡΠΎΠΈΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ Redux ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΡΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° React, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ Π² 50-60% ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ React. ΠΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Redux Ρ Angular, Π½ΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ React Π·Π½Π°Π΅Ρ Redux, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΡΠ΅, ΡΠ΅ΠΌ Π·Π½Π°Π½ΠΈΠ΅ Angular. Π Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΡΠΈΠ²ΠΎΠΉ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ React-Redux. ΠΡΠ°ΠΊ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ?
Redux ΡΠΏΡΠΎΡΠ°Π΅Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π³Π΄Π΅ ΡΡΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΡΠ΅ ΡΡΡΠ΄Π½Π΅Π΅.Redux Ρ ΡΠ°Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡ ΠΊ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ ΠΈ ΠΎΠ±ΡΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅) ΠΈ ΡΡΠΎΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π² Π΄Π΅ΡΠ΅Π²Π΅, Π±Π΅Π· Redux, Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΠΡΠΎ.
ΠΠ»Π°Π²Π½ΡΠΉ ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π½ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅ΠΌΡ ΠΏΡΠ΅Π΄ΠΊΡ ΡΡΠΈΡ Π΄Π²ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π² Π΄Π΅ΡΠ΅Π²Π΅
ΠΡΠΈΠΌΠ΅Ρ ΠΎΡ ΠΠ°ΡΠΊΠ° ΠΡΠΈΠΊΡΠΎΠ½Π° ΠΈ Π‘ΠΎΡΠΈΠΈ Π¨ΡΠΌΠ΅ΠΉΠΊΠ΅Ρ Π½Π° fullstackreact.ΠΊΠΎΠΌ
Redux ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΡΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ Π½Π°ΠΏΡΡΠΌΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π½Π΅ΠΌΡ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌΠΈ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»Π΅Π³ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π³ΠΎΡΡΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ Π²ΡΡΠ΅, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Redux Π² ΠΊΠ½ΠΈΠ³Π΅ Β«ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ReduxΒ» ΠΡ Π°Π½ΡΠ° ΠΠΌΠΌΠ°Π½ΡΡΠ»Ρ.
React Hooks: ΡΠ»ΡΡΡΠ΅Π½Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ
ΠΠΎ Π½Π°ΡΠ°Π»Π° ΡΠ΅Π²ΡΠ°Π»Ρ 2019 Π³ΠΎΠ΄Π° Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² React Π±ΡΠ»ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΡΠΊΠ°Π·Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅: ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ MobX ΠΈΠ»ΠΈ Redux, ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
React ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» ΡΠ²ΠΎΠΉ Hooks API Π² Π²Π΅ΡΡΠΈΠΈ 16.8. Π‘Π°ΠΌΡΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ Hook ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π²ΡΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°. ΠΠ°ΡΡΠ΄Ρ Ρ ΡΡΠΈΠΌ, Ρ ΡΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΅Π΅ ΡΡΡΡΠΊΡΡΡΡ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ»Π΅ΠΉ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΠΈ ΡΠ°ΡΡΠΈ ΠΎΡΠ½ΠΎΡΡΡΡΡ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ ΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΈΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°. Π§ΡΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Hooks ΠΈΠ·Π±Π°Π²Π»ΡΠ΅Ρ ΠΈΡ ΠΎΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΎΡΠΈΠΈ JavaScript, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ React.
ΠΠ°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Wide React ΠΈ Redux
Π React, ΠΈ Redux ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΠΏΡΠΈΠ»ΠΈΡΠ½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡ ΠΆΠΈΠ·Π½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ React Developer Tools Π΄Π»Ρ Chrome ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Firefox ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ DOM ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ React Sight, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π΄Π΅ΡΠ΅Π²ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈ ΠΎΠΏΠΎΡ; ΠΠΎΠ²ΡΠΎΡΠ½ΠΎ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ DevTools, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΎΠΉ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Reselect, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠ² Π΄Π»Ρ Redux.Redux DevTools Profiler Monitor ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²β¦ Chrome DevTools. Π Π΅ΡΡΡ Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ.
ΠΠΈΠ½ΡΡΡ React
Π’Π΅ΠΌΠΏΡ ΡΠ°Π·Π²ΠΈΡΠΈΡ
ΠΡΠΎΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΡΠΎΡΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΠ°ΠΉΠΊΠ»ΠΎΠΌ ΠΠΆΠ΅ΠΊΡΠΎΠ½ΠΎΠΌ ΠΈ Π Π°ΠΉΠ°Π½ΠΎΠΌ Π€Π»ΠΎΡΠ΅Π½Ρ Π² Modern Web: Β«ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΠΌΡ Π΅Π΄Π΅ΠΌ Π·Π΄Π΅ΡΡ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ Ρ Π΄Π²ΡΠΌΡ ΡΠΏΡΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠΈΠ½Π°ΠΌΠΈ, ΠΊΠ°ΠΏΠΎΡ ΠΏΡΠΎΡΡΠΎ Π²Π·Π»Π΅ΡΠ΅Π» ΠΏΠ΅ΡΠ΅Π΄ Π»ΠΎΠ±ΠΎΠ²ΡΠΌ ΡΡΠ΅ΠΊΠ»ΠΎΠΌ, ΠΈ ΠΌΡ ΠΏΠΎΠ½ΡΡΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Ρ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ! Β» ΠΠΊΡΡΠΆΠ°ΡΡΠ°Ρ ΡΡΠ΅Π΄Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΈΠ·ΡΡΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ°Π±ΠΎΡΡ.ΠΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ, ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΠ΄ΡΠΈ Π² Π½ΠΎΠ³Ρ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΡΠ΅ΠΌΠΏΠ°ΠΌΠΈ. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠ·Π½Π°ΡΡ, ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ API React ΡΡΠ°Π» Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΌ ΠΈ ΡΠ΅Π΄ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΏΠ΅ΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΊΠ°ΡΠ°ΡΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ.
ΠΠ»ΠΎΡ Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ Π²ΠΎΡΡ ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌ Π²ΡΠΏΡΡΠΊΠ°ΠΌ Π½ΠΎΠ²ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ². Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΈ Π½ΠΎΠ²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Redux ΠΈ Reflux, ΠΎΠ±Π΅ΡΠ°ΡΡ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ»ΡΡΡΠΈΡΡ Π²ΡΡ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ React.Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Ρ ReactJS. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π½Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ React ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ ΠΈ ΡΡΠΊΠΎΡΡΡΡΡΡ ΡΠ°ΠΊ Π±ΡΡΡΡΠΎ, ΡΡΠΎ Π½Π΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΈΡΠ°ΡΡ Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠΈΡΡΡ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΈΠΌΠΈ Π² ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ .
Β«HTML Π² ΠΌΠΎΠ΅ΠΌ JavaScript!Β» - JSX ΠΊΠ°ΠΊ Π±Π°ΡΡΠ΅Ρ
ReactJS ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ JSX. ΠΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ HTML ΠΈ JavaScript. Π£ JSX Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°ΡΠΈΡΠ° ΠΊΠΎΠ΄Π° ΠΎΡ ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ), Π½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π½Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΡΠΈΡΠ°ΡΡ JSX ΡΠ΅ΡΡΠ΅Π·Π½ΡΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΡΡΠ°ΡΡΠΉ ΡΠΏΠ°Π³Π΅ΡΡΠΈ-ΠΊΠΎΠ΄.Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΡ ΠΆΠ°Π»ΡΡΡΡΡ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ JSX ΠΈ, ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ
ΠΡΠ»ΠΈ ΠΎΠΏΠ°ΡΠ΅Π½ΠΈΡ, ΡΡΠΎ Google ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΡ ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ΠΎΠΌ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΡΠΈ ΠΎΠΏΠ°ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ, ΠΈ Π²ΠΎΠΊΡΡΠ³ Π΅ΡΡΡ ΡΠ°Π·ΠΎΠ±Π»Π°ΡΠ°ΡΡΠΈΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ. Π‘Π°ΠΌ Google Π΅ΡΠ΅ Π² 2014 Π³ΠΎΠ΄Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΠ», ΡΡΠΎ ΠΈΡ ΡΠΊΠ°Π½Π΅ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΡΠΈΡΠ°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ. ΠΡΠ°ΠΊ, ΠΌΡ Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ Π³ΠΎΠ²ΠΎΡΠΈΡΡ, ΡΡΠΎ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ReactJS Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ Google.Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², Π½Π°ΡΡΡΠΏΠΈΠ» 2020 Π³ΠΎΠ΄.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²Π°ΠΌ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΡΠΆΠΈΡΡΡ Ρ Google, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠΎΠΎΠ±ΡΠ°Π»ΠΈ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ . Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ ΠΏΠΎ SEO ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π²Π°ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ React Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Google Search Console, ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΠΈΡ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΊΠ°Π½Π΅ΡΡ.
Π₯ΠΎΡΡ ΡΡΠΎ Π½Π΅ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΏΠΎΠΈΡΠΊΠΎΠ²Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ Π²Π°ΡΠΈΠΌ ΡΡΠΈΠ»ΠΈΡΠΌ ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ°.ΠΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ SEO ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ React Π·Π΄Π΅ΡΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React Native?
Π§Π΅ΡΠ΅Π· Π΄Π²Π° Π³ΠΎΠ΄Π° ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΡΡΠΊΠ° ReactJS 2015 Π³ΠΎΠ΄Π° Facebook ΡΠΎΠ·Π΄Π°Π» React Native. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ReactJS ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², React Native - ΡΡΠΎ Π³ΠΈΠ±ΡΠΈΠ΄Π½Π°Ρ ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ iOS ΠΈ Android, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎ 95 ΠΏΡΠΎΡΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π°, ΠΎΡΡΠ°Π²Π»ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ.
React ΠΈ React Native: Π² ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ°? ΠΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½Ρ ΡΠ΅Π»ΡΠΌΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
- Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ReactJS ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ DOM Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΊΠΎΠ΄Π° Π±ΡΠ°ΡΠ·Π΅ΡΠ°, React Native ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ API Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΡΡΠ° Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Android ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ API Java ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ API Objective-C Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Π² iOS.
- React Native Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ HTML. ΠΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π½ΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Ρ ReactJS, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ React Native. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ
Π²ΠΌΠ΅ΡΡΠΎ ΠΈ
Π²ΠΌΠ΅ΡΡΠΎ .- ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ React Native Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ CSS, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ CSS, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ API React Native.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΠ°Π·Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π½Π° React Native, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ.
ΠΠ°ΠΊ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ React Native
ΠΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ React Native 0.62
ΠΠΎΡΠ΅ΡΠΈΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ React Native Github
ΠΠ»ΡΡΡ React Native
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠ΅Π΄Π° React Native - ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ Π±ΡΡΡΡΡΡ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΡΠ΅Π΄ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ ReactJS, ΠΈ Π²ΠΎΡ ΡΡΠΎ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π½Π°ΡΡ ΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ :
React Native ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ JavaScript - Π±ΡΡΡΡΡΠΉ ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΠ²ΡΠΎΡΠΈΠΌ Π΅ΡΠ΅ ΡΠ°Π· - JavaScript ΠΎΡΡΠ°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ Π±ΡΡΡΡΡΡ ΠΈ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.ΠΠ°ΠΊ ΠΌΡ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΈ Π² Π½Π°ΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎ ΠΏΠ»ΡΡΠ°Ρ ΠΈ ΠΌΠΈΠ½ΡΡΠ°Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° JavaScript, ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½ΠΎΠΌΡ ΠΎΠΏΡΠΎΡΡ Stack Overflow, 67,7% ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ JavaScript. ΠΡΠ΅Π»ΠΎΡΡΡ JS-ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°ΠΌ Π±ΡΡΡΡΠΎ ΠΈΠ·ΡΡΠ°ΡΡ ΡΠ·ΡΠΊ ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°ΡΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ Π½ΠΈΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΡΡΠΎ Π½Π°ΠΉΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° React Native Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, React Native ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΈ ΡΠΎΡΠ΅ΡΠ°Π΅Ρ Π² ΡΠ΅Π±Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° JavaScript ΠΈ ReactJS. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° JS ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΡΡΡΡΠ΅Π΅ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ; ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°.
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±ΡΡΡΡΠ΅Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Apple ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ JavaScript Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΈΠΊΠ»Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.
ΠΠ°ΡΠΈΠ²Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² React Native ΠΏΠΎΠ²ΡΡΠ°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
React Native Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΊΠΎΠ΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ PhoneGap, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΡΡΡ ΠΊΠΎΠ΄ ΡΠ΅ΡΠ΅Π· WebView, ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ. Π₯ΠΎΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ WebView Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, React Native Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ ΡΠ΅Π»Π΅Π²ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ Π΄Π»Ρ iOS ΠΈΠ»ΠΈ Android ΠΈ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ΄ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ API.ΠΡΠΈ ΡΡΠΎΠΌ React ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΎΡΠ΅Π½ΠΊΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
Π Π΅Π½Π΄Π΅ΡΠΈΠ½Π³ WebView ΠΏΡΠΎΡΠΈΠ² ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° React Native
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ»Ρ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ React ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°Π±ΠΎΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° Objective-C ΠΈ Java "ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ". ΠΡΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π΅Π»ΡΠ·Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π° Π΄Π²ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ , Π½ΠΎ ΠΎΠ½ΠΈ Π½Π°ΡΠ΅Π»Π΅Π½Ρ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ.ΠΠΎ ΡΡΡΠΈ, Π²Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΠ»ΠΈ, Π΅ΡΠ»ΠΈ Ρ Π½ΠΈΡ Π΅ΡΡΡ ΠΎΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Java ΠΈ Objective-C, Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠ° ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° React Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅ΡΠΈ ΡΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ. ΠΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Facebook Ads Manager ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ 87 ΠΏΡΠΎΡΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π° Π΄Π»Ρ Android ΠΈ iOS.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, React Native ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ Π²Π΅Π±-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Chrome ΠΈΠ»ΠΈ Safari, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠ½ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ.
ΠΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΎΡΠ»Π°Π΄ΠΊΠ°
React Native ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠ»Π°ΠΆΠ΅Π½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ 0.62, Π²ΡΠΏΡΡΠ΅Π½Π½ΠΎΠΉ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΌΠ°ΡΡΠ° 2020 Π³ΠΎΠ΄Π°, React Native Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Flipper, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ Π² ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°Ρ Android ΠΈ iOS. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ, React Native ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Flipper ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ React Native.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Flipper ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΡΠΈΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ. ΠΠ°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΎΡΡΠ΅ΡΠΎΠ² ΠΎ ΡΠ±ΠΎΡΡ Ρ ΡΡΡΡΠΎΠΉΡΡΠ² Android ΠΈ iOS, ΠΏΡΠΎΡΠΌΠΎΡΡ Π²ΡΠ΅Ρ ΡΠ΅ΡΠ΅Π²ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ React DevTools Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ, Flipper ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡΠ½ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΈΠ· NPM, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌΠΈ ΡΠ°Π±ΠΎΡΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ.
React Native ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ReactJS, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π½Π° ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
React Native ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ReactJS Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ JavaScript, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠΌΠ΅Π΅Ρ Π²ΡΠ΅ ΡΠ²ΠΎΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°. Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ React Native Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΡΠ·ΡΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π»Π°Π΄Π΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ JavaScript ΠΈ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ React.ΠΠΎ, ΠΊΠ°ΠΊ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ, ΠΎΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² ΠΊΠΎΠ΄ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.
ΠΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π±Π΅Π· Π²Π»ΠΈΡΠ½ΠΈΡ Π½Π° Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠ»Π°Π²Π½ΠΎΠΉ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΊΠ°ΠΊ ΡΠΎΠ΄Π½ΡΠ΅.
ΠΠΈΠ½ΡΡΡ React Native
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, React Native Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ReactJS. Π‘ΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΆΠ΅Π»Π°ΡΡ Π»ΡΡΡΠ΅Π³ΠΎ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ.
ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ
ΠΡ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΠ»ΡΡΠΎΠ². ΠΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΡ, Π·Π°ΠΏΠΎΠ»Π½ΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΠ΅ Π·Π²Π΅Π½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΠΆΠ΅Π»ΡΠ΅ Π² Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π½Π΅Π΄ΡΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΠΎ-Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡΡΡΠ΅Π½ΠΈΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ΄Π½Π°ΠΊΠΎ Π΄ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π΅ΡΡΠΈ Π½Π° Π½Π΅Ρ ΡΠΌΡΡΠ» ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π°ΠΌ Π²ΡΠ΅ Π΅ΡΠ΅ Π½ΡΠΆΠ½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ-Π½ΠΎΡΠΈΡΠ΅Π»ΠΈ (Objective-C, Java ΠΈΠ»ΠΈ ΠΎΠ±Π°) Π² Π·Π°ΠΏΠ°ΡΠ΅.Π’Π°ΠΊ ΡΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ React Native Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ Photoshop. ΠΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π½Π°ΡΠ΅Π»ΠΈΠ²Π°Π΅ΡΠ΅ΡΡ Π½Π° Π·Π°Π΄Π°ΡΠΈ, ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π³ΡΡΠ±ΠΎΠΉ ΡΠΈΠ»Ρ, ΠΎΠΏΡΡΠ° JS Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ.
Π‘ΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, React Native ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΄ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π΄Π»Ρ iOS ΠΈ Android, Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ. Π ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π½Π°ΡΡ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ°, ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ, Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²ΡΠΏΡΡΠΊΠ°Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°. ΠΡΠΎ ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ React Native Π½Π΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ²ΠΎΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ .
ΠΡΡΡΠ°ΡΡΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ SDK
React Native ΡΠ°ΡΡΠΎ ΡΠΎΡΠΌΠΎΠ·ΠΈΡ, ΠΊΠΎΠ³Π΄Π° iOS ΠΈΠ»ΠΈ Android ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠ²ΠΎΠΈ SDK. ΠΠΎΠΌΠ°Π½Π΄Π° React Native Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΊΠΎΠ΄Π° Ρ Π½ΠΎΠ²ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ. Π, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ, ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ Π²ΡΠ΅ ΡΠ°ΡΡΠΈ API ΡΡΠ°Π·Ρ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΠΎΠ»Π½Π°Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ React Native ΠΈ Π½ΠΎΠ²ΡΠΌΠΈ SDK ΡΠ°ΡΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½Π°ΡΠ΅ΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ΠΉ: Xamarin vs React Native vs Ionic.
ΠΠ΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΡΠΎΠΈΡ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΆΠΈΡΠ½ΡΠΌ ΡΡΠΈΡΡΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ°Π±ΠΎΡΡ Ρ React Native, ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡΡΠΌΠΎ ΡΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ: Β«ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΌΠ½Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π»ΠΈ ΡΠ΅ΡΡΠ΅Π·Π½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° React Native?Β» ΠΡ Π±Ρ Π½Π΅ ΠΏΠΎΡΠ»ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅ΠΊΠΎ (ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ RN Π½ΠΈΠΆΠ΅). ΠΠΎ Π²ΠΎΡ Π»ΠΈΡΡ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ React Native:
- Π‘Π±ΠΎΠΈ ΠΏΡΠΈ Π³ΠΎΡΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π·Π°ΡΡΠ΄ΠΊΠ΅
- ΠΠ΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ React Native
- ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠΌΡΠ»ΡΡΠΎΡΠΎΠΌ
- ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠ΅Π°ΠΊΡΠΈΠ΅ΠΉ-Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠ΅ΠΉ
- ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ°ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²
- Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ
Π’Π°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ React Native ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°ΡΡΠΎ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΡΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·Ρ (React Native, Android ΠΈ iOS) Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠΉ.
ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΡΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, ΠΈ ΠΏΡΡΡ ΠΊ Π±Π΅ΡΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π½Π΅Π»Π΅Π³ΠΊΠΈΠΌ.
ReactJS ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ React Native
ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ Π²Π½Π΅Π΄ΡΠΈΠ»ΠΈ ReactJS ΠΈΠ»ΠΈ React Native, ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ. ΠΠΎΡ ΡΠ°ΠΌΡΠ΅ Π·Π°ΠΌΠ΅ΡΠ½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ Facebook.
Instagram. ΠΠΎΠΌΠ°Π½Π΄Π° Instagram Ρ ΠΎΡΠ΅Π»Π° ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡ, ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅. Π ReactJS ΠΊΠ°Π·Π°Π»ΡΡ Π»ΡΡΡΠΈΠΌ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ.ΠΠ΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΈ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π±ΡΡΡΡΡΠΌ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. Π’Π΅ΠΏΠ΅ΡΡ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅, ΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Instagram ΡΠΎΠ·Π΄Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ React.
Netflix . Netflix, ΠΏΡΠΈΠ½ΡΠ²ΡΠΈΠΉ ReactJS Π² 2015 Π³ΠΎΠ΄Ρ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΅Π³ΠΎ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ ΡΠ»ΠΎΠ΅ΠΌ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Gibbon. Π’ΠΎΠ³Π΄Π° Netflix Π²ΡΠ±ΡΠ°Π» React ΠΈΠ·-Π·Π° ΡΠ²ΠΎΠ΅ΠΉ ΠΎΠ΄Π½ΠΎΡΡΠΎΡΠΎΠ½Π½Π΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΡΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Airbnb . ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ ΡΠ΅ΡΠΈΠ»Π° ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° ReactJS ΠΈΠ·-Π·Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π° ΠΊΠΎΠ΄Π° ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ.Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΠ°Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.
Uber Eats . ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π·Π°ΠΊΠ»ΡΡΠ°Π»Π°ΡΡ Π² ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ ΡΡΠ΅Ρ ΡΠΈΠΏΠΎΠ² ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ²: ΡΠ΅ΡΡΠΎΡΠ°Π½ΠΎΠ², Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². Π‘Π°ΠΌΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, Π±ΡΠ»Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ΅ΡΡΠΎΡΠ°Π½Π° Ρ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠ°ΠΊ Π΄Π»Ρ Android, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ iOS. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° React Native Π±ΡΠ» Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ. Π₯ΠΎΡΡ Π½Π° React Native ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Uber Eats, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄ΠΎΡΡΠΈΠ³Π»ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ².ΠΠΌΠΊΠΎΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΠΏΠΎΠΌΠΎΠ³Π»Π° ΠΈΠΌ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΠΈ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΡΠ»ΡΠΆΠ±Ρ.
SoundCloud Pulse. ΠΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅ SoundCloud ΠΏΡΠΈΡΠ»Π° Π² Π³ΠΎΠ»ΠΎΠ²Ρ ΠΈΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π°ΡΡΠΈΡΡΠΎΠ² Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΡΠ΅ΡΠ½ΡΠΌΠΈ Π·Π°ΠΏΠΈΡΡΠΌΠΈ ΠΈ Π°Π²ΡΠΎΡΡΠΊΠΈΠΌΠΈ ΠΏΡΠ°Π²Π°ΠΌΠΈ, ΡΠ΅ΡΠ²ΠΈΡ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΌΡΠ·ΡΠΊΠΎΠΉ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π» ΡΠΆΠ΅ 10 Π»Π΅Ρ. Π ΡΠ°ΠΌΠ°Ρ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π»Π°ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²ΠΏΠΈΡΠ°ΡΡΡΡ Π² ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΠ· ΡΡΠ΅Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ. React Native ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π» Π·Π΄Π΅ΡΡ ΠΏΠΎ Π΄Π²ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΡΠΈΠ»ΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.ΠΠΎ-Π²ΡΠΎΡΡΡ , Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ RN Π½Π°ΡΡΠ΄Ρ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΆΠΈΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ.
Π₯Π°Π½ΡΠΊΠ°Ρ Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡ. ΠΠ΄Π½Π° ΠΈΠ· ΠΊΡΡΠΏΠ½Π΅ΠΉΡΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ Π΄Π»Ρ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° Π½Π° ReactJS. Khan Academy ΡΠ΅ΡΠΈΠ»Π° ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΏΠΎΡΡΠ°Π» ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡ Π½Π΅Π½ΡΠΆΠ½ΠΎΠ΅ ΡΠ΅ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠ»Π°Π²Π½ΠΎ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π·Π°ΠΌΠ΅Π½ΡΡ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
ΠΠ»ΡΠΌΠ±Π΅ΡΠ³ . ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΆΡΡΠ½Π°Π» Π²ΡΠ±ΡΠ°Π» React Native ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.Π ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ Π² Π±Π»ΠΎΠ³Π΅ Tech at Bloomberg Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ, ΡΡΠΎ ΡΡΠΎ Β«ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ°Π²Π΄ΡΠ²Π°Π΅Ρ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π°ΡΠΈΠ²Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΒ».
Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° React Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½Π°, ΡΡΠΈΡΡΠ²Π°Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ Π΅Π΅ ΠΏΡΠΈΠ½ΡΠ»ΠΈ. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΡΠ»ΡΡΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π±Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ½ΡΠΉ React Native ΡΡΡΠ΅ΠΌΠΈΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΏΠΎΡΠΎΠ± Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ. ReactJS, Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΈΠ· ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ΄Π΅ΠΈ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ Π±ΡΠ» ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»ΠΈΡ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΏΠΎΠ²ΡΡΠΈΡΡ Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ.
Π React ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠ»ΡΡΡΠ°ΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ±Π΅ΡΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ², Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΠΈ ΡΡΠ΄ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΠΎΡΠΌ, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π³ΠΈΠ±ΠΊΠΎΠΉ ΠΈ Π»Π΅Π³ΠΊΠΎΠΉ. ΠΡΠΎΡ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ ΡΠ΅Π»ΠΈΠ· ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΠ» Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ Π½Π° 2020 Π³ΠΎΠ΄.
ΠΡΠΎΡ ΠΏΠΎΡΡ - ΡΠ°ΡΡΡ Π½Π°ΡΠ΅ΠΉ ΡΠ΅ΡΠΈΠΈ Β«Π₯ΠΎΡΠΎΡΠ΅Π΅ ΠΈ ΠΏΠ»ΠΎΡ ΠΎΠ΅Β». ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΏΠ»ΡΡΠ°Ρ ΠΈ ΠΌΠΈΠ½ΡΡΠ°Ρ ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΡΠΈΡΠ°ΠΉΡΠ΅ Π² Π΄ΡΡΠ³ΠΈΡ ΡΡΠ°ΡΡΡΡ ΡΠ΅ΡΠΈΠΈ:
ΠΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Xamarin
ΠΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ° Π½Π° JavaScript
Π₯ΠΎΡΠΎΡΠ΅Π΅ ΠΈ ΠΏΠ»ΠΎΡ ΠΎΠ΅ Π² Node.js Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ .NET Framework
Π₯ΠΎΡΠΎΡΠ΅Π΅ ΠΈ ΠΏΠ»ΠΎΡ ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π»Π΅Π½Π°
ΠΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Android
.