Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ 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, β€” просто ΠΏΠΎΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΈΠΌ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это

альбома amnesiac отсылала ΠΊ ΠΈΠ΄Π΅Π΅ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°, ΠΈ новая интСрактивная выставка Ρ‚ΠΎΠΆΠ΅ β€” Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚. ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π²ΠΎΠΏΠ»ΠΎΡ‰Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠΈΡ€Ρ‹ radiohead, создали совмСстно с epic games. Π² Π½Ρ‘ΠΌ Π·Π²ΡƒΡ‡Π°Ρ‚ пСсни ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΈΠ·Π΄Π°Π½Π½Ρ‹Ρ… альбомов. выставку создали Ρ„Ρ€ΠΎΠ½Ρ‚ΠΌΠ΅Π½ Ρ‚ΠΎΠΌ ΠΉΠΎΡ€ΠΊ ΠΈ Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊ стэнли Π΄ΠΎΠ½Π²ΡƒΠ΄, постоянно Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ с Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ, Π° Π·Π²ΡƒΠΊΠΎΠ²Ρ‹ΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ занимался ΠΏΡ€ΠΎΠ΄ΡŽΡΠ΅Ρ€ Π½Π°ΠΉΠ΄ΠΆΠ΅Π» Π³ΠΎΠ΄Ρ€ΠΈΡ‡.

Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΏΠΎΠ»Π½ΠΎ руководств ΠΏΠΎ React.js с названиями Ρ‚ΠΈΠΏΠ° for dummies, for idiots β€” Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ². Но ΠΎΠ½ΠΈ ΠΏΠΎ большСй части Π½Π΅Π³ΡƒΠΌΠ°Π½Π½Ρ‹ ΠΈ довольно слоТны β€” Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ Π±Π΅Π· знания JavaScript ΠΏΠΎΠ»ΡŒΠ·Ρ‹ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сильнСС запутаСтся ΠΈ почувствуСт сСбя Ρ‚Π΅ΠΌ самым dummy. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ максимально просто ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React.js, для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½, ΠΊΠ°ΠΊ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ‡Ρ‚ΠΎ понадобится для ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π§Ρ‚ΠΎ это Π΅Ρ‰Ρ‘ Π·Π° Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΊΡ‚ΠΎΠΊ Ρ‚Π°ΠΊΠΎΠΉ?

React.js β€” это JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΎΡ‚ Facebook для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ интСрфСйсов, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ внСшнСй части сайтов ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ взаимодСйствуСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ.

Главная Ρ„ΠΈΡˆΠΊΠ° React.js β€” ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ состояния.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ β€” это кусочСк ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° внСшний Π²ΠΈΠ΄ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· элСмСнтов сайта ΠΈΠ»ΠΈ прилоТСния. ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ Ρ‚Π°ΠΊΠΈΠ΅ кусочки-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ.

БостояниС β€” это вся информация ΠΎΠ± элСмСнтС, Π² Ρ‚ΠΎΠΌ числС ΠΎ Π΅Π³ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. НапримСр, состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Β«Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€Β» ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ свойствами current_temperature, min ΠΈ max.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это

Π€Π°Π½Π°Ρ‚ Free Software Foundation, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Linux ΠΈ Π½Π΅Π΄ΠΎΠ»ΡŽΠ±Π»ΠΈΠ²Π°Π΅Ρ‚ Windows. ΠŸΠΈΡˆΠ΅Ρ‚ истории ΠΏΡ€ΠΎ ΠΊΠΎΠ΄ΠΈΠ½Π³ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Python. Π’Π»ΡŽΠ±Π»Ρ‘Π½ Π² Lisp, Π½ΠΎ ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ Π½Π° Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ Π½Π° понятный язык: Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ состояния

Пока Π·Π²ΡƒΡ‡ΠΈΡ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ абстрактно ΠΈ слоТно, Π½ΠΎ Π½Π° Π΄Π΅Π»Π΅ всё Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅. ΠŸΠΎΡ‚Ρ€Π΅Π½ΠΈΡ€ΡƒΠ΅ΠΌΡΡ Π½Π° Π¦ΡƒΠΊΠ΅Ρ€Π±Π΅Ρ€Π³Π΅: Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², это Π΅Π³ΠΎ Π΄Π΅Ρ‚ΠΈΡ‰Π΅ β€” Π΅ΠΌΡƒ ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ.

На ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ Ρ‚Ρ€ΠΈ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° β€” пост Π² Π»Π΅Π½Ρ‚Π΅ Facebook, Π±Π»ΠΎΠΊ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π±Π»ΠΎΠΊ с Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ. Π’ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… входят Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. НапримСр, Π²Π½ΡƒΡ‚Ρ€ΠΈ поста Π΅ΡΡ‚ΡŒ тСкст, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π°Π²Π°Ρ‚Π°Ρ€ΠΊΠ°, имя Π°Π²Ρ‚ΠΎΡ€Π°, Π»Π°ΠΉΠΊΠΈ, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ элСмСнты. Π’Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° с фотографиями β€” ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΎΡ‚ΠΎ, Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° с ΠΊΡ€Π°Ρ‚ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ β€” собствСнно, Ρ‚Π° самая краткая информация.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это

Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· этих ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π΅ΡΡ‚ΡŒ состояния. НапримСр, Π±Π»ΠΎΠΊ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π½Π° мобильной ΠΈ дСсктопной вСрсии, Ρƒ сСрдСчка мСняСтся Ρ†ΠΈΡ„Ρ€Π° с Π»Π°ΠΉΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Ρ†Π²Π΅Ρ‚ (Ссли Π²Ρ‹ Π»Π°ΠΉΠΊΠ½ΡƒΠ»ΠΈ ΠΈΠ»ΠΈ Π½Π΅ Π»Π°ΠΉΠΊΠ½ΡƒΠ»ΠΈ запись), Π° пост ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π΅Π·Π°Ρ‚ΡŒ тСкст, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ содСрТимоС ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ содСрТания. Π’Π΅Π΄ΡŒ содСрТаниС поста β€” это Ρ‚ΠΎΠΆΠ΅ Π΅Π³ΠΎ состояниС. ИмСнно Π² этом проявляСтся Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ сила React.js: Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π° ΠΏΠΎΡ‚ΠΎΠΌ просто ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚Π΅ Π΅ΠΌΡƒ Ρ€Π°Π·Π½Ρ‹Π΅ состояния.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ Π² зависимости ΠΎΡ‚ состояния мСняСтся Ρ€Π°Π·ΠΌΠ΅Ρ€ Π°Π²Π°Ρ‚Π°Ρ€ΠΊΠΈ:

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это

Π£ΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Ρ‚Ρ€ΠΈ состояния, Π½ΠΎ это Π½Π΅ ΠΏΡ€Π΅Π΄Π΅Π» β€” вСдь внСшний Π²ΠΈΠ΄ Π°Π²Π°Ρ‚Π°Ρ€ΠΊΠΈ различаСтся Π² мобильной ΠΈ дСсктопной вСрсии, Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ для 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. ΠŸΠ»ΠΎΡ…Π°Ρ ΠΈ нСпонятная докумСнтация.
ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡŽΡΡŒ, эта ΡΡ‚Π°Ρ‚ΡŒΡ для Π³Π»ΡƒΠΏΡ‹Ρ… людСй. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ:

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это

Π—Π΄Π΅ΡΡŒ Ρ‚Ρ€ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ…, ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π° для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π­Ρ‚ΠΎ удивляСт. Боковая панСль Π½ΠΈΠΆΠ΅, словно ΠΈΠ· ΠΌΠΎΠΈΡ… Π½ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠΎΡˆΠΌΠ°Ρ€ΠΎΠ², с Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ здСсь, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«More About RefsΒ» ΠΈ Β«PureRenderMixinΒ» (ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: ΠΏΠ»Π°Π³ΠΈΠ½ для React).

3. React достаточно большой, учитывая Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΌΠ°Π»ΠΎ Π²Ρ‹ ΠΎΡ‚ Π½Π΅Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠ»ΠΎΡ…ΡƒΡŽ ΠΊΡ€ΠΎΡΡΠ±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ react Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ 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, Π²ΠΎΡ‚ ΠΏΠ°Ρ€Π° ΠΈΠ΄Π΅ΠΉ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π² крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ (пСрСчислСны Π² порядкС увСличСния слоТности):

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *