ΠΊΠ°ΠΊ ΠΎΡΠΊΡΡΡΡ ΡΠ΅Π°ΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅
React: Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ React ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΌΠΎΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ JavaScript Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΈ Π² ΠΎΠ±ΠΎΠ·ΡΠΈΠΌΠΎΠΌ Π±ΡΠ΄ΡΡΠ΅ΠΌ ΡΡΠ° ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±Ρ Π±ΡΡΡΡΠΎΠΉ ΠΈ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ React. Π’Π°ΠΊ ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΡΡΡ ΠΏΡΡΠΌΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅!
ΠΠΎΡΠ΅ΠΌΡ React?
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°
ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ React. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΌΡ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° CodeSandbox ΠΈ CodePen. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΠ°Π·Ρ Π½Π°ΡΠ°ΡΡ ΠΈΠ³ΡΠ°ΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ±!
React Π² CodeSandbox
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° https://codesandbox.io/s ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Β«ReactΒ».
ΠΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Π²Ρ ΠΎΠΊΠ°ΠΆΠ΅ΡΠ΅ΡΡ Π² ΡΡΠ΅Π΄Π΅ React, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° Π½Π°ΡΡΡΠΎΠ΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ create-react-app. ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π°Π»Π΅Π΅ Π² ΡΡΠ°ΡΡΠ΅! ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π½Π°ΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π΅Π· Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΡΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±! Π’Π°ΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠ°ΠΊ ΡΠ±ΠΎΡΠΊΠ°, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ, Π²ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° Π²ΡΠ΅, Π½Π°Π΄ ΡΠ΅ΠΌ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ!
React Π² CodePen
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ React
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Create React App
ΠΡΠ΅, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ ΠΎΡΠΊΡΡΡΡ Π½Π°Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ! ΠΠ°ΠΉΡΠ΅ Π΅ΠΌΡ Π»ΡΠ±ΠΎΠ΅ ΠΈΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Π°ΠΌ Π½ΡΠ°Π²ΠΈΡΡΡ..
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ. ΠΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΎΠ½ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π²Π°ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π£ΡΠΏΠ΅Ρ ! Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΡΡΡΡ ΠΏΠ°ΠΏΠΊΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΡΡΡΠΊΡΡΡΡ.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΡΠ°ΠΉΠ» package.json :
ΠΠ°ΠΏΡΡΠΊ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΠΌ Π½Π°Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ! ΠΠ· ΠΏΠ°ΠΏΠΊΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΡΡΠΈΡΠ΅:
ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Π½Π° localhost:3000
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ create-react-app, Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ React, React-DOM ΠΈ React-Scripts. Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΊΡΠ°ΡΠΊΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ create-react-app.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Create-React-App
ΠΡΠΎΠ΄ ΡΠ±ΠΎΡΠΊΠ°
Π‘Π°ΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° build ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π²Π°Ρ ΠΊΠΎΠ΄ React Π² ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ Π±ΡΠ°ΡΠ·Π΅Ρ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Babel). ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ Π»ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡ Π²ΡΠ΅ Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ JavaScript Π² ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Ejecting
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
ΠΠΏΠ΅ΡΠ°ΡΠΊΠΈ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΡΡΠ° ΠΎΡΠΈΠ±ΠΎΠΊ, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΎΠ²Π΅ΡΠ»Π΅ΠΉ, ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊ:
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
React.js: ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
ΠΠ²ΡΠΎΡ ΡΡΠ°ΡΡΠΈ, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ, ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ, ΠΊ Π½Π΅ΡΡΠ°ΡΡΡΡ, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² ΠΏΠΎ React Π½Π΅ ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ³ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠ΅Π½Π½ΡΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΈΡΠΌΠ°ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π’Π°ΠΊΠΈΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π΄Π°ΡΡ ΡΠΎΠΌΡ, ΠΊΡΠΎ ΠΏΠΎ Π½ΠΈΠΌ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Β«ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Β» ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Ρ React.
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°ΡΡΡΠΈΡΠ°Π½ΠΎ Π½Π° Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΈΠΌΠ΅ΡΡΠΈΡ Π·Π½Π°Π½ΠΈΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ HTML, JavaScript ΠΈ CSS, Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΎΡΠ½ΠΎΠ²Ρ React ΠΈ ΡΠ°ΠΌΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ, ΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉΡΡ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ.
ΠΠΎΡΠ΅ΠΌΡ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π²ΡΠ±ΠΈΡΠ°ΡΡ React?
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ ΠΏΡΠΈΡΡΡΠΏΠΈΠΌ ΠΊ Π΄Π΅Π»Ρ, ΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΠ°ΡΡ ΡΠ»ΠΎΠ² ΠΎ ΡΠΎΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ React ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ Π½Π°ΠΈΠ»ΡΡΡΠ΅ΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ ΡΡΠ΅Π΄ΠΈ ΡΡΠ΅Π΄ΡΡΠ² Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ UI-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ². ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎΠΈΡ Π²ΡΠ±ΡΠ°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ React? ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ β ΡΡΠ°Π²Π½ΠΈΠΌ Π΄Π²Π° ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² β React ΠΈ Angular. ΠΠ°Π΄ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π² ΡΡΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΈ Π½Π°Π±ΠΈΡΠ°ΡΡΠΈΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Vue.js, Π½ΠΎ ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌΡΡ React ΠΈ Angular.
βΠΠ΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²
React-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ (Π° Π½Π΅ Π² ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π΄Π»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°, ΠΏΠΎΡΠ²ΡΡΡΠ½Π½ΡΡ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ). ΠΡΠΎ, ΠΊΡΠΎΠΌΠ΅ ΠΏΡΠΎΡΠ΅Π³ΠΎ, ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠΌΠΎΠ² ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Π ΡΠΎΡΡΠ°Π²Π΅ Angular, Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π΅ΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠ΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π»ΠΈ ΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ ΡΠ΅ΠΌ, ΡΠ΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΆΠ΄Π°ΡΡ ΠΎΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²? Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π² Angular ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ, Π΄Π°ΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ.
Π React, ΠΏΡΠΈΡΡΡΠΏΠ°Ρ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄. Π’ΡΡ Π½Π΅Ρ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π½ΡΠΆΠ½Π° Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°, Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ ΠΎΠ΄ΠΈΡ Π΄ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΈΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
βΠ§ΡΡΠΊΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
βΠΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ ΠΊΡΠΈΠ²Π°Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
ΠΡΠΈΠ²Π°Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ β ΡΡΠΎ Π²Π°ΠΆΠ½ΡΠΉ ΡΠ°ΠΊΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ UI-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°. Π ΡΡΠΎΠΉ ΡΠ²ΡΠ·ΠΈ Π½Π°Π΄ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π² React ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ, ΡΠ΅ΠΌ Π² Angular. ΠΡΠ»ΠΈ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ JavaScript, ΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΠΈΡΡΡΡ ΠΏΠΈΡΠ°ΡΡ React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π·Π° Π΄Π΅Π½Ρ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΠΈΡΡΡΡ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ΅Π½Ρ ΠΈ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ.
ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Angular, ΡΠΎ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΅ΡΠΈΡΠ΅ ΠΎΡΠ²ΠΎΠΈΡΡ ΡΡΠΎΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, Π²Π°ΠΌ ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΈΠ·ΡΡΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ (Angular ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ TypeScript), Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΠΈΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Angular ΠΈ ΠΏΡΠΈΠ²ΡΠΊΠ½ΡΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΠΌΠΈ.
βΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ
Π Angular ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π²ΡΡΡΠΎΡΠΎΠ½Π½Π΅ΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠΎΡΠΌΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΌΠΈΠ½ΡΡΠΎΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°. ΠΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅, Π΅ΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΈΠ΄ΡΡ Π½Π΅ ΡΠ°ΠΊ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠΎΡΠ½ΠΎ Π·Π½Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ°Π»ΠΎ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π React, Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΡΡΠΎΡΠΎΠ½Π½ΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° Π΄Π°Π½Π½ΡΡ . ΠΡΠΎ β Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠ»ΡΡ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²ΡΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΡΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π²ΡΠ΅Π³Π΄Π° ΡΠΎΡΠ½ΠΎ Π·Π½Π°Π΅Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ Π΄Π°Π½Π½ΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
βΠ€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅
Π― ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠΈΠ»ΡΠ½Π΅ΠΉΡΠΈΡ ΡΡΠΎΡΠΎΠ½ React ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π΅ ΠΏΡΠΈΠ½ΡΠΆΠ΄Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ². Π Angular ΠΆΠ΅ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² Π²ΠΈΠ΄Π΅ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎΠΌΡ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, Π½Π΅ Π΄Π°Π²Π°Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ².
Π React Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡΠΎΠ² ΡΠΈΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ UI ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ Π³Π»ΠΎΡΠΊΠΎΠΌ ΡΠΈΡΡΠΎΠ³ΠΎ Π²ΠΎΠ·Π΄ΡΡ Π°.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ React, ΠΊΠΎΡΠΎΡΡΠ΅, Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΊΠ»ΠΎΠ½ΡΡ Π²Π°Ρ Π² ΡΡΠΎΡΠΎΠ½Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ ΠΊ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅.
ΠΡΠ°ΠΊΡΠΈΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
βNode.js
Node.js β ΡΡΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ JavaScript-ΠΊΠΎΠ΄Π°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠ³ΠΎΠ΄ΡΡΡΡ Π½Π°ΠΌ Π΄Π»Ρ React-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠ»ΠΈ ΡΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΅ΡΡ Ρ Π²Π°Ρ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° β ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ.
βΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠ΄Π΅ΡΡ ΠΌΡ, Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Ρ React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ create-react-app ΠΎΡ Facebook. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΠΎ ΡΠ°ΠΌΡΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ create-react-app ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ²ΠΎΡ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½ΡΠΆΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΡΡΠΎ ΠΈΠ·Π±Π°Π²Π»ΡΠ΅Ρ Π΅Π³ΠΎ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡ ΠΏΠΎΠ΄Π±ΠΈΡΠ°ΡΡ.
ΠΠ°ΡΠ΅ΠΌ, Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ°ΠΊΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠ° ΡΡΠΎΠΌ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π°. ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Π’ΡΡ ΠΌΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² ΠΏΠ°ΠΏΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΊΡΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠ΅ΡΠ΅ΠΉΠ΄Ρ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://localhost:3000/.
βΠ‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°
Π Π°Π·Π±Π΅ΡΡΠΌΡΡ ΡΠ΅ΠΏΠ΅ΡΡ Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ΠΎ React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²Π°ΡΠ΅ΠΉ IDE (Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Visual Studio Code).
Π€Π°ΠΉΠ» index.html
ΠΠ΄Π΅ΡΡ Π½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΡΡΡΠΎΠΊΠ°
. ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΡ Π±ΡΠ΄Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π½Π°ΡΠ΅ React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ΅ΡΡ ΡΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΌΠ΅Π½ΡΠ½ Π½Π° ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° Π²ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌ.
Π€Π°ΠΉΠ» index.js
ΠΠΎΡ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½Π° Π·Π° Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΡ Π½Π°Π·ΡΠ²Π°Π΅ΠΌ Β«React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌΒ», Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ:
Π€Π°ΠΉΠ» App.js
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π°ΡΡΠΈΠ±ΡΡ className β ΡΡΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ Π°ΡΡΠΈΠ±ΡΡΠ° class Π² HTML. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ CSS-ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΡΠ΅Π»ΡΡ ΠΈΡ ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ class Π² JavaScript ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ, Π΅Π³ΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ΠΈ Π°ΡΡΠΈΠ±ΡΡΠ°.
ΠΠΎΠ²ΡΠΎΡΠΈΠΌ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΡΡΡΠ½ΠΈΠ»ΠΈ ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ :
βΠ Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ β1: Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π²Π΅Π·Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² React ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡ Π΄Π²Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°. ΠΠ΅ΡΠ²ΡΠΉ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² (Class Component), Π²ΡΠΎΡΠΎΠΉ β Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² (Functional Component). ΠΠ°ΠΊ Π²Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, Π² Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠ»Π°ΡΡΡ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² ΠΏΠΎ React Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΡ .
Π§ΡΠΎ ΠΏΠ»ΠΎΡ ΠΎΠ³ΠΎ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΊΠ»Π°ΡΡΠΎΠ²? ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΡΠΆΠ΅Π»ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°ΡΡΠ°ΡΡΡΡ. ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Π½Π΅ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ, ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ (Π° ΡΡΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ). Π ΡΠ΅Π»ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²Π΅Π΄ΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ, ΡΠΈΠ³ΡΡΠ°Π»ΡΠ½ΠΎ Π²ΡΡΠ°ΠΆΠ°ΡΡΡ, Β«ΡΡΡΠ΅Π»ΡΠ΅Ρ ΡΠ΅Π±Π΅ Π² Π½ΠΎΠ³ΡΒ». ΠΠΎΡΡΠΎΠΌΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°Ρ , Ρ ΠΏΠΎΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» Π±Ρ ΠΈΠΌ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΠΌΡ ΡΡΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ? Π ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΌΡ ΡΠ±ΡΠ°Π»ΠΈ ΠΊΠ»Π°ΡΡ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ render ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ Π²ΠΈΠ΄Π° function App() <. >. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ ΡΡΡΠ΅Π»ΠΎΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ES6, ΡΠΎ Π½Π°Ρ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π΅ΡΡ Π»ΡΡΡΠ΅:
ΠΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ Π½Π°Π΄ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠΎΡΠ°Π·ΠΌΡΡΠ»ΠΈΡΠ΅ Π½Π°Π΄ ΡΡΠΈΠΌ. Π ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ, Π½Π΅Ρ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠΎ β ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΡΡΠ°Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ°. Π Π°Π·Π²Π΅ ΡΡΠΎ Π½Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ?
ΠΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π³ΠΎΡΠ°Π·Π΄ΠΎ Π»Π΅Π³ΡΠ΅ ΡΠΈΡΠ°ΡΡ, ΡΠ°Π±ΠΎΡΠ°Ρ Ρ Π½ΠΈΠΌΠΈ, ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ ΠΎΡΠ²Π»Π΅ΠΊΠ°ΡΡΡΡ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
Π’ΡΡ Π½Π°Π΄ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Ρ ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π² ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ², ΠΎΠ½ ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° ΠΌΠ΅Π½ΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ, Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ Π»Π΅Π³ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ React. ΠΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ Π² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ ΠΎΡΠ²ΠΎΠΈΡΠ΅ΡΡ Π² Π΄Π΅Π»Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΡΠΎ, ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ β Π²Π·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
βΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ
Π‘Π²ΠΎΠΉΡΡΠ²Π° (props) β ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ React. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Β«ΡΠ²ΠΎΠΉΡΡΠ²Π°Β»? ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΡΠΎ ΠΏΠΎΠ½ΡΡΡ, Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌ. Π ΡΡΡΠ½ΠΎΡΡΠΈ, ΡΠ²ΠΎΠΉΡΡΠ²Π° β ΡΡΠΎ ΠΈ Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
ΠΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ES6 ΠΏΠΎ Π΄Π΅ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²:
Π§ΡΠΎ Π΅ΡΠ»ΠΈ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΌΡ, Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π±Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΊΠ»Π°ΡΡΠ°Ρ ? Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Greetings Π²ΡΠ³Π»ΡΠ΄Π΅Π» Π±Ρ ΡΠ°ΠΊ:
βΠΡΠΈΠ½ΡΠΈΠΏ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ
ΠΡΠΈΠ½ΡΠΈΠΏ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ (Single Responsibility Principle, SRP) β ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ. ΠΠ½ Π³ΠΎΠ²ΠΎΡΠΈΡ Π½Π°ΠΌ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ Π·Π°Π΄Π°ΡΡ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ. ΠΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ, Π½Π΅ ΡΠ»Π΅Π΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΡΠΎΠΌΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ, ΠΊΠΎΠ΄ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡΡΡ Π² ΠΊΠΎΡΠΌΠ°ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ.
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΈΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ? Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π² ΠΎΠ΄Π½ΠΈΡ ΠΈ ΡΠ΅Ρ ΠΆΠ΅ ΡΠ°ΠΉΠ»Π°Ρ . Π ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅ ΠΌΡ ΡΠ°ΡΡΠΎ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ.
ΠΠΎΠ²ΠΈΡΠΊΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π½Π°Ρ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Greetings ΠΈ App Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΠ°ΠΊ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ Π½Π°ΡΡΡΠ°Π΅Ρ SRP.
ΠΠ°ΠΆΠ΅ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ (Π²ΡΠΎΠ΄Π΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Greetings ) Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ .
ΠΠΎΠΌΠ΅ΡΡΠΈΠΌ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Greetings Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ»:
ΠΠ°ΡΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ App :
βΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (state) β ΡΡΠΎ Π΅ΡΡ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ React. ΠΠΌΠ΅Π½Π½ΠΎ Π·Π΄Π΅ΡΡ Ρ ΡΠ°Π½ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β ΡΠΎ Π΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ. ΠΡΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΠΎ-ΡΠΎ, Π²Π²Π΅Π΄ΡΠ½Π½ΠΎΠ΅ Π² ΠΏΠΎΠ»Π΅ ΡΠΎΡΠΌΡ? ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΡΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΎΡΠΊΠΈ, Π½Π°Π±ΡΠ°Π½Π½ΡΠ΅ ΠΈΠ³ΡΠΎΠΊΠΎΠΌ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΠΎΠΉ ΠΈΠ³ΡΠ΅? ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΠΆΠ΅ Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΡΡΡΡ ΡΠΎΡΠΌΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π²Π²Π΅ΡΡΠΈ ΡΠ²ΠΎΡ ΠΈΠΌΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π·Π΄Π΅ΡΡ Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΊΠ»Π°ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ. Π ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ°, Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π·Π΄Π΅ΡΡ.
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²Π²Π΅Π΄ΡΠ½Π½ΠΎΠ΅ Π² ΠΏΠΎΠ»Π΅? Π React Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ DOM Π½Π°ΠΏΡΡΠΌΡΡ. Π Π΅ΡΠΈΡΡ ΡΡΡ Π·Π°Π΄Π°ΡΡ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ event.target.value β ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΡΠ» Π² ΠΏΠΎΠ»Π΅ ΡΠΎΡΠΌΡ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ β Π΅Π³ΠΎ ΠΈΠΌΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΌΡ Π½Π΅ ΠΎΠ±ΡΡΠ²ΠΈΠ»ΠΈ onFirstNameChange Π² Π²ΠΈΠ΄Π΅ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π²Π΅ΡΠΈ ΠΎΠ±ΡΡΠ²Π»ΡΠ»ΠΈΡΡ Π±Ρ Π² Π²ΠΈΠ΄Π΅ ΡΠ²ΠΎΠΉΡΡΠ² ΠΊΠ»Π°ΡΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΡΡΠ΅Π»ΠΎΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° Π½Π΅ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΡΠ»ΠΈ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ΅ΡΠΎΠ΄Π°, ΡΠΎΠ³Π΄Π° this Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ΠΎ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΎΡΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄, Π° Π½Π΅ ΠΊ ΠΊΠ»Π°ΡΡΡ, ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ. ΠΡΠ° ΠΌΠ΅Π»ΠΎΡΡ ΡΠ°ΡΡΠΎ ΡΠ±ΠΈΠ²Π°Π΅Ρ Ρ ΡΠΎΠ»ΠΊΡ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ². ΠΡΠΎ β ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π° Π½Π΅ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
βΠΡΠΎΠ²Π΅ΡΠΊΠ° Π΄Π°Π½Π½ΡΡ , Π²Π²Π΅Π΄ΡΠ½Π½ΡΡ Π² ΡΠΎΡΠΌΡ
Π Π΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ , Π²Π²Π΅Π΄ΡΠ½Π½ΡΡ Π² ΡΠΎΡΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΠΈΠΌΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΡΡΠΎΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΈΠ· ΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΠΈΡΡ Π±ΡΠΊΠ²Ρ.
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π Π°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²Π²ΠΎΠ΄Π°, ΠΌΡ, Π΄Π»Ρ Π½Π°ΡΠ°Π»Π°, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ: firstNameError :
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ
ΠΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π΅ ΡΠ΄Π°Π»Π°ΡΡ β ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΡΠ»ΠΈ ΠΈΠΌΡ ΠΏΡΠΎΡΠ»ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ. Π’ΡΡ ΠΌΡ, ΡΠ°Π΄ΠΈ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ΅ΡΠ½Π°ΡΠ½ΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ JavaScript.
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ onBlur
ΠΠ΅ΡΠΎΠ΄ render
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° render() :
Π’ΡΡ ΠΌΡ ΡΠ½ΠΎΠ²Π° ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π΅ΡΡΡΡΠΊΡΡΡΠΈΡΡΡΡΠΈΠΌ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
βΠ‘ΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΡ
ΠΡΠ»ΠΈ Π²Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΠΈ Ρ ΡΠ΅Π±Ρ ΡΠΎ, ΠΎ ΡΡΠΌ ΠΌΡ ΡΡΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ, ΡΠΎ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π½Π°ΡΠ° ΡΠΎΡΠΌΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠΈΠΌΠΏΠ°ΡΠΈΡΠ½ΠΎ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΠΌ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ ΡΡΠΈΠ»ΡΠΌΠΈ:
ΠΡΠΈΠ·Π½Π°Ρ, ΡΡΠΎ Ρ Π½Π΅ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ, Π½ΠΎ ΡΠΎ, ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ, Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ΅ΠΉΡΠ°Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΡΠ΅ΠΆΠ΄Π΅. ΠΠΎΡ ΠΊΠ°ΠΊΠΎΠΉ ΡΡΠ°Π»Π° ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΡΠΌΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
Π‘ΡΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ ΡΠΎΡΠΌΠ° Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅
βΠ Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ β2: ΠΈΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎΡ ΡΠ°ΠΉΠ» ΡΠΎΠ·Π΄Π°Π½, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠΌ Π΅Π³ΠΎ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ SimpleComponent :
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΡΠ΄Π° ΡΠΈΡΠ΅, ΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΠΌΠΈΡΠ΅ ΡΠ΅Π±Π΅ Π·Π° ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ ΡΡΠΈΠ»ΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ .
βΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΡΠΎΡΠΌΡ
Π‘Π΄Π΅Π»Π°Π΅ΠΌ Π½Π°ΡΡ ΡΠΎΡΠΌΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅Π΅, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² Π½Π΅Ρ ΠΏΠΎΠ»Π΅ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° ΡΠ°ΠΌΠΈΠ»ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ:
Π ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ β ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ firstName ΠΈ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΊΠΎΠΏΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎΠ±ΡΡΠΈΠΉ.
ΠΠ΅ΡΠΆΡΠΎ ΡΡΠΎ Ρ Π½Π°ΠΏΠΈΡΠ°Π» ΡΠ»ΠΎΠ²ΠΎ Β«ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π»ΠΈΒ»? ΠΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° β ΡΡΠΎ ΡΠΎ, ΡΠ΅Π³ΠΎ ΡΡΠΎΠΈΡ Π²ΡΠ΅ΠΌΠΈ ΡΠΈΠ»Π°ΠΌΠΈ ΠΈΠ·Π±Π΅Π³Π°ΡΡ.
βΠ Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ β3: ΡΠ°Π·Π΄Π΅Π»ΡΠΉΡΠ΅ ΠΊΠΎΠ΄ Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ
ΠΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ΄, Π½Π΅ ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π½ΡΠΉ Π½Π° ΡΠ°ΡΡΠΈ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅, Π½Π°ΡΡΡΠ°Π΅Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ. Π₯ΠΎΡΠΎΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΈΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠ°, Π° Ρ Π³ΠΎΡΠΎΠ² ΠΏΠΎΡΠΏΠΎΡΠΈΡΡ, ΡΡΠΎ ΠΊΠΎΠ΄ ΠΌΠ΅ΡΠΎΠ΄Π° render Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΡΠ΄Π° Ρ ΡΠΆΠ΅. ΠΠ°ΠΉΠΌΡΠΌΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π―, ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΏΡΠΎΡΡΠΎ ΠΈΠ·Π²Π»ΡΠΊ ΠΊΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π° ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° render ΠΈ ΠΎΡΠΎΡΠΌΠΈΠ» Π΅Π³ΠΎ Π² Π²ΠΈΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. Π’ΠΎ, ΡΡΠΎ Π² ΡΠ°Π·Π½ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎ Π΅ΠΌΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ²ΠΎΠΉΡΡΠ².
ΠΠΎΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ SimpleForm :
Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΡΠΈΡΠ°ΡΡ Π»Π΅Π³ΡΠ΅, ΡΠ΅ΠΌ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΉΡΠΈ Π΅ΡΡ Π΄Π°Π»ΡΡΠ΅, ΡΠΎΠ·Π΄Π°Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ TextField Π΄Π»Ρ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΡΠ°ΠΌΠΈΠ»ΠΈΠΈ. ΠΠΎΡ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° FirstNameField :
ΠΠΎΡ
ΠΎΠΆΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΡΡΠΎΠ΅Π½ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ LastNameField :
ΠΠΎΡ ΠΊΠ°ΠΊΠΈΠΌ ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠ΄ ΡΠΎΡΠΌΡ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π»ΡΡΡΠ΅.
βΠ ΠΊΠ»Π°ΡΡΠ°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
ΠΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Ρ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΊΠ»Π°ΡΡΠ°Ρ , ΠΎΡΠ΄Π°Π²Π°Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ:
ΠΡΠΎΠ³ΠΈ
Π₯ΠΎΡΡ ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»ΠΈΠ½Π½ΡΠΌ, ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Π΅ΡΡ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ»Π³ΠΎ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΊΠΎΠ΄, ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΈΡΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΎΠ±ΡΠ΅ΠΌΠ»ΡΡΠΈΠΌ, ΠΌΡ ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π΅ΠΌΡ ΡΠΎΡΡΠΎΡΠ»ΠΎΡΡ Π²Π°ΡΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ React, ΡΠΎ Π²Ρ, ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΠ·Π½Π°Π»ΠΈ, ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΡΠ²Π°ΠΈΠ²Π°ΡΡ ΡΡΡ UI-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ.
β ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ Π² ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π·Π΄Π΅ΡΡ
Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ! ΠΡΠ»ΠΈ ΡΠ΅Π³ΠΎΠ΄Π½Ρ, Π² Ρ ΠΎΠ΄Π΅ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ, Π²Ρ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠ²ΠΎΠΈ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ React-ΠΊΠΎΠ΄Π°, ΠΏΡΠΎΡΠΈΠΌ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΡΠΌΠΈ.
ΠΠΈΡΠ΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° React Ρ Π½ΡΠ»Ρ Π·Π° ΡΠ°Ρ
ΠΠ²ΡΠΎΡΠΈΠ·ΡΠΉΡΠ΅ΡΡ
ΠΠΈΡΠ΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° React Ρ Π½ΡΠ»Ρ Π·Π° ΡΠ°Ρ
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ React β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². React ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π² 2013 Π³ΠΎΠ΄Ρ ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΡΡΡΠΎ ΡΡΠ°Π» ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΡΡΠ΅Π΄ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². Π‘Π΅Π³ΠΎΠ΄Π½Ρ Π² ΡΠ°Π±ΠΎΡΠ΅ Π½Π°Π΄ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Facebook, Instagram, Trello, AirBnb, PayPal. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³Π½ΠΎΠ·Π° ΠΏΠΎΠ³ΠΎΠ΄Ρ: ΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ create-react-app (ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° GitHub) Π΄ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ API ΠΈ ΡΡΠΈΠ»Π΅ΠΉ bootswatch.
ΠΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π². ΠΡΠ»ΠΈ Π²Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ React, Π²Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π½Π°Ρ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄Π΅Π»ΠΈΡΡΡ ΡΠΎΠ²Π΅ΡΠ°ΠΌΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ Π΄Π»Ρ Π²ΠΎΡΠΊΡΠΎΠΏΠ° Open Source Dev Garage, ΠΏΡΠΎΡΠ΅Π΄ΡΠ΅Π³ΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² F8 2017. Π§ΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ 48-ΠΌΠΈΠ½ΡΡΠ½ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΠΏΠΈΡΡΠΌΠ΅Π½Π½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅.
ΠΡΠΎΡΠΌΠΎΡΡΠ΅Π² ΡΠ΅ΠΌΠΈΠ½Π°Ρ ΠΈΠ»ΠΈ ΠΈΠ·ΡΡΠΈΠ² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³Π½ΠΎΠ·Π° ΠΏΠΎΠ³ΠΎΠ΄Ρ:
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π²Π°ΡΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ node.js ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Atom.
ΠΡΠΊΡΠΎΠ΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ create-react-app :
ΠΠ°ΡΠ½Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³Π½ΠΎΠ·Π° ΠΏΠΎΠ³ΠΎΠ΄Ρ:
ΠΠ°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°ΡΠ΅ React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ:
ΠΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅!
Π‘Π²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ create-react-app ΡΠΎΠ·Π΄Π°Π» Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. Π ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΊΠΎΠ΄Π° ΠΎΡΠΊΡΠΎΠ΅ΠΌ weather/src/App.js :
ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π³Π΄Π΅ ΡΡΠ½ΠΊΡΠΈΡ render() ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π³ΠΎ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ΅ΠΊΡΡ, ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡ ΠΈΡ !
27β28 Π½ΠΎΡΠ±ΡΡ, ΠΠΎΡΠΊΠ²Π°, ΠΠ΅cΠΏΠ»Π°ΡΠ½ΠΎ
ΠΠ΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠ°ΠΉΠ»Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π³ΠΎΡΠΎΠ΄ΠΎΠ², Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΏΠΎΠ³ΠΎΠ΄Ρ:
ΠΠ· ΠΌΠ°ΡΡΠΈΠ²Π° Π΄Π°Π½Π½ΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½Π°Π±ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² button ΠΈ Π½Π°Π·Π½Π°ΡΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ key Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ React Π·Π½Π°Π» ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅.
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠ°ΠΉΠ» App.js Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ.
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅
ΠΡΠΈΠΌΠ΅Π½ΠΈΠΌ this.state ΠΈ this.setState Π² Π½Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ App :
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠ°ΠΉΠ» App.js Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ.
ΠΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ Π²ΡΠ±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ
ΠΠ½ΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄ (React-ΠΊΠΎΠ΄ ΠΎΠ±ΡΡΠ½ΠΎ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π΅Π½), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ΅ΡΠΎΠ΄Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π°ΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠ°ΠΊ ΡΠ°Π· Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°Π΅Π².
Π£Π»ΡΡΡΠΈΠΌ Π²ΡΠ²ΠΎΠ΄ render() Π΄Π»Ρ ΠΊΡΠ°ΡΠΈΠ²ΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ :
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠ°ΠΉΠ» App.js Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
ΠΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΡΡΠΈΠ»ΠΈ ΠΈΠ· bootstrap Π² Π½Π°ΡΠ°Π»Π΅ ΡΠ°ΠΉΠ»Π°:
ΠΠ°Π»Π΅Π΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΈΠ· react-bootstrap ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° ΡΠ°ΠΉΡΠ΅ react-bootstrap:
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½Π΅Π΅, Π½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ, Π΅ΡΠ»ΠΈ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΡΠΎ-ΡΠΎ ΠΎΡ ΡΠ΅Π±Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ bootswatch :
ΠΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΠΈΠ΄ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ (Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»)
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΡΠΉΡΠ΅ Π²Π°Ρ ΠΊΠΎΠ΄ Π½Π° Github, Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π²Π°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» ReadMe, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ .
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ Netlify, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Β«Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡΒ».
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅: Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ React
ΠΠ°ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π½Π°ΡΡ React, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΡΡΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅.
Π ΡΡΠΎΠΌ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ ΠΈΠ³ΡΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ ΠΈΠ³ΡΡ, Π½ΠΎ Π²Π°ΠΌ ΡΡΠΎΠΈΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ. ΠΠΎΠ΄Ρ ΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΈΠ·ΡΡΠΈΡΠ΅ Π² ΡΡΠΎΠΌ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ, ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡΡΠΈΠΌΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π΄Π°ΡΡ Π²Π°ΠΌ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ React.
ΠΡΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ°ΡΡΡΠΈΡΠ°Π½ΠΎ Π½Π° Π»ΡΠ΄Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΡ ΡΡΠΈΡΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΠΈΠ·ΡΡΠ°ΡΡ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΎΡ Π½Π°ΡΠ°Π»Π° Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°, ΡΠΎ Π½Π°ΡΠ½ΠΈΡΠ΅ Ρ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π² ΡΡΠΌ-ΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ²:
ΠΠ°ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ Π²ΡΠ΅ ΡΠ°ΡΡΠΈ ΡΡΠ°Π·Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·Ρ ΠΎΡ ΡΡΠΎΠ³ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ. ΠΠ·ΡΡΠΈΡΠ΅ ΡΡΠΎΠ»ΡΠΊΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π²Π° ΡΠ°Π·Π΄Π΅Π»Π°.
Π§ΡΠΎ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΏΠΈΡΠ°ΡΡ?
Π ΡΡΠΎΠΌ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΠΈΠ³ΡΡ ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ Π½Π° React.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π·Π΄Π΅ΡΡ β Π³ΠΎΡΠΎΠ²Π°Ρ ΠΈΠ³ΡΠ°. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ ΠΊΠΎΠ΄, ΠΈΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ, Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡΠ΅ΡΡ. Π¦Π΅Π»Ρ ΡΡΠΎΠ³ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ β ΠΏΠΎΠΌΠΎΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ React ΠΈ Π΅Π³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ.
ΠΡ ΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π²Π°ΠΌ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅ ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ΄Π½Π° ΠΈΠ· ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΡΡ β ΡΡΠΎ Π½ΡΠΌΠ΅ΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΏΡΠ°Π²Π° ΠΎΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ. ΠΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΈΡΡΠΎΡΠΈΡ Π²ΡΠ΅Ρ ΠΈΠ³ΡΠΎΠ²ΡΡ Ρ ΠΎΠ΄ΠΎΠ² ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΠΈΠ³ΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΊΡΡΡΡ ΠΈΠ³ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ Π½Π΅ΠΉ. ΠΡ Π½Π°ΡΠ½ΡΠΌ Ρ ΠΏΡΠΎΡΡΠΎΠΉ Π·Π°Π³ΠΎΡΠΎΠ²ΠΊΠΈ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³ΠΎΠΌ ΠΌΡ Π½Π°ΡΡΡΠΎΠΈΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π½Π°ΡΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ³ΡΡ.
ΠΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ Π²Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ HTML ΠΈ JavaScript. ΠΠ΄Π½Π°ΠΊΠΎ, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΡΡΠ°ΡΡ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π·Π½Π°ΠΊΠΎΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ Π²Ρ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΏΠΎΠ½ΡΡΠΈΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈ, Π² ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ, ΠΊΠ»Π°ΡΡΡ.
ΠΡΡΡ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ β Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π»ΠΈΠ±ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅.
ΠΠ°ΡΠΈΠ°Π½Ρ 1: ΠΠΈΡΠ΅ΠΌ ΠΊΠΎΠ΄ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅
ΠΡΠΎ ΡΠ°ΠΌΡΠΉ Π±ΡΡΡΡΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄Π»Ρ ΡΡΠ°ΡΡΠ°.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΡΡ ΠΠ°Π³ΠΎΡΠΎΠ²ΠΊΡ Π² Π½ΠΎΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΡΡΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π΄Π»Ρ ΠΈΠ³ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ ΠΈ ΠΊΠΎΠ΄ Π½Π° React, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ.
ΠΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠ°ΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΠ±Π·ΠΎΡΡ React.
ΠΠ°ΡΠΈΠ°Π½Ρ 2: ΠΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠΈΠΌ Π²Π²ΠΎΠ΄Π½ΡΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ!
ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ: ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π² Π²Π°ΡΠ΅ΠΌ Π»ΡΠ±ΠΈΠΌΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅
ΠΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ, Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π°ΡΠ΅Π³ΠΎ Π»ΡΠ±ΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°. ΠΠΎΡ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ:
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ npm start Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΎΡΠΊΡΠΎΠ΅ΡΠ΅ http://localhost:3000 Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΡΡΡΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π΄Π»Ρ ΠΊΡΠ΅ΡΡΠΈΠΊΠΎΠ²-Π½ΠΎΠ»ΠΈΠΊΠΎΠ².
ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅.
ΠΠΎΠΌΠΎΠ³ΠΈΡΠ΅, Ρ Π·Π°ΡΡΡΡΠ»!
ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΡΡΡΡΠ»ΠΈ β ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Ρ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Π§Π°Ρ Reactiflux β ΡΡΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ΡΡ. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π΄ΠΎΠΆΠ΄Π°Π»ΠΈΡΡ ΠΎΡΠ²Π΅ΡΠ° ΠΈΠ»ΠΈ Π²ΡΡ Π΅ΡΡ Π½Π΅ ΡΠ΅ΡΠΈΠ»ΠΈ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π·Π°Π΄Π°ΠΉΡΠ΅ Π²ΠΎΠΏΡΠΎΡ, ΠΈ ΠΌΡ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅ΠΌ.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π³ΠΎΡΠΎΠ²Ρ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ ΠΊ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ React!
React β ΡΡΠΎ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½Π°Ρ, ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ ΠΈ Π³ΠΈΠ±ΠΊΠ°Ρ JavaScript Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΉ UI ΠΈΠ· ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΡΡΠΎΡΠΊΠΎΠ² ΠΊΠΎΠ΄Π°, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ Β«ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈΒ».
React ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ Π²ΠΈΠ΄ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π½ΠΎ ΠΌΡ Π½Π°ΡΠ½ΡΠΌ Ρ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠ² React.Component :
Π‘ΠΊΠΎΡΠΎ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ ΠΊ ΡΡΠΈΠΌ Π·Π°Π±Π°Π²Π½ΡΠΌ, ΠΏΠΎΡ ΠΎΠΆΠΈΠΌ Π½Π° XML, ΡΠ΅Π³Π°ΠΌ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ React, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅Π½ΡΡΡΡΡ, React ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΡ Π½Π°ΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.
ΠΠ΅ΡΠΎΠ΄ render Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅. React Π±Π΅ΡΡΡ ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΡΠ»ΠΈ ΡΠΎΡΠ½Π΅Π΅, render Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ React-ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ React-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«JSXΒ» Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΠΎ createElement() Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ Π² ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ΅ API, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΡΡΠΎΠΌ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ JSX.
JSX ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π²ΡΠ΅ΠΉ ΠΌΠΎΡΡΡ JavaScript. Π JSX Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ JavaScript-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²Π½ΡΡΡΠΈ ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ. ΠΠ°ΠΆΠ΄ΡΠΉ React-ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ JavaScript-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ShoppingList ΡΠ΅Π½Π΄Π΅ΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ DOM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π²ΡΠΎΠ΄Π΅
Π Π°Π·Π±Π΅ΡΡΠΌΡΡ ΡΠΎ ΡΡΠ°ΡΡΠΎΠ²ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°ΡΡΡΡ Π² Π²Π°ΡΠ΅ΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π² Π½ΠΎΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΠΌΠΎΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ src/index.js Π² ΠΏΠ°ΠΏΠΊΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° (Π²Ρ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ).
ΠΡΠΎΡ ΡΡΠ°ΡΡΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ β Π±Π°Π·Π°, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Π½Π°ΡΠ½ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ CSS-ΡΡΠΈΠ»ΠΈ, ΡΡΠΎΠ±Ρ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ React ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΈΠ³ΡΡ ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ.
ΠΠ·ΡΡΠΈΠ² ΠΊΠΎΠ΄, Π²Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΠ΅ ΡΡΠΈ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠΏΡΡ
ΠΠ°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π½Π°Π±ΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Π° Π½Π΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΈ Π²ΡΡΠ°Π²Π»ΡΡΡ. ΠΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅Ρ ΠΌΡΡΠ΅ΡΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ.
ΠΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ render Π²Π½ΡΡΡΠΈ Square, Π·Π°ΠΌΠ΅Π½ΠΈΠ²* TODO */> Π½Π°
ΠΠΎΡΠ»Π΅: ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΈΡΠ»ΠΎ Π²Π½ΡΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°.
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ! ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Β«ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ ΠΏΡΠΎΠΏΒ» ΠΈΠ· ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Board Π² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Square. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΡΠΎΠΏΡΠΎΠ² ΡΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΡΠ΅ Π² React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Β«ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΒ» ΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΊ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ.
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Square ΡΡΠ°Π²ΠΈΡΡ Β«XΒ». ΠΠ½Π°ΡΠ°Π»Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΠ΅Π³ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° render() ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Square:
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³ΠΎΠΌ ΠΌΡ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Square Β«Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π»Β», ΡΡΠΎ ΠΏΠΎ Π½Π΅ΠΌΡ ΠΊΠ»ΠΈΠΊΠ½ΡΠ»ΠΈ ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ Β«XΒ». ΠΠ»Ρ Β«Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡΒ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ React ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ this.state Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅. this.state Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠ΅ ΠΈΠΌ ΡΠ°ΠΌΠΈΠΌ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Square Π² this.state ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π΅Π³ΠΎ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅.
Π‘ΠΏΠ΅ΡΠ²Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊ ΠΊΠ»Π°ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅:
Π’Π΅ΠΏΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ render ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Square Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅:
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ setState Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, React ΡΠ°ΠΊ ΠΆΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.
Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ React Devtools Π΄Π»Ρ Chrome ΠΈ Firefox ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΈΠ·ΡΡΠ°ΡΡ Π΄Π΅ΡΠ΅Π²ΠΎ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²Π½ΡΡΡΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π²Π°ΡΠ΅Π³ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ°.
Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ React DevTools ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΏΡΠΎΠΏΡΡ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π°ΡΠΈΡ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ React DevTools, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠ»ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ Π½Π° Π»ΡΠ±ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ Π½Π°ΠΆΠ°ΡΡ Inspect ( ΠΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠΎΠ΄ ), ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΠΊΠ»Π°Π΄ΠΊΠΈ React (Β«⚛️ ComponentsΒ» ΠΈ Β«⚛️ ProfilerΒ») ΠΏΠΎΡΠ²ΡΡΡΡ ΡΠΏΡΠ°Π²Π°. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΡ Β«⚛️️ ComponentsΒ» Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π΄Π΅ΡΠ΅Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π½Π° CodePen Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ:
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ³ΡΡ ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ. ΠΠ»Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΠΈΠ³ΡΡ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠΎΡΠ΅ΡΡΠ΄Π½ΠΎΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Β«XΒ» ΠΈ Β«OΒ», Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ.
Π‘Π΅ΠΉΡΠ°Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Square Ρ ΡΠ°Π½ΠΈΡ Π² ΡΠ΅Π±Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ³ΡΡ. ΠΠ»Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Ρ ΡΠ°Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ 9 ΠΊΠ»Π΅ΡΠΎΠΊ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΈ, ΡΡΠΎ Board ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΠΎΡΠΈΡ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Square Π΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. Π₯ΠΎΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π² React Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½, ΠΌΡ Π΅Π³ΠΎ Π½Π΅ ΠΎΠ΄ΠΎΠ±ΡΡΠ΅ΠΌ. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΡΠ΄Π½ΡΠΌ, ΠΏΡΠΎΠ²ΠΎΡΠΈΡΡΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ, Π»ΡΡΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ³ΡΡ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ Board, Π° Π½Π΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ Square. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Board ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Square, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ ΠΏΡΠΎΠΏ. ΠΡ ΡΠ°ΠΊ ΡΠΆΠ΅ Π΄Π΅Π»Π°Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π»ΠΈ ΡΠΈΡΠ»ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΡΡ ΠΊΠ»Π΅ΡΠΊΡ.
Π§ΡΠΎΠ±Ρ ΡΠΎΠ±ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΈΠ»ΠΈ ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π²ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ ΠΎΠ±ΡΠ°ΡΡΡΡ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΎΠ±ΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π½ΡΡΡΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. Π ΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠΏΡΠΎΠ². ΠΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ ΠΈ Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ.
ΠΠΎΠ΄ΡΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ β ΠΎΠ±ΡΡΠ½ΠΎΠ΅ Π΄Π΅Π»ΠΎ ΠΏΡΠΈ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π΅ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ»ΡΡΠ°Π΅ΠΌ ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ.
ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Board ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΠ· 9 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ null. ΠΡΠΈ 9 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ 9 ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°ΠΌ:
ΠΠΎΠ·ΠΆΠ΅, ΠΏΡΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»Ρ, ΠΌΠ°ΡΡΠΈΠ² this.state.squares Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΠ΅ΡΠΎΠ΄ renderSquare Π²Π½ΡΡΡΠΈ Board ΡΠ΅ΠΉΡΠ°Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΠ°Π»ΡΡΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° Square. Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Board Ρ ΡΠ°Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ ΠΊΠ»Π΅ΡΠΊΠ°Ρ . ΠΠ°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΏΠΎΡΠΎΠ±, ΠΊΠΎΡΠΎΡΡΠΌ Square ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Board. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΌ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π³Π΄Π΅ ΠΎΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ, ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Board Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· Square.
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΄ΠΈΠΌ ΠΈΠ· Board Π² Square ΡΡΠ½ΠΊΡΠΈΡ, ΠΈ Π±ΡΠ΄Π΅ΠΌ Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΠ· Square, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎ ΡΠΎΠΌΡ ΠΊΠ»ΠΈΠΊΠ½ΡΠ»ΠΈ. ΠΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ renderSquare Π² Board-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ Π½Π°:
ΠΡ ΡΠ°Π·Π±ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΡΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠΊΠΎΠ±ΠΊΠΈ, ΡΡΠΎΠ±Ρ JavaScript Π½Π΅ Π²ΡΡΠ°Π²Π»ΡΠ» ΡΠΎΡΠΊΡ Ρ Π·Π°ΠΏΡΡΠΎΠΉ ΠΏΠΎΡΠ»Π΅ return ΠΈ Π½Π΅ Π»ΠΎΠΌΠ°Π» Π½Π°Ρ ΠΊΠΎΠ΄.
ΠΠΎΡΠ»Π΅ ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Square Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΡΡΠΈΠ±ΡΡ onClick DOM-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈΠΌΠ΅Π΅Ρ Π΄Π»Ρ React ΠΎΡΠΎΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΠ»Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²ΡΠΎΠ΄Π΅ Square Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΎΠΏΡΡ ΠΊΠ°ΠΊ ΡΠ³ΠΎΠ΄Π½ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π·Π²Π°ΡΡ ΠΏΡΠΎΠΏ Square onClick ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ Board handleClick Π»ΡΠ±ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΈ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΊ ΠΆΠ΅. ΠΠΎ Π² React Π΅ΡΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ β on[ΠΠΌΡ ΡΠΎΠ±ΡΡΠΈΡ] Π΄Π»Ρ ΠΏΡΠΎΠΏΡΠΎΠ², ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΡ Π·Π° ΡΠΎΠ±ΡΡΠΈΡ, ΠΈ handle[ΠΠΌΡ ΡΠΎΠ±ΡΡΠΈΡ] Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΡ.
ΠΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° Square ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ handleClick Π΅ΡΡ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½. ΠΠ°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Π³ΠΎ Π² ΠΊΠ»Π°ΡΡ Board:
ΠΠΎΡΠ»Π΅ ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΡ ΡΠ½ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠ»Π΅ΡΠΊΠΈ ΠΏΠΎ ΠΊΠ»ΠΈΠΊΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΡΡΡ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Board, Π° Π½Π΅ Π² ΡΠ°Π·ΡΠΎΠ·Π½Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ Square. ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Board ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΉ ΡΠ΅Π½Π΄Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Square. Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²ΡΠ΅Ρ ΠΊΠ»Π΅ΡΠΎΠΊ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Board ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Square Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· Board ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡΡ Π΅Π³ΠΎ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ°Ρ . Π ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ React ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Square ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌ. ΠΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Board.
ΠΠΎΡΠ΅ΠΌΡ ΠΈΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°ΠΊ Π²Π°ΠΆΠ½Π°?
Π ΡΠ΅Π»ΠΎΠΌ Π΅ΡΡΡ Π΄Π²Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ β ΠΌΡΡΠΈΡΠΎΠ²Π°ΡΡ(ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ) Π΄Π°Π½Π½ΡΠ΅, Π½Π°ΠΏΡΡΠΌΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ Π½ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ β Π·Π°ΠΌΠ΅Π½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΡΡΠΈΡΡΡΡΠ΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π±Π΅Π· ΠΌΡΡΠ°ΡΠΈΠΉ
ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΠΆΠ΅, Π½ΠΎ Π±Π΅Π· ΠΌΡΡΠ°ΡΠΈΠΈ (Ρ.Π΅. ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ) ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠΈΠΆΠ΅ ΠΎΠΏΠΈΡΠ°Π½Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°.
Π‘Π»ΠΎΠΆΠ½ΠΎΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΡΠΎΡΡΡΠΌ
ΠΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅Π»Π°Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΡΠ΅. ΠΠΈΠΆΠ΅ ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Β«ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈΒ», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Ρ ΡΠ°Π½ΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ³ΡΡ ΠΈ Β«Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡΒ» ΠΊ ΠΏΡΠΎΡΠ»ΡΠΌ Ρ ΠΎΠ΄Π°ΠΌ. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π½Π΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½Π° Π΄Π»Ρ ΠΈΠ³Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΌΠ΅Π½ΡΡΡ ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ . ΠΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΏΡΡΠΌΠΎΠΉ ΠΌΡΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ³ΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π½ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅.
Π Π°Π±ΠΎΡΠ°Ρ Ρ ΠΌΡΡΠΈΡΡΠ΅ΠΌΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ°ΠΊ ΡΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ, ΡΠ°ΠΊ ΠΈ ΡΠΎ Π²ΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΈΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅. ΠΡΠ»ΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ»Π°Π΅ΡΡΡ, ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ, ΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ.
ΠΠ°ΠΊ React ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ
ΠΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΈΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π² React ΡΠΈΡΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ shouldComponentUpdate() ΠΈ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΈΡΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Square ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ.
ΠΠ°ΠΌΠ΅Π½ΠΈΠΌ ΠΊΠ»Π°ΡΡ Square ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ:
ΠΡ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ this.props Π½Π° props ΠΎΠ±Π° ΡΠ°Π·Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ°ΡΠ°Π»ΠΈΡΡ ΠΊ Π½ΠΈΠΌ.
ΠΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ Square Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ onClick= <() =>this.props.onClick()> Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ onClick=
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² Π½Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΠ΅ β Π½Π° ΠΏΠΎΠ»Π΅ Π½Π΅Π»ΡΠ·Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Β«OΒ».
ΠΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ Ρ ΠΎΠ΄ Π·Π° Β«XΒ». ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Board:
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³ΡΠΎΠΊ Π΄Π΅Π»Π°Π΅Ρ Ρ ΠΎΠ΄, xIsNext (Π±ΡΠ»Π΅Π²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) Π±ΡΠ΄Π΅Ρ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ³ΡΠΎΠΊ Ρ ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ, Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ³ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ. ΠΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ handleClick ΠΊΠ»Π°ΡΡΠ° Board, Π΄Π»Ρ ΠΈΠ½Π²Π΅ΡΡΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ xIsNext :
ΠΠΎΡΠ»Π΅ ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Β«XΒ» ΠΈ Β«OΒ» Π±ΡΠ΄ΡΡ ΡΠ΅ΡΠ΅Π΄ΠΎΠ²Π°ΡΡΡΡ. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΠ΅ΠΊΡΡ Β«statusΒ» Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ render ΠΊΠ»Π°ΡΡΠ° Board ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π» ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ³ΡΠΎΠΊ Ρ ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ:
ΠΠΎΡΠ»Π΅ ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π°Ρ Board-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ³ΡΠΎΠΊ Ρ ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ, Π½Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³ΡΠ° Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π°, ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ Ρ ΠΎΠ΄ΠΎΠ². Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π°:
ΠΡΠ΄Π΅ΠΌ Π²ΡΠ·ΡΠ²Π°ΡΡ calculateWinner(squares) Π²Π½ΡΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° render ΠΊΠ»Π°ΡΡΠ° Board, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, Π²ΡΠΈΠ³ΡΠ°Π» Π»ΠΈ ΠΈΠ³ΡΠΎΠΊ. ΠΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ, ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Β«ΠΡΠΈΠ³ΡΠ°Π» XΒ» ΠΈΠ»ΠΈ Β«ΠΡΠΈΠ³ΡΠ°Π» OΒ». ΠΠ°ΠΌΠ΅Π½ΠΈΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ status Π² render ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ handleClick ΠΊΠ»Π°ΡΡΠ° Board Π΄Π»Ρ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»ΠΈΠΊΠ°, Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΡΠΆΠ΅ ΠΏΠΎΠ±Π΅Π΄ΠΈΠ» ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΠΊΠ»Π΅ΡΠΊΠ° ΡΠΆΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π°:
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ! Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ°Ρ ΠΈΠ³ΡΠ° Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ. Π ΠΊΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΈΠ·ΡΡΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ React. ΠΠΎΡ ΠΎΠΆΠ΅, Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ Π·Π΄Π΅ΡΡ ΡΡΠΎ Π²Ρ.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Β«Π²Π΅ΡΠ½ΡΡΡΡΡ Π² ΠΏΡΠΎΡΠ»ΠΎΠ΅Β» β ΠΊ ΠΏΡΠΎΡΠ»ΡΠΌ Ρ ΠΎΠ΄Π°ΠΌ ΠΈΠ³ΡΡ.Β»
Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΠΈΡΡΠΎΡΠΈΡ Ρ ΠΎΠ΄ΠΎΠ²
ΠΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ slice() Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° squares ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ ΠΎΠ΄Π° ΠΈ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Ρ Π½ΠΈΠΌ, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π°. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ Ρ ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ Π²Π΅ΡΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° squares ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎ Ρ ΠΎΠ΄Π°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°Π½Ρ.
ΠΠΎΠ΄ΡΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. Π‘Π½ΠΎΠ²Π°
Π Π°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ history Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Game ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠ΄Π°Π»ΠΈΡΡ squares ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π΅Π³ΠΎ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Board. Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡ ΡΠΆΠ΅ Β«ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅Β» ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Square Π² Board, ΠΌΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ΅ΠΌ Π΅Π³ΠΎ ΠΈΠ· Board Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ-ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ Game. ΠΡΠΎ Π΄Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Game ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ Π΄Π°Π½Π½ΡΠΌΠΈ Board ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΎΡΠ΄Π°Π²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Board Π½Π° ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΠΏΡΠΎΡΠ»ΡΡ Ρ ΠΎΠ΄ΠΎΠ² ΠΈΠ· history :
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π·Π°Π΄Π°Π΄ΠΈΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Game Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°:
Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Board Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π²ΠΎΡ ΡΠ°ΠΊ:
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ render ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Game, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π·Π°ΠΏΠΈΡΡ ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠ°ΡΡΡΠ° ΠΈΠ³ΡΡ:
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Game ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΡ ΡΡΠ°ΡΡΡ ΠΈΠ³ΡΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ±ΡΠ°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° render Π²Π½ΡΡΡΠΈ Board. ΠΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ render ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Board Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΡΠΎΡΠ»ΡΠ΅ Ρ ΠΎΠ΄Ρ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Ρ ΠΎΠ΄ ΠΈΠ³ΡΡ, ΠΌΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ³ΡΠΎΠΊΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Ρ ΠΎΠ΄ΠΎΠ².
Π Π°Π½Π΅Π΅ ΠΌΡ ΡΠ·Π½Π°Π»ΠΈ, ΡΡΠΎ React-ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ β ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ JavaScript. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΡ Π²Π½ΡΡΡΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΠ΅Π½Π΄Π΅ΡΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² React ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² React-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ map ΠΊ history Π²Π½ΡΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° render Game-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
Warning: Each child in an array or iterator should have a unique Β«keyΒ» prop. Check the render method of Β«GameΒ».
Π§ΡΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ ΠΊΠ°ΠΊ:
ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΈΠ»ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠΏ Β«keyΒ». ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ render Π² Game
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠΈΡ.
ΠΠΎΠ³Π΄Π° ΠΌΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠΌ ΡΠΏΠΈΡΠΎΠΊ, React Ρ ΡΠ°Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠ΅Π½Π½ΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ ΡΠΏΠΈΡΠΊΠ°. ΠΡΠ»ΠΈ ΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ, React Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π² Π½ΡΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ. ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, ΡΠ΄Π°Π»ΠΈΡΡ, ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡ
ΠΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π΅ ΡΠΏΠΈΡΠΊΠ°, React Π±Π΅ΡΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΠΈΡΠΊΠ° ΠΊΠ»ΡΡ ΠΈ ΠΈΡΠ΅Ρ Π΅Π³ΠΎ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°. ΠΡΠ»ΠΈ Π² Π½ΠΎΠ²ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ Π΅ΡΡΡ ΠΊΠ»ΡΡ, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π½ΡΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ, React ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΡΠ»ΠΈ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΊΠ»ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅, React ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΡΠ»ΠΈ Π΄Π²Π° ΠΊΠ»ΡΡΠ° ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ. ΠΠ»ΡΡΠΈ Π² React ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ React ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΌΠΈ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°ΠΌΠΈ. ΠΡΠ»ΠΈ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ ΠΈ ΡΠΎΠ·Π΄Π°Π½ Π²Π½ΠΎΠ²Ρ Ρ Π½ΠΎΠ²ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ.
ΠΠ°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΡΡΠΎΠΈΡΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΈ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΊΠ»ΡΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠ΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΠΈ Π²Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎΠ±Ρ ΠΎΠ½ Ρ Π²Π°Ρ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ.
ΠΡΠ»ΠΈ ΠΊΠ»ΡΡ Π½Π΅ Π±ΡΠ» ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½, React ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ°. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ° ΠΈΠ»ΠΈ ΠΏΡΠΈ Π²ΡΡΠ°Π²ΠΊΠ΅/ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π―Π²Π½Π°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° key= ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΡΠ°ΠΊ ΡΡΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π»ΡΡΡΠ΅ ΡΠ°ΠΊ Π½Π΅ Π΄Π΅Π»Π°ΡΡ.
ΠΠ»ΡΡΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ. ΠΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΠΈΡ Π±ΡΠ°ΡΡΡΠΌΠΈ ΠΈ ΡΡΡΡΡΠ°ΠΌΠΈ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
Π ΠΈΡΡΠΎΡΠΈΠΈ ΠΈΠ³ΡΡ ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ»ΡΠΉ Ρ ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ: ΡΡΠΎ Π½ΠΎΠΌΠ΅Ρ Ρ ΠΎΠ΄Π° Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. Π₯ΠΎΠ΄Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ, Π½Π΅ ΡΠ΄Π°Π»ΡΡΡΡΡ ΠΈ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊ ΡΡΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ°.
Π‘Π½Π°ΡΠ°Π»Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ stepNumber: 0 Π² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Game Π²Π½ΡΡΡΠΈ constructor :
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ jumpTo ΠΌΡ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ history ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ ΠΈΠ»ΠΈ, ΠΏΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, React ΠΎΠ±Π½ΠΎΠ²ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½Ρ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ setState Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ². ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ ΡΠΈΡΠ°ΠΉΡΠ΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ render Π΄Π»Ρ Game, ΡΡΠΎΠ±Ρ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅Π½Π΄Π΅ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Ρ ΠΎΠ΄Π° ΠΎΠ½ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ» Ρ ΠΎΠ΄, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ stepNumber :
ΠΡΠ»ΠΈ ΠΌΡ ΠΊΠ»ΠΈΠΊΠ½Π΅ΠΌ Π½Π° Π»ΡΠ±ΠΎΠΉ Ρ ΠΎΠ΄ Π² ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ, ΠΏΠΎΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Ρ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π²ΡΠ³Π»ΡΠ΄Π΅Π»ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Ρ ΠΎΠ΄Π°.
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ! ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΈΠ³ΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ:
Π₯ΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°! ΠΡ Π½Π°Π΄Π΅Π΅ΠΌΡΡ, Π²Ρ ΡΡΠ²ΡΡΠ²ΡΠ΅ΡΠ΅ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡ Π² ΡΠ²ΠΎΠΈΡ Π·Π½Π°Π½ΠΈΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ React.
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π³ΠΎΡΠΎΠ²ΡΡ ΠΈΠ³ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π΄Π΅ΡΡ: ΠΠΎΡΠΎΠ²ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ Π½ΠΎΠ²ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ Π² React, Π²ΠΎΡ ΠΏΠ°ΡΠ° ΠΈΠ΄Π΅ΠΉ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π½Π΅Π΄ΡΠΈΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ (ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ):












