Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ react ΡΡΠΎ ΡΡΠΎ
React
JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²
ΠΠ΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΉ
Π‘ΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π½Π° React β ΠΏΡΠΈΡΡΠ½ΠΎ ΠΈ ΠΏΡΠΎΡΡΠΎ. ΠΠ°ΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΡΡ Π² ΡΠ°Π·Π½ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΡ . React Π±ΡΠ΄Π΅Ρ ΡΠ²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ.
ΠΠ΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ ΠΈ ΡΠΏΡΠΎΡΡΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ.
ΠΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ
Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ ΠΈΡ Π² ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° JavaScript, Π° Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΡΠ°Π±Π»ΠΎΠ½Π°Ρ , ΠΌΠΎΠΆΠ½ΠΎ Ρ Π»ΡΠ³ΠΊΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΌΡΠ΅ ΡΠ°Π·Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π½Π΅ DOM.
ΠΠ°ΡΡΠΈΡΠ΅ΡΡ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ β ΠΏΠΈΡΠΈΡΠ΅ Π³Π΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎ
ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π·Π½Π°ΡΡ ΠΏΡΠΎ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π½Π° React, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄.
React ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Node.js ΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ React Native.
ΠΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ
JSX Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ React. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Babel REPL, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ JavaScript-ΠΊΠΎΠ΄, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ JSX.
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ ΠΊΠΎΠ΄ΠΎΠΌ.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ
ΠΠΎΠΌΠΈΠΌΠΎ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ (Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠ΅ΡΠ΅Π· this.props ), ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π· this.state ). ΠΠΎΠ³Π΄Π° Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡ, React Π΅ΡΡ ΡΠ°Π· Π²ΡΠ·ΠΎΠ²Π΅Ρ render() ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠ΅Π½Π½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ.
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ ΠΊΠΎΠ΄ΠΎΠΌ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ ΠΊΠΎΠ΄ΠΎΠΌ.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²
React ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²Π½Π΅ΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° remarkable, ΡΡΠΎΠ±Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Markdown-ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, Π²Π²Π΅Π΄ΡΠ½Π½ΡΠΉ Π² ΡΠ»Π΅ΠΌΠ΅Π½Ρ
React.js Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ: ΡΡΠΎ ΡΡΠΎ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½
ΠΡΠ»ΠΈ ΡΡΠ°ΠΆΡΡ ΠΈΠ»ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌ Π·Π΅Π»ΡΠ½ΡΠΉ Π΄ΠΆΡΠ½ ΠΏΠΎΠΏΡΠΎΡΡΡ Π²Π°Ρ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React.js, β ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΊΠ°ΠΆΠΈΡΠ΅ ΠΈΠΌ ΡΡΡ ΡΡΠ°ΡΡΡ.
Π°Π»ΡΠ±ΠΎΠΌΠ° amnesiac ΠΎΡΡΡΠ»Π°Π»Π° ΠΊ ΠΈΠ΄Π΅Π΅ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ°, ΠΈ Π½ΠΎΠ²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½Π°Ρ Π²ΡΡΡΠ°Π²ΠΊΠ° ΡΠΎΠΆΠ΅ β Π»Π°Π±ΠΈΡΠΈΠ½Ρ. ΠΏΡΠΎΠ΅ΠΊΡ, Π²ΠΎΠΏΠ»ΠΎΡΠ°ΡΡΠΈΠΉ ΠΌΠΈΡΡ radiohead, ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ epic games. Π² Π½ΡΠΌ Π·Π²ΡΡΠ°Ρ ΠΏΠ΅ΡΠ½ΠΈ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΠΈΠ·Π΄Π°Π½Π½ΡΡ Π°Π»ΡΠ±ΠΎΠΌΠΎΠ². Π²ΡΡΡΠ°Π²ΠΊΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΡΠΎΠ½ΡΠΌΠ΅Π½ ΡΠΎΠΌ ΠΉΠΎΡΠΊ ΠΈ Ρ ΡΠ΄ΠΎΠΆΠ½ΠΈΠΊ ΡΡΡΠ½Π»ΠΈ Π΄ΠΎΠ½Π²ΡΠ΄, ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Ρ Π³ΡΡΠΏΠΏΠΎΠΉ, Π° Π·Π²ΡΠΊΠΎΠ²ΡΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ Π·Π°Π½ΠΈΠΌΠ°Π»ΡΡ ΠΏΡΠΎΠ΄ΡΡΠ΅Ρ Π½Π°ΠΉΠ΄ΠΆΠ΅Π» Π³ΠΎΠ΄ΡΠΈΡ.
Π ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΠΏΠΎΠ»Π½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² ΠΏΠΎ React.js Ρ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ ΡΠΈΠΏΠ° for dummies, for idiots β Π²ΡΠΎΠ΄Π΅ Π±Ρ Π΄Π»Ρ ΡΠ°ΠΉΠ½ΠΈΠΊΠΎΠ². ΠΠΎ ΠΎΠ½ΠΈ ΠΏΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ Π½Π΅Π³ΡΠΌΠ°Π½Π½Ρ ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½Ρ β ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΡ Π±Π΅Π· Π·Π½Π°Π½ΠΈΡ JavaScript ΠΏΠΎΠ»ΡΠ·Ρ Π½Π΅ Π±ΡΠ΄Π΅Ρ, ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠ»ΡΠ½Π΅Π΅ Π·Π°ΠΏΡΡΠ°Π΅ΡΡΡ ΠΈ ΠΏΠΎΡΡΠ²ΡΡΠ²ΡΠ΅Ρ ΡΠ΅Π±Ρ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ dummy. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React.js, Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΎΠ½ Π½ΡΠΆΠ΅Π½, ΠΊΠ°ΠΊ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΈ ΡΡΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ.
Π§ΡΠΎ ΡΡΠΎ Π΅ΡΡ Π·Π° Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΊΡΠΎΠΊ ΡΠ°ΠΊΠΎΠΉ?
React.js β ΡΡΠΎ JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΎΡ Facebook Π΄Π»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΡΠΎ Π΅ΡΡΡ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠ°ΠΉΡΠΎΠ² ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ»Π°Π²Π½Π°Ρ ΡΠΈΡΠΊΠ° React.js β ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ β ΡΡΠΎ ΠΊΡΡΠΎΡΠ΅ΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°ΠΉΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈΡΡΠΌ ΡΠ°ΠΊΠΈΠ΅ ΠΊΡΡΠΎΡΠΊΠΈ-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ.
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ β ΡΡΠΎ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΎ Π΅Π³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Β«ΡΠ΅ΡΠΌΠΎΠΌΠ΅ΡΡΒ» ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ current_temperature, min ΠΈ max.
Π€Π°Π½Π°Ρ Free Software Foundation, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Linux ΠΈ Π½Π΅Π΄ΠΎΠ»ΡΠ±Π»ΠΈΠ²Π°Π΅Ρ Windows. ΠΠΈΡΠ΅Ρ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎ ΠΊΠΎΠ΄ΠΈΠ½Π³ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Python. ΠΠ»ΡΠ±Π»ΡΠ½ Π² Lisp, Π½ΠΎ ΠΏΠΎΠΊΠ° ΡΡΠΎ Π½Π΅ ΡΠΌΠ΅Π΅Ρ Π½Π° Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ Π½Π° ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΡΠ·ΡΠΊ: ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ
ΠΠΎΠΊΠ° Π·Π²ΡΡΠΈΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π½Π° Π΄Π΅Π»Π΅ Π²ΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅. ΠΠΎΡΡΠ΅Π½ΠΈΡΡΠ΅ΠΌΡΡ Π½Π° Π¦ΡΠΊΠ΅ΡΠ±Π΅ΡΠ³Π΅: Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΡΡΠΎ Π΅Π³ΠΎ Π΄Π΅ΡΠΈΡΠ΅ β Π΅ΠΌΡ ΠΈ ΠΎΡΠ²Π΅ΡΠ°ΡΡ.
ΠΠ° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅ ΡΡΠΈ ΠΊΡΡΠΏΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° β ΠΏΠΎΡΡ Π² Π»Π΅Π½ΡΠ΅ Facebook, Π±Π»ΠΎΠΊ ΠΊΡΠ°ΡΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ Π±Π»ΠΎΠΊ Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ. Π ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ Π²Ρ ΠΎΠ΄ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π½ΡΡΡΠΈ ΠΏΠΎΡΡΠ° Π΅ΡΡΡ ΡΠ΅ΠΊΡΡ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π°Π²Π°ΡΠ°ΡΠΊΠ°, ΠΈΠΌΡ Π°Π²ΡΠΎΡΠ°, Π»Π°ΠΉΠΊΠΈ, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ. ΠΠ½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° Ρ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΡΠΌΠΈ β ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠΎΡΠΎ, Π° Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° Ρ ΠΊΡΠ°ΡΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ β ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠ° ΡΠ°ΠΌΠ°Ρ ΠΊΡΠ°ΡΠΊΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π±Π»ΠΎΠΊ ΠΊΡΠ°ΡΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΈ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, Ρ ΡΠ΅ΡΠ΄Π΅ΡΠΊΠ° ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ° Ρ Π»Π°ΠΉΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΡΠ²Π΅Ρ (Π΅ΡΠ»ΠΈ Π²Ρ Π»Π°ΠΉΠΊΠ½ΡΠ»ΠΈ ΠΈΠ»ΠΈ Π½Π΅ Π»Π°ΠΉΠΊΠ½ΡΠ»ΠΈ Π·Π°ΠΏΠΈΡΡ), Π° ΠΏΠΎΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ΅Π·Π°ΡΡ ΡΠ΅ΠΊΡΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ, ΠΌΠ΅Π½ΡΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ. ΠΠ΅Π΄Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ° β ΡΡΠΎ ΡΠΎΠΆΠ΅ Π΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠΌΠ΅Π½Π½ΠΎ Π² ΡΡΠΎΠΌ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΈ ΡΠΈΠ»Π° React.js: Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠ΅ Π΅ΠΌΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π°Π²Π°ΡΠ°ΡΠΊΠΈ:
Π£ΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ ΡΡΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΠΏΡΠ΅Π΄Π΅Π» β Π²Π΅Π΄Ρ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ Π°Π²Π°ΡΠ°ΡΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ°Π΅ΡΡΡ Π² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΈ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π»Ρ Android, iOS ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π°Π²Π°ΡΠ°ΡΠΊΠ° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π΅Π·Π΄Π΅ Π±ΡΠ΄Π΅Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ β Π² ΡΠΎΡΡΠ°Π²Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² React.js, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ, ΡΠ°ΠΏΠΊΠ°, Π±ΠΎΠΊΠΎΠ²Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Ρ.
Π React.js Π΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ, Π½ΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π² ΡΡΠ΅Π΄Π½ΠΈΡ ΠΈ ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ΡΠ°ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Redux β ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ. ΠΠ½ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈ Π»ΡΡΡΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΡΡ.
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ React.js, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ HTML, JavaScript ΠΈ CSS
ΠΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΠ³ΠΎΡΠΎΠ΄ΠΎΠ². React.js β ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΡΠΏΠΎΡΠΎΠ± Π² ΡΠ΄ΠΎΠ±Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ΄ JavaScript ΠΈ HTML, ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΡΠΌ ΠΈ Π½Π°Π³Π»ΡΠ΄Π½ΡΠΌ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ React.js ΠΏΠΈΡΡΡ Π½Π° ΠΎΡΠΎΠ±ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ β JSX, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΡΠΌΠ΅ΡΡ JavaScript ΠΈ HTML. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π½Π° ΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ΅:
JSX-ΠΊΠΎΠ΄ β ΡΠΎ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ HTML-ΡΠ΅Π³ΠΎΠΌ
, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ JSX
ΠΠΎΠ΄ JSX Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π°Π³Π»ΡΠ΄Π½ΡΠΉ, ΠΈ, ΠΊΡΡΠ°ΡΠΈ, ΡΠΎ, ΡΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° HTML, β Π²ΠΎΠ²ΡΠ΅ Π½Π΅ HTML π ΠΠ²ΡΡΠΈΡ Π³Π°Π»Π»ΡΡΠΈΠ½ΠΎΠ³Π΅Π½Π½ΠΎ, Π½ΠΎ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ JSX.
ΠΡΠ°ΡΠ·Π΅ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ JSX Π½Π΅ Π½ΡΠΆΠ½ΠΎ β ΠΊΠΎΠ΄ React.js ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΡΡΡ Π² JavaScript, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π·Π½Π°ΠΊΠΎΠΌ Π»ΡΠ±ΠΎΠΉ ΡΠ²Π°ΠΆΠ°ΡΡΠΈΠΉ ΡΠ΅Π±Ρ Π±ΡΠ°ΡΠ·Π΅Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π½Π° React.js ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΠΎΠ½ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ΅Π· Babel β ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-ΡΡΠ°Π½ΡΠΏΠ°ΠΉΠ»Π΅Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ (ΡΠΎ Π΅ΡΡΡ ΡΠ·ΡΠΊΠΈ Π²ΡΠΎΠ΄Π΅ JSX) Π² JavaScript-ΠΊΠΎΠ΄.
JSX-ΠΊΠΎΠ΄ JavaScript-ΠΊΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ Babel
ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠ° ΡΡΡΠ°Π½Π½Π°Ρ. ΠΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΠΎΡΡΠΎΠ΅Π²ΡΠΊΠΈΠΉ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π» ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ·ΡΠΊ, ΠΏΠΈΡΠ°Π» Π½Π° Π½ΡΠΌ ΠΊΠ½ΠΈΠ³ΠΈ, Π° ΠΏΠΎΡΠΎΠΌ ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠ»ΠΈ Π±Ρ Π½Π° ΡΡΡΡΠΊΠΈΠΉ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΈΠ·Π΄Π°Π²Π°Π»ΠΈ. Π ΡΡΠΎ Π±ΡΠ»Π° Π±Ρ Ρ ΠΎΡΠΎΡΠ°Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ β Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π±Ρ ΠΊΠ½ΠΈΠ³ΠΈ ΠΠΎΡΡΠΎΠ΅Π²ΡΠΊΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π½Π° ΡΡΡΡΠΊΠΈΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π° ΠΏΠΈΡΠ°ΡΡ Π½Π° Π½ΠΎΠ²ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Π±ΡΠ»ΠΎ Π±Ρ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π±ΡΡΡΡΠ΅Π΅.
Π£ React.js Π΅ΡΡΡ ΡΡΠΈ ΠΌΠΎΡΠ½ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°:
ReactJS Π΄Π»Ρ Π³Π»ΡΠΏΡΡ Π»ΡΠ΄Π΅ΠΉ
ΠΡΡΠ°ΡΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΠΎΡ Facebook ReactJS ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ³Π°Π΅ΠΌΠΎΠΉ ΡΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Β«FluxΒ», Π½Π°ΡΠΊΠ½ΡΠ»ΡΡ Π½Π° ΠΏΡΠΎΡΡΠΎΡΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° Π½Π° Π΄Π²Π΅ Π·Π°Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ: Β«ReactJS For Stupid PeopleΒ» ΠΈ Β«Flux For Stupid PeopleΒ». Π Π΅ΡΠΈΠ» ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Ρ Ρ Π°Π±ΡΠ°Π²ΡΠ°Π½Π°ΠΌΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠΌ ΠΏΠ΅ΡΠ²ΠΎΠΉ (Π° ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅ ΠΈ Π²ΡΠΎΡΠΎΠΉ) ΡΡΠ°ΡΡΠΈ. ΠΡΠ°ΠΊ, ΠΏΠΎΠ΅Ρ Π°Π»ΠΈ.
ReactJS Π΄Π»Ρ Π³Π»ΡΠΏΡΡ Π»ΡΠ΄Π΅ΠΉ
TL;DR Π ΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π΄ΠΎΠ»Π³ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ ΠΏΡΡΠ°Π»ΡΡ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ Π²ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ ΡΡΠ°ΡΡΡ, ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠ½Π΅ Π² ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ Ρ Π²Π°ΡΠ°Π»ΠΎ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ React?
Π§Π΅ΠΌ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ React ΠΎΡ Angular, Ember, Backbone ΠΈ Π΄ΡΡΠ³ΠΈΡ ? ΠΠ°ΠΊ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ? ΠΠ°ΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ? Π§ΡΠΎ, ΡΠ΅ΡΡ Π²ΠΎΠ·ΡΠΌΠΈ, ΡΠ°ΠΊΠΎΠ΅ JSX? Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Β«componentΒ»?
ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ΡΡ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ.
React β ΡΡΠΎ Π’ΠΠΠ¬ΠΠ Π£Π ΠΠΠΠΠ¬ ΠΠ ΠΠΠ‘Π’ΠΠΠΠΠΠΠ―.
React ΡΠ°ΡΡΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΡΠ΄Ρ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ javascript ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ, Π½ΠΎ ΡΠΏΠΎΡΡ Β«React vs AngularΒ» Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠΌΡΡΠ»Π°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌΡΠ΅ Π²Π΅ΡΠΈ. Angular β ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ (Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ ΠΈ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ). React β Π½Π΅Ρ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ React Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π² ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠ΅ΠΌΡΡ ΠΌΠΈΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² β ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
React Π΄Π°Π΅Ρ Π²Π°ΠΌ ΡΠ·ΡΠΊ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ callback-ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ HTML. ΠΠ΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ React β ΡΡΠΎ HTML. ΠΠ°ΡΠΈ ΡΠ²ΡΠ·ΠΊΠΈ HTML/JavaScript, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Ρ ΡΠ°Π½ΡΡ ΡΠ²ΠΎΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: ΠΊΠ°ΠΊΠ°Ρ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ° Π²ΡΠ±ΡΠ°Π½Π°), Π½ΠΎ Π² ΠΈΡΠΎΠ³Π΅ Π²Π°ΠΌ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠ»Π΅Π²ΡΠ²Π°Π΅ΡΡΡ HTML.
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΏΠΎΠ»Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΡΡΠ΅Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ React. ΠΠΎΡΠ΅ΠΌΡ, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅.
ΠΠ»ΡΡΡ
ΠΠΎΡΠ»Π΅ ΡΠ°Π±ΠΎΡΡ Ρ React, Ρ ΡΠ²ΠΈΠ΄Π΅Π» ΡΡΠΈ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°.
1. ΠΡ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ Π²Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠΈΡΠΎΠ²Π°Π½, Π³Π»ΡΠ΄Ρ Π½Π° ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄.
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π°ΠΆΠ½ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ, Ρ
ΠΎΡΡ ΡΡΠΎ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Angular. ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ.
Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ° Π½Π° ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΡΠ»Π΅ Π»ΠΎΠ³ΠΈΠ½Π°. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ MVC ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
ΠΠΎ ΠΎΠΏΡΡΡ ΠΌΠΎΠ³Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΡΡΠΈΡ ΠΆΠΈΠ·Π½Ρ Π²Π°ΠΌ ΠΈ Π²Π°ΡΠΈΠΌ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ. ΠΠ°ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ? ΠΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ? ΠΡΠΎ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΡ? ΠΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ? ΠΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΡ Ρ DOM ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠ»ΠΎΡ Π°, ΠΊΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ GOTO Π² Π»ΠΎΠ³ΠΈΠΊΠ΅ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΡ ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Ρ React:
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΡ ΠΆΠ΅ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠΈΡΠΎΠ²Π°Π½. ΠΡΠ»ΠΈ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ β Π²Ρ Π·Π½Π°Π΅ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Ρ ΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎΠ³Π΄Π° ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ.
2. Π‘Π²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ JavaScript ΠΈ HTML Π² JSX Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΡΠΎΡΡΡΠΌΠΈ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ.
Π‘ΡΡΠ°Π½Π½ΠΎΠ΅ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ HTML/JavaScript ΠΌΠΎΠΆΠ΅Ρ Π²Π°Ρ ΡΠΌΡΡΠΈΡΡ. ΠΠ°Ρ ΡΡΠΈΠ»ΠΈ Π½Π΅ Π²ΡΡΠ°Π²Π»ΡΡΡ JavaScript Π² DOM (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ OnClick), Π΅ΡΠ΅ Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π±ΡΠ»ΠΈ Β«ΠΊΡΠΎΡΠ΅ΡΠ½ΡΠΌΠΈΒ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ (ΠΎΡ: since we were wee developers). ΠΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠ½Π΅ Π²Π΅ΡΠΈΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ JSX ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ.
ΠΠ±ΡΡΠ½ΠΎ Π²Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ (HTML) ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ (JavsScript). ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΠΎΠΌΡ JavaScript ΡΠ°ΠΉΠ»Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΌΡ Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ JS->HTML->JS->Π½Π΅ΠΏΡΠΈΡΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ.
Π‘Π²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π½Π°ΠΏΡΡΠΌΡΡ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΎΠΉ ΠΈ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΡΡΠΎΠ³ΠΎ Π² ΠΏΠΎΡΡΠ°ΡΠΈΠ²Π½ΡΠΉ, Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΉ Β«ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΒ», ΡΠ΄Π΅Π»Π°Π΅Ρ Π²Π°Ρ ΡΡΠ°ΡΡΠ»ΠΈΠ²Π΅Π΅, Π° Π²Π°Ρ ΠΊΠΎΠ΄ Π² ΡΠ΅Π»ΠΎΠΌ Π»ΡΡΡΠ΅. ΠΠ°Ρ Javasacript Β«Ρ ΠΎΡΠΎΡΠΎ Π·Π½Π°ΠΊΠΎΠΌΒ» Ρ Π²Π°ΡΠΈΠΌ HTML, ΡΠ°ΠΊ ΡΡΠΎ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ».
3. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ React Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΡ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ Π²Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΡΠ΅ Π²ΡΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅, ΡΠΎ Π²Ρ Π²ΡΠ±ΡΠ°Π»ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΡΡΡ. ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ β ΡΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π°, ΠΏΠΎΡΠ΅ΠΌΡ SoundCloud ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ Stack Overflow (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³) ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ Π±ΡΡΡΡΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ React Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΎΠ³ΠΎ Π΄Π΅Π»Π°ΡΡ.
Angular ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠΎΡΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ PhantomJS Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΅Π΅ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΌ Π΄Π²ΠΈΠΆΠΊΠ°ΠΌ (ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° user-Π°Π³Π΅Π½ΡΠ΅) ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ»Π°ΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². Π’Π¬Π€Π£!
ΠΠΈΠ½ΡΡΡ
ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ React β ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
Π ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΌΠΈΡΠ΅ React ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π΅Π½. Π₯ΡΠΆΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ°Π΅Ρ ΡΠ²ΠΎΠΉ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄.
2. ΠΠ»ΠΎΡ
Π°Ρ ΠΈ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
ΠΠΎΠ²ΡΠΎΡΡΡΡ, ΡΡΠ° ΡΡΠ°ΡΡΡ Π΄Π»Ρ Π³Π»ΡΠΏΡΡ
Π»ΡΠ΄Π΅ΠΉ. ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΠ΅ΡΠ²ΡΡ ΡΠ°ΡΡΡ Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΠ΄Π΅ΡΡ ΡΡΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ , ΠΊΠΎΠ½ΠΊΡΡΠΈΡΡΡΡΠΈΠ΅ ΡΡΡΠΎΡΠΈΠ°Π»Π° Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . ΠΡΠΎ ΡΠ΄ΠΈΠ²Π»ΡΠ΅Ρ. ΠΠΎΠΊΠΎΠ²Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ Π½ΠΈΠΆΠ΅, ΡΠ»ΠΎΠ²Π½ΠΎ ΠΈΠ· ΠΌΠΎΠΈΡ Π½ΠΎΡΠ½ΡΡ ΠΊΠΎΡΠΌΠ°ΡΠΎΠ², Ρ ΡΠ°Π·Π΄Π΅Π»Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΠ½ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π΄Π΅ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«More About RefsΒ» ΠΈ Β«PureRenderMixinΒ» (ΠΏΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°: ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ React).
3. React Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ, ΡΡΠΈΡΡΠ²Π°Ρ ΡΠΎ, ΠΊΠ°ΠΊ ΠΌΠ°Π»ΠΎ Π²Ρ ΠΎΡ Π½Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠ»ΠΎΡ ΡΡ ΠΊΡΠΎΡΡΠ±ΡΠ°ΡΠ·Π΅ΡΠ½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ.
35 KB gzipped
ΠΡΠΎ Π±Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² reacat-with-addons, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ!
ΠΡΠΎ Π±Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ES5-shim, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ IE8!
ΠΡΠΎ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ!
ΠΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ React ΡΡΠ°Π²Π½ΠΈΠΌ Ρ Angular, Ρ ΠΎΡΡ Angular β ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ. React, ΠΎΡΠΊΡΠΎΠ²Π΅Π½Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΠΆΠΈΡΠ½ΡΠΉ, Π΄Π»Ρ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠ΄Π΅ΠΌ Π½Π°Π΄Π΅ΡΡΡΡΡ, ΡΡΠΎ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΡΡΠΎ ΠΏΠΎΠΏΡΠ°Π²ΡΡ.
Π₯Π²Π°ΡΠΈΡ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Β«FLUXΒ»
Flux ΡΠΊΠΎΡΠ΅Π΅ ΠΏΠ°ΡΡΠ΅ΡΠ½, ΡΠ΅ΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ
Π’ΡΡΡ. Π₯ΡΠΆΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΎ, ΡΡΠΎ React Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΎΡΠΌΡΡΠ»ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 40 Π»Π΅Ρ Π·Π½Π°Π½ΠΈΠΉ Π² ΠΎΠ±Π»Π°ΡΡΠΈ UI-Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ Π½Π΅ ΠΏΡΠΈΠ΄ΡΠΌΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ.
ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Flux ΠΏΡΠΎΡΡΠ°: Π²Π°ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ ΠΈΠΌΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅), ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΌΠΎΠ΄Π΅Π»Ρ, Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠ΄Π΅Π»Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΠΎΡ ΠΈ Π²ΡΠ΅.
ΠΠ΄Π½ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ°Π±Π»ΠΎΠ½ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Β«Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π»ΡΒ» Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π²Π°ΡΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°/ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π²ΡΠ΅Π³Π΄Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ.
ΠΠ»ΠΎΡ ΠΎΠΉ ΡΡΠΎΡΠΎΠ½ΠΎΠΉ Flux ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π·Π°Π½ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ. Π’Π°ΠΊ ΠΈ Π½Π΅Ρ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΠ»ΠΎΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, AJAX ΡΠ»ΠΎΠ΅ ΠΈ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ, Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ Β«FluxΒ» ΠΈ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ.
ΠΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ React?
Π Π°Π·Π²Π΅ΡΠ½ΡΡΡΠΉ ΠΎΡΠ²Π΅Ρ: ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π΄Π°, Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ Π²Π΅ΡΠ΅ΠΉ.
Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠ° ΡΡΠ°ΡΡΡΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ Π³Π»ΡΠΏΡΠΌ Π»ΡΠ΄ΡΠΌ, ΠΊΠ°ΠΊ ΠΈ Ρ, Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ React. ΠΡΠ»ΠΈ ΡΡΠΎΡ ΠΏΠΎΡΡ ΡΠ΄Π΅Π»Π°Π» Π²Π°ΡΡ ΠΆΠΈΠ·Π½Ρ ΠΏΡΠΎΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° ΠΌΠ΅Π½Ρ Π² Π’Π²ΠΈΡΠ΅ΡΠ΅.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅: Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ 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, Π·Π°ΠΌΠ΅Π½ΠΈΠ²*> Π½Π°
ΠΠΎΡΠ»Π΅: ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΈΡΠ»ΠΎ Π²Π½ΡΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°.
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ! ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Β«ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ ΠΏΡΠΎΠΏΒ» ΠΈΠ· ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° 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, Π²ΠΎΡ ΠΏΠ°ΡΠ° ΠΈΠ΄Π΅ΠΉ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π½Π΅Π΄ΡΠΈΡΡ Π² ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ (ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ):




