Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ react: ReactJS для Π³Π»ΡƒΠΏΡ‹Ρ… людСй / Π₯Π°Π±Ρ€

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Аутсорсинг Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° React πŸ’»

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React.js

ΠšΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ влияСт Π½Π° успСх соврСмСнного бизнСс-прилоТСния, поэтому Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° β€” ΠΎΠ΄Π½Π° ΠΈΠ· самых Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ областСй программирования. Π‘Π»ΠΎΠΆΠ½ΠΎ ΡƒΠ³Π½Π°Ρ‚ΡŒΡΡ Π·Π° всСм мноТСством Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΉ ΠΈ инструмСнтов Π² этой сфСрС. Π‘ принятиСм стандарта ES6, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΎΡ‚Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΡ‚ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ jQuery Π² сторону Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ…, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½Ρ‹Ρ… способов структурирования ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π˜Π½Π°Ρ‡Π΅ говоря, язык JavaScript развиваСтся ΠΈ вслСд Π·Π° этими измСнСниями ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

На Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ принято Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΈΠ³Ρ€ΠΎΠΊΠ° β€” React, Vue ΠΈ Angular, ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ расскаТСм Π² этом ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅. React β€” это бСсплатная JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° компания Facebook. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ Π² 2013 Π³ΠΎΠ΄Ρƒ, ΠΈ с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½Π΅ΡƒΠΊΠ»ΠΎΠ½Π½ΠΎ растСт. БСйчас Π΅Ρ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠ°ΠΊ Instagram, Netflix, Yahoo, Dropbox ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. По Π΄Π°Π½Π½Ρ‹ΠΌ BuiltWith ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 2,5 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° Π²Π΅Π±-сайтов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ React.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ отличия ReactJS

Π‘ тСхничСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния React, Vue ΠΈ Angular ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, Π΄Π°ΠΆΠ΅ Ссли это Π½Π΅ одностраничноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (SPA). На этом Π³Π»Π°Π²Π½Ρ‹Π΅ сходства Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Vue ΠΈ Angular, React это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Π° Π½Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ. Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ этими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ инструмСнтов частый ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… споров, Π½ΠΎ для удобства ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ свободу, Ρ‡Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ.

Если ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π΅Π΅, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° позволяСт ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ DOM, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΈΡ… состояниями. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ остаСтся Π½Π° усмотрСниС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. МногиС прилоТСния React ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, созданныС ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ сообщСством программистов. Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ React-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ трСбуСтся Π±ΠΎΠ»Π΅Π΅ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ экспСртизы, поэтому Π±ΡƒΠ΄Π΅Ρ‚ справСдливо ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ слоТнСС ΠΈ ΠΏΠΎΡ€ΠΎΠ³ Π²Ρ…ΠΎΠ΄Π° Π² эту Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ Π²Ρ‹ΡˆΠ΅ Ρ‡Π΅ΠΌ Π² Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅.

Π’ Vue ΠΈ Angular, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны сразу встроСны элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Тизнь: синтаксичСский сахар, систСма ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΠΈ этих инструмСнтов прСдусмотрСли распространСнныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ программистов ΠΈ прСдоставили ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ» для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Но Π·Π° Ρ‚Π°ΠΊΠΈΠ΅ прСимущСства приходится ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ нСстандартного Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ряд ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

Для ΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ React.js

ReactJS β€” это Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ ΠΏΡ€ΠΈ создании Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ слоТных ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° позволяСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ большиС ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ динамичСского ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ мСняСтся Π²ΠΎ врСмя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ просмотра. Π”Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΈ ускоряСт процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ выпуска ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого инструмСнта Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ сайт, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ· Π³ΠΈΠ±ΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (ΠΏΠ°Π½Π΅Π»ΠΈ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ, списки ΠΈ ΠΏΡ€.) Π½Π΅ пСрСписывая ΠΊΠΎΠ΄. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ½ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ качСствСнныС прилоТСния, с Π³ΠΈΠ±ΠΊΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊ Π»ΡŽΠ±Ρ‹ΠΌ дальнСйшим измСнСниям.

Если ΠΏΠ΅Ρ€Π΅Π΄ принятиСм Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ваши ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Ρ‹, Ρ‚ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это нСслоТно β€” установитС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для Google Chrome ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ вас сайт, Π° дальшС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сообщит Π²Π°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ Π½Π° сайтС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ React.

Аутсорсинг Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° React.js

На Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ исполнитСля? ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, React-программист β€” это Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, с Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΌ Π·Π½Π°Π½ΠΈΠ΅ΠΌ JavaScript ΠΈ ΡƒΠΌΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ инструмСнтами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈ создании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. НС Π±ΠΎΠΉΡ‚Π΅ΡΡŒ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π΅Ρ‰Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π½Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ.

НапримСр, Ссли Π²Ρ‹ рассматриваСтС аутсорсинг Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ React.js для вашСго прилоТСния, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ подрядчик Π·Π½Π°Π΅Ρ‚ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-тСхнологиями. Если Ρƒ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° достаточный ΠΎΠΏΡ‹Ρ‚ ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ ΠΊΡ€ΡƒΠ³ΠΎΠ·ΠΎΡ€, Ρ‚ΠΎ ΠΎΠ½ смоТСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ подходящиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Наши спСциалисты ΠΏΠΎ React.js

Π‘Ρ€Π΅Π΄ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ тСндСнция ΠΊ Π²Ρ‹Π±ΠΎΡ€Ρƒ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ React. По Π΄Π°Π½Π½Ρ‹ΠΌ State of JS Ρƒ этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ самый высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ удовлСтворСнности ΠΈ большС 70% Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² Ρ€Π°Π±ΠΎΡ‚Π΅. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ сСйчас Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² создаСтся с использованиСм этой js-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ примСняСм Π΅Ρ‘ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹

Π‘ΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Π°Ρ тСхнология β€” это Ρ‚Π° тСхнология, которая ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΈ ускоряСт процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, принося ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, Ρ‚Π°ΠΊ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ. Π‘ ReactJS ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Π±-прилоТСния для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅, срСдниС ΠΈΠ»ΠΈ ΠΌΠ°Π»Ρ‹Π΅ прСдприятия.

Если вашСй Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎ Facebook Ρ‚Π°ΠΊΠΆΠ΅ прСдставил ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ React Native для создания кроссплатформСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для iOS ΠΈ Android. Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ внСшний Π²ΠΈΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Ρƒ Π²Π΅Π±-прилоТСния Π½Π° React. Аутсорсинг Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ React Native ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ бизнСс Ρ†Π΅Π»Π΅ΠΉ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΎΡ…Π²Π°Ρ‚ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

Наши спСциалисты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ ряд Π²Π΅Π± ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡƒΠΌΠ΅ΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ систСмы ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ отдСляя интСрфСйсы ΠΎΡ‚ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡŽ

React β€” всё ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ для программистов

Π§Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ React-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π² 2021 Π³ΠΎΠ΄Ρƒ

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π½ΡƒΠΆΠ½ΠΎ Π²Π»Π°Π΄Π΅Ρ‚ΡŒ React-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π² 2021 Π³ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ вострСбованным спСциалистом.

Как ΡΡ‚Π°Ρ‚ΡŒ React-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Π² 2021: дороТная ΠΊΠ°Ρ€Ρ‚Π°

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΡΡ‚Π°Ρ‚ΡŒ React-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Π² 2021? Π”Π΅Ρ€ΠΆΠΈΡ‚Π΅ Π΄ΠΎΡ€ΠΎΠΆΠ½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ, которая собрала must-have Ρ‚Π΅ΠΌΡ‹ ΠΈ инструмСнты.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Windows Π½Π° React Native

На React Native Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ прилоТСния ΠΏΠΎΠ΄ Android ΠΈ iOS. Благодаря ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ Π½Π° Π½Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄ Windows.

Flutter vs React-Native: Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ сравнСниС

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Flutter ΠΈ React-Native ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²Ρ‘Π» нСсколько мСсяцСв с ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° с послСднСй.

Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ React ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Microsoft Office

Как ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ возмоТности MS Office с помошью кастомного Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π° JavaScript.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Recharts

Π‘Ρ‚Π°Ρ‚ΡŒΡ, которая Π±ΡƒΠ΄Π΅Ρ‚ интСрСсна Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ React ΠΈ Recharts (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π½Π° основС SVG) для построСния Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ².

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки Π΄ΠΆΡƒΠ½ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… React

Π Π°Π·Π±ΠΎΡ€ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· ошибок (ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΆΡƒΠ½Ρ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ Π½Π° Ρ€Π°Π½Π½Π΅ΠΌ этапС своСго ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ роста.

Как Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ своё ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° React Native

РазбираСмся, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ React Native, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ сСйчас Π²Π°ΠΆΠ΅Π½ ΠΈ популярСн, Π° Ρ‚Π°ΠΊΠΆΠ΅ создаём нСбольшой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для дСмонстрации основ.

Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с бэкСндом Π½Π° Django ΠΈ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ΠΎΠΌ Π½Π° React

Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ REST API Π½Π° Django, добавляСм React Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ соСдиняСм Django ΠΈ React.

10 Ρ„ΠΈΡˆΠ΅ΠΊ ΠΈΠ· JavaScript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ качСствСнный ΠΊΠΎΠ΄ Π½Π° React

React β€” это ΠΏΠΎΡ‡Ρ‚ΠΈ чистый JS. Π§Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ JS, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹ Π² React. Π Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΡ€ΡƒΡ‡Π΅ ΠΈ Π½Π° Ρ‚ΠΎΠΌ, ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

CΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² для кроссплатформСнной мобильной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ: React Native, Flutter, Ionic, Xamarin ΠΈ PhoneGap

Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅ΠΌ самыС популярныС кроссплатформСнныС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΈ разбираСмся, Π² ΠΊΠ°ΠΊΠΈΡ… случаях Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ…. Π•ΡΡ‚ΡŒ удобная Ρ‚Π°Π±Π»ΠΈΡ†Π°.

React Context Π·Π° 5 ΠΌΠΈΠ½ΡƒΡ‚: Ρ‡Ρ‚ΠΎ это ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React Context ΠΈ ΠΊΠ°ΠΊ с Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ? Быстрый ΠΈ понятный Ρ€Π°Π·Π±ΠΎΡ€ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ drag-and-drop элСмСнты Π½Π° React

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассмотрим созданиС drag-and-drop элСмСнтов Π½Π° React с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ react-beautiful-dnd ΠΎΡ‚ Atlassian.

ПишСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ со списком Π΄Π΅Π» ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ React Hooks

React Hooks β€” это Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ состояния ΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» (state, lifecycle) React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π±Π΅Π· использования ES6-классов. НСкоторыС прСимущСства React Hooks: изолированная Π»ΠΎΠ³ΠΈΠΊΠ° ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ тСсты; ΠΏΡ€ΠΈ распрСдСлСнии…

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Ρ‡Π΅Ρ€Π΅Π· классы: Π²Ρ‹Ρ‡ΠΈΡ‰Π°Π΅ΠΌ свой JavaScript-ΠΊΠΎΠ΄

Π’ срСдних ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ классы. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассотрСн нСобольшой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

Бпособы ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Π² React

React ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ своими ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ:Render props / props; Context; React-Redux / Redux.

React: ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ

React β€” популярный Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ. Если ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π³Π»ΡƒΠ±ΠΆΠ΅, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π½Π° Π΅Π³ΠΎ основС.

React, Angular ΠΈ Vue: Ρ‡Ρ‚ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π² 2019 Π³ΠΎΠ΄Ρƒ?

Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ β€” ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ соврСмСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠΠ΅ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ оброс мноТСством инструмСнтов, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², ΠΏΡ€ΠΈΠ·Π²Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² Ρ€Π°Π±ΠΎΡ‚Π΅. Но Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ новая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: Π§Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ для…

React.js для ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‰ΠΈΡ…

Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ с основами React. Π§Ρ‚ΠΎ дальшС? А Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ β€” 5 ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ, ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ΅Ρ‚ ваш скилл Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ сСрвСрного Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°: ΠΏΡ€ΠΎΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ email-рассылку ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ React

РассказываСт ΠΠ»ΡŒΠ±Π΅Ρ€Ρ‚ΠΎ Рэстифо, JS-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠŸΠ°Ρ€Ρƒ нСдСль Π½Π°Π·Π°Π΄ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° сообщил, Ρ‡Ρ‚ΠΎ в блиТайшиС нСсколько спринтов ΠΌΡ‹Β Π±ΡƒΠ΄Π΅ΠΌ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ элСктронными письмами. АвтоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ email’ы Π½Π°Π΄ΠΎ Π±Ρ‹Π»ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎΒ Π±Ρ‹ ΠΊΒ ΡƒΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡŽ вёрстки.

ПишСм ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° React с нуля Π·Π° час

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с React β€” JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов. Π’Ρ‹ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Π° ΠΏΠΎΠ³ΠΎΠ΄Ρ‹ с нуля.

Π‘ΠΎΡ†ΡΠ΅Ρ‚ΡŒ Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ силой мысли ΠΈ мноТСство Π½ΠΎΠ²ΠΈΠ½ΠΎΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² β€” всё, Ρ‡Ρ‚ΠΎ Facebook ΠΏΠΎΠΊΠ°Π·Π°Π»Π° Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ F8

18–19 апрСля ΠΏΡ€ΠΎΡˆΠ»Π° СТСгодная конфСрСнция Facebook ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ F8. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… этого события компания ΠΏΠΎΠΊΠ°Π·Π°Π»Π° мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π½ΠΎΠ²ΠΈΠ½ΠΎΠΊ.

9 ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… совСтов для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ знакомство с React.js

РассказываСт Кэм ДТСксон  Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΒ React.jsΒ ΡƒΠΆΠ΅ 6 мСсяцСв. Π”Π°, Π·Π²ΡƒΡ‡ΠΈΡ‚, ΠΊΠ°ΠΊ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ срок, Π½ΠΎ для постоянно ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΌΠΈΡ€Π° JS-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² это ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ! Π― ΡƒΠΆΠ΅ Π΄Π°Π²Π°Π» совСты Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ, ΠΈ поэтому Ρ€Π΅ΡˆΠΈΠ», что…

Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ с React — Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ скаТСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚ React. ΠœΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ подробностСй ΠΎ Π΅Π³ΠΎ происхоТдСнии ΠΈ сцСнариях использования, настроим Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ инструмСнтов Π½Π° нашСм локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ создадим ΠΈ ΠΏΠΎΠΈΠ³Ρ€Π°Π΅ΠΌ с простым ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, ΠΈ Π² процСссС ΡƒΠ·Π½Π°Π΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ React Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ .

Π§Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ:

HTML, CSS, ΠΈ JavaScript, Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ с тСрминалом/ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой.

React ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ синтаксис HTML-in-JavaScript ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ JSX (JavaScript ΠΈ XML). Π—Π½Π°Π½ΠΈΠ΅Β HTML ΠΈ JavaScript ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ JSX ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, связаны Π»ΠΈ ошибки Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ с JavaScript ΠΈΠ»ΠΈ с Π±ΠΎΠ»Π΅Π΅ спСцифичСской ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ React.

Π—Π°Π΄Π°Ρ‡Π°:

ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ React, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒΒ ΡΡ‚Π°Ρ€Ρ‚ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ основы Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Как гласит ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ слоган, React — это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов. React Π½Π΅ являСтся Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ – ΠΎΠ½ Π΄Π°ΠΆΠ΅ Π½Π΅ рассчитан ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для web. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡΒ Π΄Π»Ρ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π² связкС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ. НапримСр, React Native ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ;Β React 360 ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ; ΠΏΠΎΠΌΠΈΠΌΠΎ Ρ‚ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹.

Для создания Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ React Π² Ρ‚Π°Π½Π΄Π΅ΠΌΠ΅ с ReactDOM. React and ReactDOM часто ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ пространствС ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ настоящиС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ для Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Когда ΠΌΡ‹ ссылаСмся Π½Π° React ΠΊΠ°ΠΊ Π½Π° Β«Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΒ», ΠΌΡ‹ подразумСваСм это разговорноС пониманиС.

Основная Ρ†Π΅Π»ΡŒ React — ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ошибки, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов. Π­Ρ‚ΠΎ достигаСтся Π·Π° счёт использования ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² — Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹Ρ… логичСских Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. А ΡƒΠΆΠ΅ эти ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡΒ Π΄Π»Ρ создания ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.Β React абстрагируСт Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, оставляя Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π΄ΠΈΠ·Π°ΠΉΠ½Π΅.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, рассматриваСмых Π² этом ΠΌΠΎΠ΄ΡƒΠ»Π΅, React Π½Π΅ обязываСт к строгим правилам Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ соглашСний ΠΎ ΠΊΠΎΠ΄Π΅ ΠΈΠ»ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ². Π­Ρ‚ΠΎ позволяСт ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Π΄ΠΎΠ³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ для Π½ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ React ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. React ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π·Π° ΠΎΠ΄Π½Ρƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ, нСсколько частСй ΠΈΠ»ΠΈ ТС вСсь ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс прилоТСния.

Π₯отя React ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… частСй интСрфСйса, Β«Π·Π°ΠΉΡ‚ΠΈΒ» Π² Π½Π΅Π³ΠΎ Π½Π΅ Ρ‚Π°ΠΊ просто, ΠΊΠ°ΠΊ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ,Β Π² jQuery, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π²ΠΎΒ Vue. ΠšΡƒΠ΄Π° Π»Π΅Π³Ρ‡Π΅ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒΒ ΡΠΎΠ·Π΄Π°Π² всё прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ React.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚Π°ΠΊΠΈΠ΅ прСимущСства React-прилоТСния,Β ΠΊΠ°ΠΊ написаниС интСрфСйсов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽΒ JSX,Β Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ процСсса компиляции. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅Β Π½Π° сайт компилятора BabelΒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°, поэтому такиС инструмСнты ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ для процСсса сборки. Π”Π°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡƒΒ React Π΅ΡΡ‚ΡŒ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Π΅ трСбования к ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡŽ, Π½ΠΎ этому ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ использованию React для создания всСго ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽΒ create-react-app, прСдоставляСмого Facebook.

React utilizes features of modern JavaScript for many of its patterns. Its biggest departure from JavaScript comes with the use of JSX syntax. JSX extends JavaScript’s syntax so that HTML-like code can live alongside it. For example:

const heading = <h2>Mozilla Developer Network</h2>;

This heading constant is known as a JSX expression. React can use it to render that <h2> tag in our app.

Suppose we wanted to wrap our heading in a <header> tag, for semantic reasons? The JSX approach allows us to nest our elements within each other, just like we do with HTML:

const header = (
  <header>
    <h2>Mozilla Developer Network</h2>
  </header>
);

Note: The parentheses in the previous snippet aren’t unique to JSX, and don’t have any effect on your application. They’re a signal to you (and your computer) that the multiple lines of code inside are part of the same expression. You could just as well write the header expression like this:

const header = <header>
    <h2>Mozilla Developer Network</h2>
</header>

However, this looks kind of awkward, because the <header> tag that starts the expression is not indented to the same position as its corresponding closing tag.

Of course, your browser can’t read JSX without help. When compiled (using a tool like Babel or Parcel), our header expression would look like this:

const header = React.createElement("header", null,
  React.createElement("h2", null, "Mozilla Developer Network")
);

It’s possible to skip the compilation step and use React.createElement() to write your UI yourself. In doing this, however, you lose the declarative benefit of JSX, and your code becomes harder to read. Compilation is an extra step in the development process, but many developers in the React community think that the readability of JSX is worthwhile. Plus, popular tooling makes JSX-to-JavaScript compilation part of its setup process. You don’t have to configure compilation yourself unless you want to.

Because JSX is a blend of HTML and JavaScript, some developers find it intuitive. Others say that its blended nature makes it confusing. Once you’re comfortable with it, however, it will allow you build user interfaces more quickly and intuitively, and allow others to better understand your code base at a glance.

To read more about JSX, check out the React team’s JSX In Depth article.

There are many ways to use React, but we’re going to use the command-line interface (CLI) tool create-react-app, as mentioned earlier, which expedites the process of developing a React application by installing some packages and creating some files for you, handling the tooling described above.

It’s possible to add React to a website without create-react-app by copying some <script> elements into an HTML file, but the create-react-app CLI is a common starting point for React applications. Using it will allow you spend more time building your app, and less time fussing with setup.

Requirements

In order to use create-react-app, you need to have Node.js installed. It’s recommended that you use the long-term support (LTS) version. Node includes npm (the node package manager), and npx (the node package runner).

You may also use the Yarn package manager as an alternative, but we’ll assume you are using npm in this set of tutorials. See Package management basics for more information on npm and yarn.

If you’re using Windows, you will need to install some software to give you parity with Unix/macOS terminal in order to use the terminal commands mentioned in this tutorial. Gitbash (which comes as part of the git for Windows toolset) or Windows Subsystem for Linux (WSL) are both suitable. See Command line crash course for more information on these, and on terminal commands in general.

Also bear in mind that React and ReactDOM produce apps that only work on a fairly modern set of browsers β€” IE9+ by way of some polyfills. It is recommended that you use a modern browser like Firefox, Safari, or Chrome when working through these tutorials.

Also see the following for more information:

Initializing your app

create-react-app takes one argument: the name you’d like to give your app. create-react-app uses this name to make a new directory, then creates the necessary files inside it. Make sure you cd to the place you’d like your app to live on your hard drive, then run the following in your terminal:

npx create-react-app moz-todo-react

This creates a moz-todo-react directory, and does several things inside it:

  • Installs some npm packages essential to the functionality of the app.
  • Writes scripts for starting and serving the application.
  • Creates a structure of files and directories that define the basic app architecture.
  • Initializes the directory as a git repository, if you have git installed on your computer.

Note: if you have the yarn package manager installed, create-react-app will default to using it instead of npm. If you have both package managers installed and explicitly want to use NPM, you can add the flag --use-npm when you run create-react-app:

npx create-react-app moz-todo-react --use-npm

create-react-app will display a number of messages in your terminal while it works; this is normal! This might take a few minutes, so now might be a good time to go make a cup of tea.

When the process is complete, cd into the moz-todo-react directory and run the command npm start. The scripts installed by create-react-app will start being served at a local server at localhost:3000, and open the app in a new browser tab. Your browser will display something like this:

Application structure

create-react-app gives us everything we need to develop a React application. Its initial file structure looks like this:

moz-todo-react
β”œβ”€β”€ README.md
β”œβ”€β”€ node_modules
β”œβ”€β”€ package. json
β”œβ”€β”€ package-lock.json
β”œβ”€β”€ .gitignore
β”œβ”€β”€ public
β”‚   β”œβ”€β”€ favicon.ico
β”‚   β”œβ”€β”€ index.html
β”‚   └── manifest.json
└── src
    β”œβ”€β”€ App.css
    β”œβ”€β”€ App.js
    β”œβ”€β”€ App.test.js
    β”œβ”€β”€ index.css
    β”œβ”€β”€ index.js
    β”œβ”€β”€ logo.svg
    └── serviceWorker.js

The src directory is where we’ll spend most of our time, as it’s where the source code for our application lives.

The public directory contains files that will be read by your browser while you’re developing the app; the most important of these is index.html. React injects your code into this file so that your browser can run it. There’s some other markup that helps create-react-app function, so take care not to edit it unless you know what you’re doing. You very much should change the text inside the <title> element in this file to reflect the title of your application. Accurate page titles are important for accessibility!

The public directory will also be published when you build and deploy a production version of your app. We won’t cover deployment in this tutorial, but you should be able to use a similar solution to that described in our Deploying our app tutorial.

The package.json file contains information about our project that Node.js/npm uses to keep it organized. This file is not unique to React applications; create-react-app merely populates it. You don’t need to understand this file at all to complete this tutorial, however, if you’d like to learn more about it, you can read What is the file `package.json`? on NodeJS.org; we also talk about it in our Package management basics tutorial.

In React, a component is a reusable module that renders a part of our app. These parts can be big or small, but they are usually clearly defined: they serve a single, obvious purpose.

Let’s open src/App.js, since our browser is prompting us to edit it. This file contains our first component, App, and a few other lines of code:

import React from 'react';
import logo from './logo.svg';
import './App.css';

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.js</code> and save to reload.
        </p>
        <a
          className="App-link"
          href="https://reactjs.org"
          target="_blank"
          rel="noopener noreferrer"
        >
          Learn React
        </a>
      </header>
    </div>
  );
}
export default App;

The App.js file consists of three main parts: some import statements at the top, the App component in the middle, and an export statement at the bottom. Most React components follow this pattern.

Import statements

The import statements at the top of the file allow App.js to use code that has been defined elsewhere. Let’s look at these statements more closely.

import React from 'react';
import logo from './logo.svg';
import './App.css';

The first statement imports the React library itself. Because React turns the JSX we write into React.createElement(), all React components must import the React module. If you skip this step, your application will produce an error.

The second statement imports a logo from './logo.svg'. Note the ./ at the beginning of the path, and the .svg extension at the end β€” these tell us that the file is local and that it is not a JavaScript file. Indeed, the logo.svg file lives in our source directory.

We don’t write a path or extension when importing the React module β€” this is not a local file; instead, it is listed as a dependency in our package. json file. Be careful of this distinction as you work through this lesson!

The third statement imports the CSS related to our App component. Note that there is no variable name and no from directive. This particular import syntax is not native to JavaScript module syntax – it comes from Webpack, the tool create-react-app uses to bundle all our JavaScript files together and serve them to the browser.

The

App component

After the imports, we have a function named App. Whereas most of the JavaScript community prefers camel-case names like helloWorld, React components use pascal-case variable names, like HelloWorld, to make it clear that a given JSX element is a React component, and not a regular HTML tag. If you were to rename the App function to app, your browser would show you an error.

Let’s look at App more closely.

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.js</code> and save to reload.
        </p>
        <a
          className="App-link"
          href="https://reactjs.org"
          target="_blank"
          rel="noopener noreferrer"
        >
          Learn React
        </a>
      </header>
    </div>
  );
}

The App function returns a JSX expression. This expression defines what your browser ultimately renders to the DOM.

Some elements in the expression have attributes, which are written just like in HTML, following a pattern of attribute="value". On line 3, the opening <div> tag has a className attribute. This the same as the class attribute in HTML, but because JSX is JavaScript, we can’t use the word class – it’s reserved, meaning JavaScript already uses it for a specific purpose and it would cause problems here in our code. A few other HTML attributes are written differently in JSX than they are in HTML too, for the same kind of reason. We’ll cover them as we encounter them.

Take a moment to change the <p> tag on line 6 so that it reads «Hello, world!», then save your file. You’ll notice that this change is immediately rendered in the development server running at http://localhost:3000 in your browser. Now delete the <a> tag and save; the «Learn React» link will be gone.

Your App component should now look like this:

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Hello, World!
        </p>
      </header>
    </div>
  );
}

Export statements

At the very bottom of the App.js file, the statement export default App makes our App component available to other modules.

Let’s open src/index.js, because that’s where the App component is being used. This file is the entry point for our app, and it initially looks like this:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';

ReactDOM.render(<App />, document.getElementById('root'));




serviceWorker.unregister();

As with App.js, the file starts by importing all the JS modules and other assets it needs to run. src/index.css holds global styles that are applied to our whole app. We can also see our App component imported here; it is made available for import thanks to the export statement at the bottom of App.js.

Line 7 calls React’s ReactDOM.render() function with two arguments:

  • The component we want to render, <App /> in this case.
  • The DOM element inside which we want the component to be rendered, in this case the element with an ID of root. If you look inside public/index.html, you’ll see that this is a <div> element just inside the <body>.

All of this tells React that we want to render our React application with the App component as the root, or first component.

Note: In JSX, React components and HTML elements must have closing slashes. Writing just <App> or just <img> will cause an error.

Service workers are interesting pieces of code that help application performance and allow features of your web applications to work offline, but they’re not in scope for this article. You can delete line 5, as well as lines 9 through 12.

Your final index.js file should look like this:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';

ReactDOM.render(<App />, document.getElementById('root'));

Next, we’ll use a few of our JavaScript skills to get a bit more comfortable editing components and working with data in React. We’ll talk about how variables are used inside JSX, and introduce props, which are a way of passing data into a component (which can then be accessed using variables).

Variables in JSX

Back in App.js, let’s focus on line 9:

<img src={logo} className="App-logo" alt="logo" />

Here, the <img /> tag’s src attribute value is in curly braces. This is how JSX recognizes variables. React will see {logo}, know you are referring to the logo import on line 2 of our app, then retrieve the logo file and render it.

Let’s try making a variable of our own. Before the return statement of App, add const subject = 'React';. Your App component should now look like this:

function App() {
  const subject = "React";
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Hello, World!
        </p>
      </header>
    </div>
  );
}

Change line 8 to use our subject variable instead of the word «world», like this:

function App() {
  const subject = "React";
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Hello, {subject}!
        </p>
      </header>
    </div>
  );
}

When you save, your browser should display «Hello, React!» instead of «Hello, world!»

Variables are convenient, but the one we’ve just set doesn’t make great use of React’s features. That’s where props come in.

Component props

A prop is any data passed into a React component. Props are written inside component calls, and use the same syntax as HTML attributes β€” prop="value". Let’s open index.js and give our <App/> call its first prop.

Add a prop of subject to the <App/> component call, with a value of Clarice. When you are done, your code should look something like this:

ReactDOM.render(<App subject="Clarice" />, document.getElementById('root'));

Back in App.js, let’s revisit the App function itself, which reads like this (with the return statement shortened for brevity):

function App() {
  const subject = "React";
  return (
    
  );
}

Change the signature of the App function so that it accepts props as a parameter. Just like any other parameter, you can put props in a console.log() to read it out to your browser’s console. Go ahead and do that after your subject constant but before the return statement, like so:

function App(props) {
  const subject = "React";
  console.log(props);
  return (
    
  );
}

Save your file and check your browser’s JavaScript console. You should see something like this logged:

Object { subject: "Clarice" }

The object property subject corresponds to the subject prop we added to our <App /> component call, and the string Clarice corresponds to its value. Component props in React are always collected into objects in this fashion.

Now that subject is one of our props, let’s utilize it in App.js. Change the subject constant so that, instead of defining it as the string React, you are reading the value of props.subject. You can also delete your console.log() if you want.

function App(props) {
  const subject = props.subject;
  return (
    
  );
}

When you save, the the app should now greet you with «Hello, Clarice!». If you return to index.js, edit the value of subject, and save, your text will change.

This brings us to the end of our initial look at React, including how to install it locally, creating a starter app, and how the basics work. In the next article we’ll start building our first proper application β€” a todo list. Before we do that, however, let’s recap some of the things we’ve learned.

In React:

  • Components can import modules they need, and must export themselves at the bottom of their files.
  • Component functions are named with PascalCase.
  • You can read JSX variables by putting them between curly braces, like {so}.
  • Some JSX attributes are different to HTML attributes, so that they don’t conflict with JavaScript reserved words. For example, class in HTML translates to className in JSX. Note that multi-word attributes are camel-cased.
  • Props are written just like attributes inside component calls, and are passed into components.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ свойства – React

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Π½Π° нСзависимыС, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ части ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· частСй ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. На этой страницС прСдставлСно Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² идСю ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π—Π΄Π΅ΡΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ справочник API ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ.

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ JavaScript. Они ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ (Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Β«propsΒ» ΠΈΠ»ΠΈ свойствами) ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ React-элСмСнты, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π½Π° экранС.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ классовыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ β€” Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ JavaScript-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

function Welcome(props) {
  return <h2>ΠŸΡ€ΠΈΠ²Π΅Ρ‚, {props.name}</h2>;
}

Данная функция β€” ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ React, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Β«propsΒ» (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ свойства) с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнт React. Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ Β«Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈΒ», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ функциями JavaScript.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс ΠΈΠ· ES6 для опрСдСлСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°:

class Welcome extends React.Component {
  render() {
    return <h2>ΠŸΡ€ΠΈΠ²Π΅Ρ‚, {this.props.name}</h2>;
  }
}

Π”Π²Π° Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° эквивалСнтны с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния React.

Π£ классов Π΅ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ обсудим Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…. Π”ΠΎ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ·-Π·Π° ΠΈΡ… краткости.

ΠžΡ‚Ρ€ΠΈΡΠΎΠ²ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°

РаньшС ΠΌΡ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с элСмСнтами React, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ DOM-Ρ‚Π΅Π³ΠΈ:

Однако элСмСнты Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ:

const element = <Welcome name="Π‘Π°Ρ€Π°" />;

Когда React Π²ΠΈΠ΄ΠΈΡ‚ элСмСнт, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΎΠ½ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ JSX-Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ этому ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Π² Π²ΠΈΠ΄Π΅ СдинствСнного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠœΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Β«propsΒ».

НапримСр, этот ΠΊΠΎΠ΄ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π‘Π°Ρ€Π°Β» Π½Π° страницС:

function Welcome(props) {
  return <h2>ΠŸΡ€ΠΈΠ²Π΅Ρ‚, {props.name}</h2>;
}

const element = <Welcome name="Sara" />;
ReactDOM.render(
  element,
  document.getElementById('root')
);

ΠŸΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° CodePen

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, Ρ‡Ρ‚ΠΎ происходит Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

  1. ΠœΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ReactDOM.render() с элСмСнтом <Welcome name="Π‘Π°Ρ€Π°" />.
  2. React Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Welcome с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ {name: 'Sara'} ΠΊΠ°ΠΊ props.
  3. Наш ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Welcome Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнт <h2>Hello, Sara</h2> Π² качСствС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.
  4. React DOM эффСктивно обновляСт DOM, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ <h2>Hello, Sara</h2>.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ВсСгда ΠΈΠΌΠ΅Π½ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹.

React ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ со строчных Π±ΡƒΠΊΠ², ΠΊΠ°ΠΊ DOM-Ρ‚Π΅Π³ΠΈ. НапримСр, <div /> прСдставляСт HTML-Ρ‚Π΅Π³ div, Π½ΠΎ <Welcome /> прСдставляСт ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Welcome Π±Ρ‹Π» Π² области видимости.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ большС ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ…, Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… Π² основС этого соглашСния здСсь.

ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² своём Π²Ρ‹Π²ΠΎΠ΄Π΅. Π­Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° для любого уровня Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Кнопка, Ρ„ΠΎΡ€ΠΌΠ°, Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, экран: Π² прилоТСниях React всС ΠΎΠ½ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ.

НапримСр, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ App, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ отрисовываСт Welcome:

function Welcome(props) {
  return <h2>ΠŸΡ€ΠΈΠ²Π΅Ρ‚, {props.name}</h2>;
}

function App() {
  return (
    <div>
      <Welcome name="Π‘Π°Ρ€Π°" />
      <Welcome name="ΠšΠ°Ρ…Π°Π»ΡŒ" />
      <Welcome name="Π­Π΄ΠΈΡ‚" />
    </div>
  );
}

ReactDOM. render(
  <App />,
  document.getElementById('root')
);

ΠŸΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° CodePen

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π² Π½ΠΎΠ²Ρ‹Ρ… прилоТСниях React Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ App, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π² самом Π²Π΅Ρ€Ρ…Ρƒ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Однако, Ссли Π²Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ React Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ снизу Π²Π²Π΅Ρ€Ρ… с нСбольшого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Button, ΠΈ постСпСнно ΠΈΠ΄Ρ‚ΠΈ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ прСдставлСний.

Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

НС Π±ΠΎΠΉΡ‚Π΅ΡΡŒ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

НапримСр, рассмотрим этот ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Comment:

function Comment(props) {
  return (
    <div className="Comment">
      <div className="UserInfo">
        <img className="Avatar"
          src={props.author.avatarUrl}
          alt={props.author.name}
        />
        <div className="UserInfo-name">
          {props.author.name}
        </div>
      </div>
      <div className="Comment-text">
        {props.text}
      </div>
      <div className="Comment-date">
        {formatDate(props.date)}
      </div>
    </div>
  );
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° CodePen

Он ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ author (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚), text (строка) ΠΈ date (Π΄Π°Ρ‚Π°) Π² качСствС свойств ΠΈ описываСт ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π½Π° сайтС ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтСй.

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠ·-Π·Π° влоТСнности, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΅Π³ΠΎ части. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΠ·Π²Π»Π΅Ρ‡Ρ‘ΠΌ ΠΈΠ· Π½Π΅Π³ΠΎ нСсколько ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ ΠΈΠ·Π²Π»Π΅Ρ‡Ρ‘ΠΌ Avatar:

function Avatar(props) {
  return (
    <img className="Avatar"
      src={props.user.avatarUrl}
      alt={props.user.name}
    />
  );
}

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Avatar Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ отрисовываСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ Comment. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ присвоили свойству ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° props Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰Π΅Π΅ имя: user, Π° Π½Π΅ author.

ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° props с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния самого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π° Π½Π΅ контСкста, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ‡ΡƒΡ‚ΡŒ-Ρ‡ΡƒΡ‚ΡŒ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Comment:

function Comment(props) {
  return (
    <div className="Comment">
      <div className="UserInfo">
        <Avatar user={props.author} />
        <div className="UserInfo-name">
          {props.author.name}
        </div>
      </div>
      <div className="Comment-text">
        {props.text}
      </div>
      <div className="Comment-date">
        {formatDate(props.date)}
      </div>
    </div>
  );
}

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΠ·Π²Π»Π΅Ρ‡Ρ‘ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ UserInfo, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ Avatar рядом с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

function UserInfo(props) {
  return (
    <div className="UserInfo">
      <Avatar user={props.user} />
      <div className="UserInfo-name">
        {props.user.name}
      </div>
    </div>
  );
}

Π­Ρ‚ΠΎ позволяСт Π½Π°ΠΌ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Comment Π΅Ρ‰Ρ‘ большС:

function Comment(props) {
  return (
    <div className="Comment">
      <UserInfo user={props.author} />
      <div className="Comment-text">
        {props.text}
      </div>
      <div className="Comment-date">
        {formatDate(props.date)}
      </div>
    </div>
  );
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° CodePen

Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² сначала ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΌΠΎΠ½ΠΎΡ‚ΠΎΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ, Π½ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² окупаСтся Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… прилоТСниях. Π₯ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π° этот счёт ΠΌΠΎΠΆΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ β€” Ссли Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ нСсколько Ρ€Π°Π· (Button,Panel, Avatar) ΠΈΠ»ΠΈ достаточно слоТна сама ΠΏΠΎ сСбС (App, FeedStory,Comment), Ρ‚ΠΎ это Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ Π½Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ стал ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ.

Бвойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° props доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния

НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚Π΅ Π»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ класс, ΠΎΠ½ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ свои свойства. Рассмотрим эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sum:

function sum(a, b) {
  return a + b;
}

Π’Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ «чистыми», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свои Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ для ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Напротив, функция Π½ΠΈΠΆΠ΅ β€” Π½Π΅ чистая, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° измСняСт свои Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

function withdraw(account, amount) {
  account.total -= amount;
}

React довольно Π³ΠΈΠ±ΠΊΠΈΠΉ, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ строгоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ:

ВсС React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ вСсти сСбя ΠΊΠ°ΠΊ чистыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΏΠ»Π°Π½Π΅ своих свойств.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Ρ‹ ΠΈ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ прСдставим Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ «состояниС». БостояниС позволяСт ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ React ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ свой Π²Ρ‹Π²ΠΎΠ΄ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, сСтСвыС ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΈ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π΅Ρ‰Ρ‘ Π±Π΅Π· Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²Ρ‹ΡˆΠ΅.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ReactJS

Назад

ReactΒ (ΠΈΠ½ΠΎΠ³Π΄Π°Β React.jsΒ ΠΈΠ»ΠΈΒ ReactJS)Β β€”Β JavaScript-библиотСка с открытым исходным кодом для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈΒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов.

React разрабатываСтся ΠΈ поддСрТиваСтся Facebook,Β InstagramΒ ΠΈ сообщСством ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΉ.

React ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для разработки одностраничных и ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π•Π³ΠΎ Ρ†Π΅Π»ΡŒΒ β€” ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, простоту ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ. Π’ качСствС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов React часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊΒ Redux.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ

ΠžΠ΄Π½ΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Π°Ρ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ…

Бвойства ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΊ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ свойства ΠΊΠ°ΠΊ мноТСство нСизмСняСмых (Π°Π½Π³Π». Β immutable) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, поэтому ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ свойства, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ измСнСния Ρ‡Π΅Ρ€Π΅Π·Β callback Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ «свойства Π²Π½ΠΈΠ·, события Π½Π°Π²Π΅Ρ€Ρ…Β».

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ DOM

React ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉΒ DOMΒ (Π°Π½Π³Π».Β virtual DOM). React ΡΠΎΠ·Π΄Π°Π΅Ρ‚Β ΠΊΡΡˆΒ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ Π² памяти, Ρ‡Ρ‚ΠΎ позволяСт Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ состояниями интСрфСйса для ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ обновлСния DOM Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ программист ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со страницСй, считая, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° обновляСтся вся, Π½ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΡˆΠ°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ страницы Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ.

JSX

JavaScript XML (JSX)Β β€” это Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ синтаксиса JavaScript, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° HTML синтаксис для описания структуры интСрфСйса. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ написаны с использованиСм JSX, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎΒ JavaScript[12]. JSX Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ язык, созданный Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ЀСйсбук для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ PHP, XHP .

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… стадиях ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. НапримСр:

  • shouldComponentUpdateβ€” позволяСт ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ пСрСрисовку ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°Β false, Ссли пСрСрисовка Π½Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°.
  • componentDidMountβ€” вызываСтся послС ΠΏΠ΅Ρ€Π²ΠΎΠΉ отрисовки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Он часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для запуска получСния Π΄Π°Π½Π½Ρ‹Ρ… с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ источника Ρ‡Π΅Ρ€Π΅Π·Β API.
  • renderβ€” являСтся ваТнСйшим ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ вызываСтся ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° для пСрСрисовки Π΄Π°Π½Π½Ρ‹Ρ… Π² интСрфСйсС.

НС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ отрисовка HTML Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅

React ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для отрисовки HTML Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. НапримСр, Facebook ΠΈΠΌΠ΅Π΅Ρ‚ динамичСскиС Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Ρ‚Π΅Π³ΠΈΒ <canvas>. Netflix ΠΈ PayPal ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΈΠ·ΠΎΠΌΠΎΡ€Ρ„Π½Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ для отрисовки ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΠ³ΠΎ HTML Π½Π° сСрвСрС ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅.

Β 






Π£ вас Π½Π΅Ρ‚ ΠΏΡ€Π°Π² для коммСнтирования.

React Developer

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ — ΠΏΠΎ ΠΊΠ½ΠΈΠ³Π°ΠΌ ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅ΠΎ курсам, Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° курсы для максимально эффСктивного обучСния. Π’Π½Π°Ρ‡Π°Π»Π΅ Π²Π°ΠΌ слСдуСт ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ языки вСрстки HTML ΠΈ CSS. ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΡƒΡŽ, Π±Π»ΠΎΡ‡Π½ΡƒΡŽ, ΠΊΡ€ΠΎΡΡΠ±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΡƒΡŽ, ΠΊΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΡƒΡŽ, Π²Π°Π»ΠΈΠ΄Π½ΡƒΡŽ ΠΈ сСмантичСски ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ вСрстки, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ соврСмСнныС сайты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ индСксируСмыми. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠΎΠΆΠ½ΠΎ, вСрстая страницы ΠΏΠΎ ΠΌΠ°ΠΊΠ΅Ρ‚Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ доступС Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅.Β 

Для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π·ΡΡ‚ΡŒΡΡ Π·Π° освоСния CSS прСпроцСссора — SASS, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Когда Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ страницы Π½Π° HTML ΠΈ CSS быстро ΠΈ Π±Π΅Π· особых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½Π°Ρ‡ΠΈΠ½Π°ΠΉΡ‚Π΅ ΡƒΡ‡ΠΈΡ‚ΡŒ язык программирования JavaScript ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΎΠ½Π»Π°ΠΉΠ½-Ρ‚Ρ€Π΅Π½Π°ΠΆΠ΅Ρ€Π°Ρ…. ΠœΡ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅Π½Π°ΠΆΠ΅Ρ€ ΠΎΡ‚ ITVDN. Он ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΎΡ‚Ρ‚ΠΎΡ‡ΠΈΡ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ создания ΠΊΠΎΠ΄Π° Π½Π° HTML, CSS ΠΈ JavaScript.Β Β Β 

Π—Π½Π°Π½ΠΈΠ΅ языка JavaScript Π½Π° Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ даст Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ освоСнию Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ jQuery. Однако, Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ самим JS-ΠΎΠΌ слСдуСт довСсти Π΄ΠΎ высокого уровня, вСдь это Π³Π»Π°Π²Π½Ρ‹ΠΉ инструмСнт React Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Π—Π°Ρ‚Π΅ΠΌ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ React, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π°ΠΊΠΈΠ΅ Π²Π΅Π±-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠ°ΠΊ DOM, AJAX, JSON ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. ПослС этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π·Π° систСмы сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π²Π·ΡΡ‚ΡŒΡΡ (Gulp/Grunt Π»ΠΈΠ±ΠΎ Webpack).Β 

Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния ΠΏΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ iOS ΠΈ Android, ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ React Native.

ΠžΡ‡Π΅Π½ΡŒ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ вас Π±Ρ‹Π» наставник, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠ³ Π±Ρ‹ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° вашим прогрСссом, ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΠ²ΡˆΠΈΠ΅ вопросы, Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты. Β 

Π—Π½Π°Π½ΠΈΠ΅ английского Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π½Π΅ Π½ΠΈΠΆΠ΅ Intermediate ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Оно Π²Π°ΠΌ понадобится для ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎΠ³ΠΎ поиска ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ JavaScript, React ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ тСхнологиям Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. Если ваши знания английского нСдостаточны ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ для чтСния тСхничСской Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ — ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ подтянитС ΠΈΡ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… курсов Π»ΠΈΠ±ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² свободного пользования.

Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ Git, Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠΉΡ‚Π΅ ΠΈΡ… Π½Π° GitHub — это даст Π²Π°ΠΌ Ρ†Π΅Π½Π½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ взаимодСйствия с распрСдСлСнной систСмой управлСния вСрсиями ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваши Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠΌ людям. НСсколько Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… Π²Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ всС ваши Π½Π°Π²Ρ‹ΠΊΠΈ, ΠΈ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΡ€Ρ‚Ρ„ΠΎΠ»ΠΈΠΎ Π³ΠΎΡ‚ΠΎΠ²ΠΎ, Π° с Π½ΠΈΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡŽΠΌΠ΅ Π½Π° вакансию React Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ React Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°

Π‘ ростом спроса Π½Π° React — ΠΎΠ½ Π³ΠΎΠ΄ Π·Π° Π³ΠΎΠ΄ΠΎΠΌ возглавляСт список Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½Ρ‹Ρ… опросов Stack Overflow ΠΏΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вострСбованным Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, сущСствуСт ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ спрос Π½Π° Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² React. ИВ Ρ€Π΅ΠΊΡ€ΡƒΡ‚Π΅Ρ€Ρ‹ часто ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Ρ€Π΅Π·ΡŽΠΌΠ΅ с большим ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π½Π°Π²Ρ‹ΠΊΠ°ΠΌΠΈ. Бамая большая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π·Π½Π°ΡŽΡ‚, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π°Π²Ρ‹ΠΊΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ.

ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° React происходит мноТСство слоТных ΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… процСссов. Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π½Π°Π½ΡΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° React для своСго бизнСса?

1. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React?
React (Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ React.js ΠΈΠ»ΠΈ ReactJS) — это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JavaScript с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для создания ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов (UI). Π§Ρ‚ΠΎ касаСтся Π²Π΅Π±-сайтов ΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π½Π°Π±ΠΎΡ€ экранных мСню, ΠΏΠ°Π½Π΅Π»Π΅ΠΉ поиска, ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ всСго ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ, с Ρ‡Π΅ΠΌ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ взаимодСйствуСт для использования Π²Π΅Π±-сайта ΠΈΠ»ΠΈ прилоТСния. Он Π±Ρ‹Π» создан Facebook 2013 ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС основы для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Π±-страницы ΠΈΠ»ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (с React Native).

React ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы Π² Π²ΠΈΠ΄Π΅ Π΄Π΅Ρ€Π΅Π²Π° Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… частСй, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ прСдставляСт собой смСсь HTML ΠΈ JavaScript, которая Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ всю Π»ΠΎΠ³ΠΈΠΊΡƒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для отобраТСния нСбольшой части большСго ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ встроСн Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ слоТныС части прилоТСния.

Π’Π°ΠΆΠ½ΠΎΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ React, ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Ember.js ΠΈ Angular, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ React занимаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ΠΈ оставляСт мноТСство Π²Π΅Ρ‰Π΅ΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ. React считаСтся самоувСрСнным. React Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» сСбя ΠΊΠ°ΠΊ ΠΎΠ΄Π½Π° ΠΈΠ· самых Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ. Богласно опросу State of Developer Ecosystem Survey Π·Π° 2020 Π³ΠΎΠ΄, React являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ, ΠΈ 63% рСспондСнтов ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΅Π΅, Ρ‡Ρ‚ΠΎ Π½Π° 10% большС, Ρ‡Π΅ΠΌ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Π³ΠΎΠ΄Ρƒ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, React с большим ΠΎΡ‚Ρ€Ρ‹Π²ΠΎΠΌ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠ΅ мСсто ΠΏΡ€ΠΈ рассмотрСнии Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ явного массового использования Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ .

1.1. Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ React ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΎΠ½ Ρ€Π΅ΡˆΠ°Π΅Ρ‚?
Π”ΠΎ React Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΎΡΡ‚Π°Π²Π°Π»ΠΎΡΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Β«vanilla JavaScriptΒ» (Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ говорят ΠΎ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΌ языкС JavaScript Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²) ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠΎΠ² React, ΠΌΠ΅Π½Π΅Π΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ jQuery. Π­Ρ‚ΠΎΡ‚ процСсс ΠΏΡ€ΠΈΠ²Π΅Π» ΠΊ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ количСству Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΉ ΠΈ ошибок. ΠŸΡ€Π΅Π²ΠΎΡΡ…ΠΎΠ΄ΡΡ‚Π²ΠΎ React быстро Ρ€Π΅ΡˆΠΈΠ»ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. На React созданы сотни тысяч Π²Π΅Π±-сайтов. Он Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ популярСн благодаря своСй скорости Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ способности Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°. НСкоторыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ популярных сайтов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… React, — это Facebook, Instagram, Netflix, Reddit, Airbnb ΠΈ Uber.

React ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС тСстовых ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, созданиС сайтов, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… для SEO, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° для Π²Π΅Π±-сайта Π² мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ рСсурсоСмких Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ JavaScript. Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

1.2. ΠŸΠΎΡ…ΠΎΠΆ Π»ΠΈ ΠΎΠ½ Π½Π° ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки ΠΈΠ»ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ?
Π”ΠΈΠ·Π°ΠΉΠ½ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ React Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ JavaScript-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ.

Однако Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Vue Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ сходство с React. Они Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ модСль DOM, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ прСдставлСния ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ фокус Π² основной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ глобальноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ.

Но Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ: React создаСт HTML с использованиСм Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ синтаксиса JSX, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° исходный HTML. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π·Π½Π°Π½ΠΈΠ΅ HTML ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΊ React.

1.3. ΠšΠ°ΠΊΠΎΠ²Ρ‹ Π΅Π³ΠΎ основныС прСимущСства ΠΈΠ»ΠΈ особСнности?
Π―Π²Π½Ρ‹ΠΌ прСимущСством использования React являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΡ‚ΠΈΠ»ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ — это процСсс создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΏΡƒΡ‚Π΅ΠΌ составлСния чистых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ; избСгая ΠΎΠ±Ρ‰Π΅Π³ΠΎ состояния, измСняСмых Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ являСтся Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ, Π° Π½Π΅ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ, ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ React ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ «шаблонного» ΠΊΠΎΠ΄Π°. ЀактичСски это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нСбольшого количСства ΠΊΠΎΠ΄Π°. Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ процСсса ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ это сокращаСт врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ сниТаСт риск ошибок кодирования.

React ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² JavaScript: JSX ΠΈ Virtual DOM.

JSX (сокращСниС ΠΎΡ‚ JavaScript eXtension) — это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ синтаксиса React, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ эффСктивно позволяСт Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ синтаксис HTML с синтаксисом JavaScript. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ JavaScript Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, поэтому JSX Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сокращаСт объСм Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. И ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° React распространяСтся Π½Π° всС соврСмСнныС Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹, JSX совмСстим с любой доступной Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ.

Если Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ JSX для управлСния ΠΈ обновлСния своСй DOM, React создаСт Π½Π΅Ρ‡Ρ‚ΠΎ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Virtual DOM. Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ модСль DOM — это искусствСнная копия ΠΌΠΎΠ΄Π΅Π»ΠΈ DOM сайта, ΠΈ React ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ эту копию, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ части фактичСской ΠΌΠΎΠ΄Π΅Π»ΠΈ DOM Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° происходит событиС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ). Π­Ρ‚ΠΎΡ‚ Π²ΠΈΠ΄ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠ³ΠΎ обновлСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ мСньшС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов ΠΈ мСньшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ страницы. Π’ Ρ†Π΅Π»ΠΎΠΌ, это Π΄Π΅Π»Π°Π΅Ρ‚ процСсс программирования Π±ΠΎΠ»Π΅Π΅ приятным для программистов.

2. Π§Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ИВ Ρ€Π΅ΠΊΡ€ΡƒΡ‚Π΅Ρ€Ρƒ ΠΎ React?
ИВ Ρ€Π΅ΠΊΡ€ΡƒΡ‚Π΅Ρ€Ρƒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ React — это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° / Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ прСдставлСния, которая Π½Π΅ опрСдСляСт, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ состояниС (Π΄Π°Π½Π½Ρ‹Π΅) Π² Π½Π°ΡˆΠΈΡ… прилоТСниях. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡΡ‚ΠΎΡΡ‚ΡŒ этому, Π² 2015 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° популярная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для управлСния состояниСм ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Redux, которая использовалась Π΄ΠΎ 2019 Π³ΠΎΠ΄Π°. Π’ настоящСС врСмя Redux ΡƒΡ‚Ρ€Π°Ρ‚ΠΈΠ» ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ, ΠΈ React Hooks стал основным инструмСнтом для управлСния состояниСм прилоТСния. БСгодня люди Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ часто ΠΏΠΈΡˆΡƒΡ‚ Π½ΠΎΠ²Ρ‹Π΅ прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Redux. Но ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° Redux, ΠΈ ΠΈΠΌ придСтся Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π»Π΅Ρ‚.

2.1. Как часто мСняСтся стСк Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ?
Π­Ρ‚ΠΎ слоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅. ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 2-3 Π³ΠΎΠ΄Π° происходят большиС измСнСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Π½Π° миксинов Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π±ΠΎΠ»Π΅Π΅ высокого порядка ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² класса ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ Π½Π° основС Ρ…ΡƒΠΊΠΎΠ².

2.2. Доступно Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ рСсурсов / инструмСнтов / Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ?
По React доступно ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ мноТСство бСсплатных руководств ΠΏΠΎ Π΅Π³ΠΎ использованию. Удобство использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π΅ Ρ‚Π°ΠΊ слоТно, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Angular, поэтому ΠΎΠ½Π° популярна ΠΊΠ°ΠΊ срСди Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΈ срСди ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… программистов.

Π§Ρ‚ΠΎ касаСтся инструмСнтов, Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ мноТСство ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, доступных для использования с React. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π±Ρ‹Π» синтСзирован Facebook, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π°Ρ экосистСма Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мощная. Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ JS-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ привязки React. Для React ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ поддСрТиваСтся ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр инструмСнтов, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ…ΡΡ успСхом Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (Π²Π°ΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ каТСтся Π·Π°Π±Ρ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ).

БущСствуСт мноТСство рСсурсов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ React Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° Ρ‚Π°ΠΊΠΈΡ… сайтах, ΠΊΠ°ΠΊ Hongkiat .

2.3. Π‘ ΠΊΠ°ΠΊΠΈΠΌΠΈ инструмСнтами ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌ React Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ?
Один ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных способов ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ React — это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ инструмСнты для создания Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ вСроятно, Ρ‡Ρ‚ΠΎ Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π΅ΡΡ‚ΡŒ Π² этом большой ΠΎΠΏΡ‹Ρ‚. Π—Π½Π°Π½ΠΈΠ΅ React Hooks, React Context API ΠΈ Redux ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° React.

  • Для создания Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ React Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² HTML, CSS, SASS / LESS / Stylus. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, SVG Π±ΡƒΠ΄Π΅Ρ‚ бонусом.
  • Π₯ΠΎΡ€ΠΎΡˆΠ΅Π΅ Π·Π½Π°Π½ΠΈΠ΅ JavaScript являСтся Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ типографский скрипт.
  • Они Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ практичСскиС знания этих Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ: jQuery, MomentJS, Underscore ΠΈ Lodash.
  • ΠžΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ React Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти инструмСнты JavaScript: npm, Yarn, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Node.js (Π² Ρ†Π΅Π»ΠΎΠΌ) ΠΈ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· инструмСнтов для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ создания прилоТСния: Webpack, Parcel ΠΈΠ»ΠΈ Rollup (Grunt, Gulp ΠΈ РаньшС Browserify Π±Ρ‹Π» популярСн, Π° сСйчас ΠΈΠΌ ΠΌΠ°Π»ΠΎ Ρ‡Ρ‚ΠΎ)
  • Для тСстирования ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ TDD, BDD, Unit Tests ΠΈ ΡƒΠΌΠ΅Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ инструмСнты тСстирования, ΠΊΠ°ΠΊ Jest ΠΈΠ»ΠΈ Enzyme. Жасмин, ΠšΠ°Ρ€ΠΌΠ°, Мокко ΠΈ Π‘Π΅Π»Π΅Π½ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹.
  • ΠŸΡ€ΠΈΡΡ‚Π½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΎΠΏΡ‹Ρ‚ управлСния ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ SaaS, Amazon AWS, Google Cloud ΠΈΠ»ΠΈ Microsoft Azure.
  • Π˜Ρ‰ΠΈΡ‚Π΅ ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ с Π½Π°Π²Ρ‹ΠΊΠ°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этими ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: инструмСнты управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ: Jira ΠΈ сСрвСры: NGINX, Apache, Π° Ρ‚Π°ΠΊΠΆΠ΅ инструмСнты ΠΎΠ½Π»Π°ΠΉΠ½-сотрудничСства Slack, Miro, Figma ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Google ΠΈΠ»ΠΈ Microsoft ΠΈ Ρ‚. Π΄.

2.4. Какой ΠΎΠΏΡ‹Ρ‚ Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² React Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅?
Научный ΠΈ акадСмичСский ΠΎΠΏΡ‹Ρ‚ для React практичСски Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, коммСрчСский ΠΎΠΏΡ‹Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ΅Π½. ΠžΠΏΡ‹Ρ‚ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ — это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Если Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ОБ, это Π±ΡƒΠ΄Π΅Ρ‚ большим прСимущСством.

Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ простых Π·Π°Π΄Π°Ρ‡ Π² React нСслоТно , поэтому ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ΄Ρ€Π°ΠΆΠ°Ρ‚Π΅Π»ΠΈ-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Π½Π°Ρ‡Π°Ρ‚ΡŒ свою ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Ρƒ с Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, часто с React. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ выпускников ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… курсов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ свою ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² React. НаличиС коммСрчСского ΠΎΠΏΡ‹Ρ‚Π° — ΠΎΡ‡Π΅Π½ΡŒ большоС прСимущСство ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с людьми, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ посСщали ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ лагСря ΠΈ часто создавали ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π²Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° сторонС. Π”Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ шанс — это Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, Π½ΠΎ ΠΈΡ… ΠΎΠΏΡ‹Ρ‚ Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… Π² бою Π·Π½Π°Π½ΠΈΠΉ.

3. Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° React Π½Π° этапС ΠΏΠΎΠ΄Π±ΠΎΡ€Π°?
ВСхничСскиС ΠΈΠ»ΠΈ ТСсткиС Π½Π°Π²Ρ‹ΠΊΠΈ — это ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для выполнСния Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π­Ρ‚ΠΈ Π½Π°Π²Ρ‹ΠΊΠΈ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π°ΡŽΡ‚ΡΡ ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ посрСдством обучСния, сСминаров, Ρ‚Ρ€Π΅Π½ΠΈΠ½Π³ΠΎΠ² ΠΈ сСртификатов.

Но с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, мСТличностныС Π½Π°Π²Ρ‹ΠΊΠΈ относятся ΠΊ мСТличностным способностям Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. По своСй ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ ΠΈΡ… довольно слоТно ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ количСствСнно ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ. МягкиС Π½Π°Π²Ρ‹ΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π½Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ сотрудник взаимодСйствуСт с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ Π»ΠΈ ΠΎΠ½ΠΈ качСствами, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π΅. НСкоторыС ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… Π½Π°Π²Ρ‹ΠΊΠΎΠ² программирования Π½Π° React Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚:

  • ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ
  • Командная Ρ€Π°Π±ΠΎΡ‚Π°
  • ВворчСский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄
  • Π£ΠΌΠ΅Π½ΠΈΠ΅ ΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ с ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠΎΠΉ

3.1. Π§Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ просмотрС Ρ€Π΅Π·ΡŽΠΌΠ΅?
БСзусловно, ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² Ρ€Π΅Π·ΡŽΠΌΠ΅, — это коммСрчСский ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ front-end ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². ВсСгда ΠΎΡ‚Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ‹Ρ‚Ρƒ, Π° Π½Π΅ Π΄Π»ΠΈΠ½Π½ΠΎΠΌΡƒ списку Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… инструмСнтов. Π—Π°Ρ‡Π΅ΠΌ?

БоврСмСнная интСрфСйсная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прСдставила сотни инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅. БущСствуСт мноТСство Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΉ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ инструмСнты ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ популярными, Π° Ρ‡Π΅Ρ€Π΅Π· Π΄Π²Π° Π³ΠΎΠ΄Π° ΠΎΠ½ΠΈ ΡƒΠΆΠ΅ унаслСдованы, ΠΈ ситуация мСняСтся ΠΎΡ‡Π΅Π½ΡŒ быстро.

Π’ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ упомянул инструмСнт X Π² своСм Ρ€Π΅Π·ΡŽΠΌΠ΅, ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ. Но это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ Ρ‚Π²Π΅Ρ€Π΄ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ΠΈ сдСлали это Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠ²Ρ‹ ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊ Π½Π΅Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ ситуациям являСтся здСсь настоящим ΠΊΠ»ΡŽΡ‡ΠΎΠΌ, Π±Π΅Π· этого Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, ΠΊ Ρ‡Π΅ΠΌΡƒ ΠΎΠ½ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊ ΠΈΠ»ΠΈ Ρ‡Π΅ΠΌΡƒ Π΅Π³ΠΎ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈ.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, довольно просто ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ мноТСство Π·Π½Π°ΠΊΠΎΠΌΡ‹Ρ… инструмСнтов Π² Ρ€Π΅Π·ΡŽΠΌΠ΅, Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π²Π°ΠΆΠ½Π΅Π΅. Если Π±Ρ‹ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ» Β«ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉΒ» ΠΈΠ»ΠΈ «прСдоставлСниС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹Β», это Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅, Ρ‡Π΅ΠΌ просто ΠΈΠΌΠ΅Π½Π° инструмСнтов с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½.

3.2. КакиС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ глоссария Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π² React (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ языковыС вСрсии)?
Π’ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стоит ΠΏΠΎΠ½ΡΡ‚ΡŒ:

АрхитСктура

  • ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ класса
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ (всС) ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹
  • Π Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Ρ…ΡƒΠΊΠΈ

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅

  • React Context API
  • Redux
  • MobX

Π‘Ρ‚ΠΈΠ»ΡŒ

  • Π‘Ρ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹
  • Emotion
  • CSS Π² JS
  • ΠœΠΎΠ΄ΡƒΠ»ΠΈ CSS

БтатичСский Π½Π°Π±ΠΎΡ€ тСкста ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ²
ЭкосистСма
Bundler
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ React Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ React Native, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для создания собствСнных ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. React Π² сочСтании с React Native позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ ΠΊΠ°ΠΊ для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Ρ‚Π°ΠΊ ΠΈ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств, Ρ‡Ρ‚ΠΎ являСтся большим прСимущСством. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ сущСствуСт Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ нСльзя Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

3.3. КакиС вСрсии ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Π½Ρ‹Π΅? КакиС вСрсии ΠΏΠΎΡ…ΠΎΠΆΠΈ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°?
ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ вСрсий Π½Π΅ Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ люди Π½Π΅ Π·Π°ΡƒΡ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΈΡ… Π½Π°ΠΈΠ·ΡƒΡΡ‚ΡŒ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ React Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»ΠΎ нСсколько «эпох».

Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Python v2 ΠΈ v3 Π½Π΅ совмСстимы Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Π§Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, Ρ‚Π°ΠΊ это Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ люди скомпилировали. НовыС вСрсии, СстСствСнно, Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹, Π½ΠΎ React v16.8.3 Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π°Ρ€Π΅ΠΊΠ°Π½ΠΈΠΉ Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².
АрхитСктуры, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ люди ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌΡ‹ (Π² хронологичСском порядкС), Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚:

Класс React Π½Π° основС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

  • Mixins — ΠΎΡ‡Π΅Π½ΡŒ старый ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Π’ настоящСС врСмя это, ΠΏΠΎ сути, наслСдиС, ΠΈ Π΅Π³ΠΎ слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ. Однако Π΅ΡΡ‚ΡŒ нСсколько старых ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π³Π΄Π΅ ΠΎΠ½ всС Π΅Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.
  • HOC (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ порядка) — идСя этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ HOC добавляСт ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ (добавляСт ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ). Он Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Π½ΠΎ считаСтся наслСдиСм.
  • Render Props — Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСстандартныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π»ΠΎΠ³ΠΈΠΊΡƒ / ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. И ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ эту Β«ΠΎΠΏΠΎΡ€Ρƒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ прСдставлСниС. Π˜Ρ‚Π°ΠΊ, ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ отдСляСм Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΎΡ‚ UI. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π½ΠΎ считаСтся наслСдиСм.

Ѐункция React Π½Π° основС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

  • React Hooks — прСдставили Π² ΠΊΠΎΠ½Ρ†Π΅ 2018 Π³ΠΎΠ΄Π° ΠΈ быстро стали Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ. Π’ настоящСС врСмя это Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Основан Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ отличаСтся ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² класса. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π΅Π³ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅, ΠΎΠ½ станСт Π±ΠΎΠ»Π΅Π΅ бСзопасным ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½Ρ‹ΠΌ ошибкам. Но ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ для Π΅Π³ΠΎ изучСния трСбуСтся большС усилий ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ класса.

ВсС Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ†Π΅Π»ΠΈ, хотя ΠΈ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами. Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ посрСдством: составлСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², объСдинСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² ΠΎΠ΄Π½Ρƒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ возмоТности ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ.

3.4. КакиС Π΅Ρ‰Π΅ строки Π² Ρ€Π΅Π·ΡŽΠΌΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° React?
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ React Ρ‚Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠ΅ знания Π² области агностичСских Π½Π°Π²Ρ‹ΠΊΠΎΠ², Π² Ρ‚ΠΎΠΌ числС:

  • Π―Π·Ρ‹ΠΊ: JavaScript, ES6
  • Асинхронный JavaScript (обСщания, события, async await ΠΈ rxjs)
  • HTTP — ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² настоящСС врСмя ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π°ΠΌΠΈ устройств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт связь ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ сСрвСрами.
  • Typescript ΠΈ / ΠΈΠ»ΠΈ Flow (прилоТСния для React со статичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ)
  • Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Material UI
  • Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ Π΄ΠΈΠ·Π°ΠΉΠ½Π°.

3.5. КакиС сСртификаты доступны ΠΈ ΡΠΎΠ±Π»ΡŽΠ΄Π°ΡŽΡ‚ΡΡ? ΠŸΠΎΠ»Π΅Π·Π½Ρ‹ Π»ΠΈ ΠΎΠ½ΠΈ для опрСдСлСния Π½Π°Π²Ρ‹ΠΊΠΎΠ²?
Π’ΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π΅ Π½Π΅Ρ‚ ΡƒΠ²Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… сСртификатов, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ стоит ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ. Если сСртификаты ΠΈ Π΅ΡΡ‚ΡŒ, Ρ‚ΠΎ ΠΎΠ½ΠΈ малоизвСстны. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠΌΡƒ, Ρ‡Π΅ΠΌ Ρ€Π°Π½ΡŒΡˆΠ΅ Π±Ρ‹Π»Π° Java (с мноТСством доступных сСртификатов).

4. ВСхничСская ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π°Π²Ρ‹ΠΊΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° React Π²ΠΎ врСмя Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠ³ΠΎ / Π²ΠΈΠ΄Π΅ΠΎ-ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ.
НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ ИВ Ρ€Π΅ΠΊΡ€ΡƒΡ‚Π΅Ρ€ΠΎΠΌ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ успСх вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° зависит ΠΎΡ‚ вашСй способности Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

НиТС Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² вопросов для собСсСдований, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ поискС программиста React для создания Π²Π°ΡˆΠΈΡ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

4.1. Вопросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΎΠ± ΠΎΠΏΡ‹Ρ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° React . Π—Π°Ρ‡Π΅ΠΌ Π²Π°ΠΌ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих вопросов?
1 Π’Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° автоматичСскоС тСстированиС?
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ / e2e-тСсты, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ оптимистичны Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ качСства своСго ΠΊΠΎΠ΄Π°, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ процСсс тСстирования ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ΅Π½.

2 ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΈ Π»ΠΈ Π²Ρ‹ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ (a11y) Π² своих Π½Π΅Π΄Π°Π²Π½ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…?
Π’Π°ΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ доступныС Π²Π΅Π±-сайты, особСнно для государствСнных ΠΈ финансовых ΡƒΡ‡Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ люди с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ возмоТностями ΠΌΠΎΠ³Π»ΠΈ максимально эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прилоТСния.

3 Π’Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈΠ»ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ слой?
ΠšΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ сказал Π±Ρ‹, Π² Ρ‡Π΅ΠΌ Π΅Π³ΠΎ сильная сторона ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ½ Π±Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅Π» Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π² своСй повсСднСвной Ρ€Π°Π±ΠΎΡ‚Π΅.

4 Как Π±Ρ‹ Π²Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ свою ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ React?
ΠžΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° этот вопрос говорят ΠΎΠ± ΠΎΠΏΡ‹Ρ‚Π΅. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ: memo, useMemo, PureComponent, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… вычислСний ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ части (Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΎΡΡŒ мСньшС Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ).

4.2. Вопросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΎ знаниях ΠΈ мнСниях Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² React . Π—Π°Ρ‡Π΅ΠΌ Π²Π°ΠΌ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих вопросов?

  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ сообщСство ΠΎΡ‚Π²Π΅Ρ€Π³Π»ΠΎ Redux (ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, заявило, Ρ‡Ρ‚ΠΎ это Π½Π΅ ΠΏΡƒΡ‚ΡŒ Π²ΠΏΠ΅Ρ€Π΅Π΄ для React)?
  • Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы ΠΊΠ°ΠΊ Redux, Ρ‚Π°ΠΊ ΠΈ React Context API. Π“Π΄Π΅ Π±Ρ‹ Π²Ρ‹ использовали ΠΎΠ΄Π½ΠΎ вмСсто Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ?
  • КакиС прСимущСства Ρƒ React Hooks?
  • Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ нСсколько Ρ‚Π΅Ρ…Π½ΠΈΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² прилоТСниях React.

Π’Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹Π΅ вопросы ΡΠ²Π»ΡΡŽΡ‚ΡΡ высокоуровнСвыми, Ρ‡Ρ‚ΠΎ позволяСт ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Ρƒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сСбя Π½Π° собСсСдовании. Если ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ Π½Π΅ΠΎΠΏΡ‹Ρ‚Π΅Π½, Π²Ρ‹ смоТСтС ΡΠΊΠ°Π·Π°Ρ‚ΡŒ это довольно быстро.

ΠŸΠ»ΠΎΡ…ΠΎΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° вопрос Β« ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹Π» ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ Redux ?Β» Π±Ρ‹Π»ΠΎ Π±Ρ‹ Β« ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ React Hooks Π»ΡƒΡ‡ΡˆΠ΅ Β». Π‘ΠΎΠ»Π΅Π΅ осознанный ΠΎΡ‚Π²Π΅Ρ‚ Π±Ρ‹Π» Π±Ρ‹, хотя Redux прСдоставляСт мноТСство прСимущСств, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ прСдсказуСмоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм, ΡΠ²Π½ΠΎΡΡ‚ΡŒ, ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΡ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ горячая Π·Π°ΠΌΠ΅Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π² Redux Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π°, ΠΈ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ стала ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ для ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

НСкоторыС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ вопросы, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ Π·Π½Π°Π½ΠΈΠΉ ΠΈ ΠΌΠ½Π΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚:
1 ΠŸΠΎΡ‡Π΅ΠΌΡƒ React прСдставил Virtual DOM?
ΠžΡ‚Π²Π΅Ρ‚ Π½Π΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅, Π° Π½Π° Ρ‚ΠΎ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ это Ρ‚Π°ΠΌ, Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π² основС самого React. ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΎΡ‚Π²Π΅Ρ‚ — ΠΈΠ·-Π·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, гибкости ΠΈ простоты измСнСния структуры HTML.

2 КакиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ CSS?
Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, стоящиС Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ CSS Π² прилоТСниях React. НСкоторыС стили ΠΏΡ€ΠΎΡΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π°Ρ€ΡƒΠΆΡƒ, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стили ΠΈΠ·Π²Π½Π΅ ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ°ΡŽΡ‚ Π² вашС мСсто. ΠœΠΎΠ΄ΡƒΠ»ΠΈ CSS ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΡŽΡ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ стили.

3 ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ΡΡ ссылки (сокращСниС ΠΎΡ‚ ссылок)?
Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ философии React. ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ. React слСдуСт Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ. Refs — это ΡƒΡ…ΠΎΠ΄ Π² ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠΈΡ€, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π²Π½Π΅ философии React. Π•Π³ΠΎ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΡ€Π°ΠΉΠ½Π΅ΠΌ случаС.

4.3. ΠŸΠΎΠ²Π΅Π΄Π΅Π½Ρ‡Π΅ΡΠΊΠΈΠ΅ вопросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт Π·Π°Π΄Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ React. Π—Π°Ρ‡Π΅ΠΌ Π²Π°ΠΌ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих вопросов?
1 Какая самая слоТная Π·Π°Π΄Π°Ρ‡Π° React Π²Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ? Как Ρ‚Ρ‹ с этим справился?
ΠžΡ‚Π²Π΅Ρ‚ Π½Π° этот вопрос ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π½Π΅Π·Π½Π°ΠΊΠΎΠΌΡ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стояли ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΊ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ Π½ΠΎΠ²Ρ‹ΠΌ Π½Π°Π²Ρ‹ΠΊΠ°ΠΌ, совмСстной Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈΠ»ΠΈ сотрудничСству с бизнСсом.

2 Если Π±Ρ‹ Π²Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Π½Π°Π±ΠΈΡ€Π°ΡŽΡ‰Π°Ρ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ новая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для управлСния состояниСм для React, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π±Ρ‹ Π²Ρ‹ Π΅Π΅ Π² свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, зная, Ρ‡Ρ‚ΠΎ Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… способа управлСния состояниСм?
Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, постоянно ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ — это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π΅. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ люди Ρ‚Π΅Ρ€ΡΡŽΡ‚ фокус ΠΈ относятся ΠΊ Π½ΠΈΠΌ ΠΊΠ°ΠΊ ΠΊ самой Ρ†Π΅Π»ΠΈ, Π° Π½Π΅ ΠΊΠ°ΠΊ ΠΊ срСдству достиТСния бизнСс-Ρ†Π΅Π»ΠΈ. ВсСгда ΠΎΡ‚Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ смотрят Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π° Π½Π΅ Π½Π° Ρ‚ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ.

3 Если Π±Ρ‹ появился Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с React, Π²Ρ‹ Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΡΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΏΡ€ΠΎΡ…ΠΎΠ΄Ρ†Π΅ΠΌ?
Π’ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Π²Ρ‹ΡˆΠ΅ — Π½Π΅ ΠΎΡ‚Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹ΠΌ инструмСнтам ΠΏΠ΅Ρ€Π΅Π΄ бизнСс-цСлями. ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΠ΅ своСй ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΄Π΅Π½Π΅Π³, ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ это Π·Π½Π°Ρ‚ΡŒ.

Intro to React — React

Π­Ρ‚ΠΎ руководство Π½Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ наличия ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π·Π½Π°Π½ΠΈΠΉ React.

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅

Π’ΠΎ врСмя этого ΡƒΡ€ΠΎΠΊΠ° ΠΌΡ‹ создадим Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΈΠ³Ρ€Ρƒ. Π£ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ соблазн ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ создаСтС ΠΈΠ³Ρ€Ρ‹, Π½ΠΎ Π΄Π°ΠΉΡ‚Π΅ Π΅ΠΌΡƒ шанс. ΠŸΡ€ΠΈΠ΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ Π² этом руководствС, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ для создания любого прилоТСния React, ΠΈ ΠΈΡ… освоСниС даст Π²Π°ΠΌ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ React.

Подсказка

Π­Ρ‚ΠΎ руководство ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, выполняя .Если Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ с нуля, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с нашим ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΌ руководством. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ это руководство ΠΈ руководство, Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°.

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° нСсколько Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²:

Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ всС Ρ€Π°Π·Π΄Π΅Π»Ρ‹ сразу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΎΡ‚ этого руководства. ΠŸΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ дальшС — Π΄Π°ΠΆΠ΅ Ссли это ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π²Π° Ρ€Π°Π·Π΄Π΅Π»Π°.

Π§Ρ‚ΠΎ ΠΌΡ‹ строим?

Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ Π² крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ с React.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ здСсь: Final Result . Если ΠΊΠΎΠ΄ Π²Π°ΠΌ Π½Π΅ понятСн ΠΈΠ»ΠΈ Π²Ρ‹ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Π΅Π³ΠΎ синтаксисом, Π½Π΅ Π²ΠΎΠ»Π½ΡƒΠΉΡ‚Π΅ΡΡŒ! ЦСль этого руководства — ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ React ΠΈ Π΅Π³ΠΎ синтаксис.

ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π²Π°ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Π² крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅. Одна ΠΈΠ· особСнностСй, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, — это ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ список справа ΠΎΡ‚ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля. Π­Ρ‚ΠΎΡ‚ список Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ всСх Ρ…ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ Π² ΠΈΠ³Ρ€Π΅, ΠΈ ΠΎΠ½ обновляСтся ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ ΠΈΠ³Ρ€Ρ‹.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Π² крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с Π½Π΅ΠΉ. Π’ этом руководствС ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ с Π±ΠΎΠ»Π΅Π΅ простого шаблона. Наш ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг — Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ вас Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ сборку ΠΈΠ³Ρ€Ρ‹.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования

ΠœΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с HTML ΠΈ JavaScript, Π½ΠΎ Ρƒ вас Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ с Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ языка программирования. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Ρ‚Π°ΠΊΠΈΠΌΠΈ понятиями программирования, ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, массивы ΠΈ, Π² мСньшСй стСпСни, классы.

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ JavaScript, ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ это руководство. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· ES6 — послСднСй вСрсии JavaScript. Π’ этом руководствС ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ стрСлочныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, классы, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ let ΠΈ const . Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Babel REPL, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ES6 компилируСтся.

Установка для ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ°

Π•ΡΡ‚ΡŒ Π΄Π²Π° способа Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ это руководство: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈΠ»ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° своСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ установки 1. Π—Π°ΠΏΠΈΡΡŒ ΠΊΠΎΠ΄Π° Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅

Π­Ρ‚ΠΎ самый быстрый способ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ!

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ этот Π‘Ρ‚Π°Ρ€Ρ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² Π½ΠΎΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. На Π½ΠΎΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ пустоС ΠΏΠΎΠ»Π΅ для ΠΈΠ³Ρ€Ρ‹ Π² крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ ΠΈ ΠΊΠΎΠ΄ React. Π’ этом руководствС ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ React.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ настройки ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π» Β«ΠžΠ±Π·ΠΎΡ€Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Π·ΠΎΡ€ React.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ установки 2: Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π­Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ Π½Π΅ трСбуСтся для этого ΡƒΡ€ΠΎΠΊΠ°!

ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ: инструкции ΠΏΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ с использованиСм ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ³ΠΎ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°

Π­Ρ‚Π° настройка Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большС Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½ΠΎ позволяСт Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΏΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ Π²Ρ‹Π±ΠΎΡ€Ρƒ.Π’ΠΎΡ‚ шаги, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

  1. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас установлСна ​​послСдняя вСрсия Node.js.
  2. Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ инструкциям ΠΏΠΎ установкС Create React App, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.
  npx ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ create-Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅  
  1. Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΠ°ΠΏΠΊΠ΅ src / Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:

НС удаляйтС всю ΠΏΠ°ΠΏΠΊΡƒ src , Ρ‚ΠΎΠ»ΡŒΠΊΠΎ исходныС Ρ„Π°ΠΉΠ»Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π΅. На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ шагС ΠΌΡ‹ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ исходныС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ для этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

  cd my-app
cd src


rm -f *


del *


cd . .  
  1. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ index.css Π² ΠΏΠ°ΠΏΠΊΡƒ src / с этим ΠΊΠΎΠ΄ΠΎΠΌ CSS.
  2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ index.js Π² ΠΏΠ°ΠΏΠΊΡƒ src / с этим ΠΊΠΎΠ΄ΠΎΠΌ JS.
  3. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ эти Ρ‚Ρ€ΠΈ строки Π² Π½Π°Ρ‡Π°Π»ΠΎ Ρ„Π°ΠΉΠ»Π° index.js Π² ΠΏΠ°ΠΏΠΊΠ΅ src / :
  ΠΈΠΌΠΏΠΎΡ€Ρ‚ React ΠΈΠ· react;
ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ReactDOM ΠΈΠ· react-dom;
ΠΈΠΌΠΏΠΎΡ€Ρ‚ './index.css ';  

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ запуститС npm start Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚Π΅ http: // localhost: 3000 Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ пустоС ΠΏΠΎΠ»Π΅ крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ.

ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ этим инструкциям, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ подсвСтку синтаксиса для вашСго Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°.

ΠŸΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅, я застрял!

Если Π²Ρ‹ застряли, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ рСсурсам ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ сообщСства. Π’ частности, Reactiflux Chat — ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ быстро ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ. Если Π²Ρ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΈΠ»ΠΈ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, сообщитС ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅, ΠΈ ΠΌΡ‹ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅ΠΌ.

ΠžΠ±Π·ΠΎΡ€

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ настроили, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим React!

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React?

React — это дСкларативная, эффСктивная ΠΈ гибкая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JavaScript для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов. Он позволяСт ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ слоТныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы ΠΈΠ· Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ΄Π°, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Β«ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈΒ».

React ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π½ΠΎ ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ с подклассов React.Component :

  class ShoppingList Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ React.ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ {
  ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ() {
    Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
      

Бписок ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ для {this.props.name}

  • Instagram
  • WhatsApp
  • Oculus
); } }

Π‘ΠΊΠΎΡ€ΠΎ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Π·Π°Π±Π°Π²Π½Ρ‹ΠΌ Ρ‚Π΅Π³Π°ΠΌ Π² стилС XML. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ React, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° экранС. Когда наши Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ, React Π±ΡƒΠ΄Π΅Ρ‚ эффСктивно ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ наши ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

Π—Π΄Π΅ΡΡŒ ShoppingList — это ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ класса React ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Ρ‚ΠΈΠΏΠ° React. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ props (сокращСниС ΠΎΡ‚ «свойства»), ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ прСдставлСний для отобраТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° render .

ΠœΠ΅Ρ‚ΠΎΠ΄ render Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ описаниС Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° экранС. React Π±Π΅Ρ€Π΅Ρ‚ описаниС ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π’ частности, render Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнт React , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΌ описаниСм Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² React ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ синтаксис ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«JSXΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ написаниС этих структур. Бинтаксис

прСобразуСтся Π²ΠΎ врСмя сборки Π² React.createElement ('div') . ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹ΡˆΠ΅ эквивалСнтСн:

  return React.createElement ('div', {className: 'shopping-list'},
  React.createElement ('h2',),
  React.createElement ('ul',)
);  

Π‘ΠΌ. ΠŸΠΎΠ»Π½ΡƒΡŽ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ.

Если Π²Π°ΠΌ интСрСсно, createElement () Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описан Π² справочникС ΠΏΠΎ API, Π½ΠΎ ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² этом руководствС.ВмСсто этого ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ JSX.

JSX Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя всС возмоТности JavaScript. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ JavaScript Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки Π²Π½ΡƒΡ‚Ρ€ΠΈ JSX. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт React — это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ JavaScript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ShoppingList Π²Ρ‹ΡˆΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ встроСнныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ DOM, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ

ΠΈ

  • . Но Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ собствСнныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ React.НапримСр, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊΠΎ всСму списку ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ, написав . ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ React инкапсулирован ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ нСзависимо; это позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ слоТныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы ΠΈΠ· простых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

    ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° стартового ΠΊΠΎΠ΄Π°

    Если Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠΎΠΌ Π² своСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ этот ΠΊΠΎΠ΄ Π² Π½ΠΎΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅: Π‘Ρ‚Π°Ρ€Ρ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ . Если Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠΎΠΌ локально, вмСсто ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ src / index.js Π² ΠΏΠ°ΠΏΠΊΠ΅ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π²Ρ‹ ΡƒΠΆΠ΅ касались этого Ρ„Π°ΠΉΠ»Π° Π²ΠΎ врСмя установки).

    Π­Ρ‚ΠΎΡ‚ Π‘Ρ‚Π°Ρ€Ρ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ — основа Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ создаСм. ΠœΡ‹ прСдусмотрСли стили CSS, поэтому Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ React ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ³Ρ€Ρ‹ Π² крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ.

    Π˜Π·ΡƒΡ‡ΠΈΠ² ΠΊΠΎΠ΄, Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° React:

    ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Square ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ); } }

    РаньшС:

    ПослС: Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ число Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π°.

    ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь

    ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ! Π’Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Β«ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ ΠΎΠΏΠΎΡ€ΡƒΒ» ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Board Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Square. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π° - это Ρ‚ΠΎ, ΠΊΠ°ΠΊ информация пСрСдаСтся Π² прилоТСниях React ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΊ дСтям.

    Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°

    Π”Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π±ΡƒΠΊΠ²ΠΎΠΉ Β«XΒ», ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ‰Π΅Π»ΠΊΠ½Π΅ΠΌ ΠΏΠΎ Π½Π΅ΠΌΡƒ.
    Π‘Π½Π°Ρ‡Π°Π»Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ‚Π΅Π³ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ render () ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Square, Π½Π° этот:

      класс Square Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ React.ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ {
      ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ() {
        Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
          
        );
      }
    }  

    Если Π²Ρ‹ сСйчас Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ Π½Π° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² своСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

    Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π²Π²ΠΎΠ΄ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎΠ³ΠΎ повСдСния ΠΈ , ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ синтаксис стрСлочной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий здСсь ΠΈ Π΄Π°Π»Π΅Π΅:

      класс Square Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ React.ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ {
     ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ() {
       Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
         
       );
     }
    }  

    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ с onClick = {() => alert ('click')} ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊΠ°ΠΊ ΠΎΠΏΠΎΡ€Ρƒ onClick . React Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Ρ‰Π΅Π»Ρ‡ΠΊΠ°. Π—Π°Π±Ρ‹Ρ‚ΡŒ () => ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ onClick = {alert ('click')} являСтся распространСнной ошибкой ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

    Π’ качСствС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ шага ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Square Β«Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠ»Β», Ρ‡Ρ‚ΠΎ ΠΏΠΎ Π½Π΅ΠΌΡƒ Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ»ΠΈ, ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ» Π΅Π³ΠΎ Π·Π½Π°ΠΊΠΎΠΌ Β«XΒ». Π§Ρ‚ΠΎΠ±Ρ‹ Β«Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒΒ» Π²Π΅Ρ‰ΠΈ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ состояниС .

    ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ React ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ состояниС, Π·Π°Π΄Π°Π² this.state Π² ΠΈΡ… конструкторах. this.state слСдуСт Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ частный для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° React, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½. Π”Π°Π²Π°ΠΉΡ‚Π΅ сохраним Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Square Π² this.state ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π΅Π³ΠΎ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° Square.

    Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² класс конструктор для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ состояния:

      class Square extends React.Component {
      конструктор (Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚) {супСр (Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚); this.state = {Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: null,}; }
      ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ() {
        Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
          
        );
      }
    }  

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

    Π’ классах JavaScript Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ всСгда Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ super ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ конструктора подкласса.ВсС классы ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² React, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ конструктор , Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π²Ρ‹Π·ΠΎΠ²Π° super (props) .

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ Square render , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ:

    • Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ this.props.value Π½Π° this.state.value Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π³Π°
    • Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий onClick = {...} Π½Π° onClick = {() => this.setState ({value: 'X'})} .
    • ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ свойства className ΠΈ onClick Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ строки для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ читаСмости.

    ПослС этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ‚Π΅Π³ ); } }

    Вызывая this.setState ΠΈΠ· ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° onClick Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Square , ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ React ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ этот Square всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° наТимаСтся Π΅Π³ΠΎ ); } }

    ΠŸΡ€ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ ΠΏΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρƒ вызываСтся функция onClick , прСдоставляСмая Board. Π’ΠΎΡ‚ ΠΎΠ±Π·ΠΎΡ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ это достигаСтся:

    1. ΠžΠΏΠΎΡ€Π° onClick Π²ΠΎ встроСнном ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ DOM
    2. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ React Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события onClick , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ render () Square.
    3. Π­Ρ‚ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ this.props.onClick () . Бвойство Square onClick Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠŸΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ.
    4. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Board ΠΏΠ΅Ρ€Π΅Π΄Π°Π» onClick = {() => this.handleClick (i)} Π² Square, Square Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ this.handleClick (i) ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ.
    5. ΠœΡ‹ Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ handleClick () , поэтому наш ΠΊΠΎΠ΄ Π΄Π°Π΅Ρ‚ сбой.Если сСйчас Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ красный экран с ошибкой Π²Ρ€ΠΎΠ΄Π΅ Β«this.handleClick Π½Π΅ являСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉΒ».

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

    Атрибут onClick элСмСнта DOM

    Когда ΠΌΡ‹ пытаСмся Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сообщСниС ΠΎΠ± ошибкС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ handleClick . Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ handleClick ΠΊ классу Board:

    .

      class Board Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ React.Component {
      конструктор (Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚) {
        супСр (Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚);
        this.state = {
          ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹: Массив (9).Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ (ноль),
        };
      }
    
      handleClick (я) {константныС ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ = this.state.squares.slice (); ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ [я] = 'X'; this.setState ({ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹: ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹}); }
      renderSquare (i) {
        Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
          <ΠšΠ²Π°Π΄Ρ€Π°Ρ‚
            Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = {this.state.squares [i]}
            onClick = {() => this.handleClick (i)}
          />
        );
      }
    
      ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ() {
        const status = 'Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠ³Ρ€ΠΎΠΊ: X';
    
        Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
          
    {status}
    {это.renderSquare (0)} {this.renderSquare (1)} {this.renderSquare (2)}
    {this.renderSquare (3)} {this.renderSquare (4)} {this.renderSquare (5)}
    {this.renderSquare (6)} {this.renderSquare (7)} {this.renderSquare (8)}
    ); } }

    ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь

    ПослС этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΡ‹ снова ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΡ…, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅.Однако Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ состояниС сохраняСтся Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Board, Π° Π½Π΅ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… Square. Когда состояниС Board измСняСтся, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Square автоматичСски ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ. Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ состояния всСх ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Board ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ побСдитСля Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

    ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Square большС Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ состояниС, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Square ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ значСния ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Board ΠΈ ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Board ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° Π½ΠΈΡ…. Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… React ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Square Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ .ΠŸΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ….

    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π² handleClick ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ .slice () , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ копию массива squares для измСнСния вмСсто измСнСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ массива. ΠœΡ‹ объясним, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ создаСм копию массива ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅.

    ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΆΠ½Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ

    Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π° ΠΌΡ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ .slice () для создания ΠΊΠΎΠΏΠΈΠΈ массива squares для измСнСния вмСсто измСнСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ массива.Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ обсудим Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ Ρ‚ΠΎ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ.

    ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π²Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ измСнСнию Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² значСния Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ - Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΡΡ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹Π΅ измСнСния.

    ИзмСнСниС Π΄Π°Π½Π½Ρ‹Ρ… с ΠΌΡƒΡ‚Π°Ρ†ΠΈΠ΅ΠΉ
      var player = {ΠΎΡ†Π΅Π½ΠΊΠ°: 1, имя: 'Π”ΠΆΠ΅Ρ„Ρ„'};
    player.score = 2;
      
    ИзмСнСниС Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· ΠΌΡƒΡ‚Π°Ρ†ΠΈΠΈ
      var player = {ΠΎΡ†Π΅Π½ΠΊΠ°: 1, имя: 'Π”ΠΆΠ΅Ρ„Ρ„'};
    
    var newPlayer = ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ({}, ΠΈΠ³Ρ€ΠΎΠΊ, {ΠΎΡ†Π΅Π½ΠΊΠ°: 2});
    
    
    
      

    ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅, Π½ΠΎ Π±Π΅Π· нСпосрСдствСнного измСнСния (ΠΈΠ»ΠΈ измСнСния Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…) ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ нСсколько прСимущСств, описанных Π½ΠΈΠΆΠ΅.

    Π‘Π»ΠΎΠΆΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ становятся простыми

    ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ слоТных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ПозТС Π² этом руководствС ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Β«ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΡ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈΒ», которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ³Ρ€Ρ‹ Π² крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ ΠΈ Β«Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡΒ» ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ Ρ…ΠΎΠ΄Π°ΠΌ. Π­Ρ‚Π° функция Π½Π΅ относится ΠΊ ΠΈΠ³Ρ€Π°ΠΌ - Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ дСйствия являСтся ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.ИзбСТаниС прямой ΠΌΡƒΡ‚Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… позволяСт Π½Π°ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ вСрсии истории ΠΈΠ³Ρ€Ρ‹ Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ΠΌΠΈ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ·ΠΆΠ΅.

    ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

    ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² измСняСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Π­Ρ‚ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ измСняСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ сравнивался с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌΠΈ копиями самого сСбя ΠΈ всС Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ.

    ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ измСнСния Π² нСизмСняСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅. Если нСизмСняСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСлаСтся ссылка, отличаСтся ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ, Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½.

    ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π² React

    ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ прСимущСством нСизмСняСмости являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ чистых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² React. НСизмСняСмыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π±Ρ‹Π»ΠΈ Π»ΠΈ внСсСны измСнСния, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ shouldComponentUpdate () ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ чистых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² , ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

    Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Square Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ .

    Π’ React Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ - это Π±ΠΎΠ»Π΅Π΅ простой способ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ render ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ собствСнного состояния. ВмСсто опрСдСлСния класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ React.Component , ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ props Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ΅Π½Π΅Π΅ ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Π΅ΠΌ классы, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Ρ‹ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

    Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ класс Square этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ:

      ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚) {
      Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
        
      );
    }  

    ΠœΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ this.props Π½Π° props ΠΎΠ±Π° Ρ€Π°Π·Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ появляСтся.

    ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

    Когда ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Square ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ onClick = {() => this.props.onClick ()} Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ onClick = {props.onClick} (ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° отсутствиС ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобок Π½Π° с ΠΎΠ±Π΅ΠΈΡ… сторон ).

    По ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ Π΄Π΅Ρ„Π΅ΠΊΡ‚ Π² нашСй ΠΈΠ³Ρ€Π΅ Π² крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ: Π±ΡƒΠΊΠ²Ρ‹ «О» Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Π½Π° доскС.

    По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΡ‹ установим ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ…ΠΎΠ΄ ΠΊΠ°ΠΊ Β«XΒ». ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС Π² нашСм конструкторС Board:

      class Board Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ React.Component {
      конструктор (Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚) {
        супСр (Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚);
        this.state = {
          ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹: Array (9) .fill (null),
          xIsNext: true,};
      }  

    ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³Ρ€ΠΎΠΊ пСрСмСщаСтся, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ xIsNext (логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ³Ρ€ΠΎΠΊ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ, ΠΈ состояниС ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ сохранСно.ΠœΡ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ handleClick Π½Π° ΠΏΠ»Π°Ρ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ xIsNext :

    .

      handleClick (i) {
        const squares = this.state.squares.slice ();
        ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ [i] = this.state.xIsNext? 'X': 'О'; this.setState ({
          ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹: ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹,
          xIsNext:! this.state.xIsNext,});
      }  

    Π‘ этим ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Β«XΒ» ΠΈ Β«OΒ» ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ это!

    Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ тСкст «статуса» Π² ΠΏΠ°Π½Π΅Π»ΠΈ render , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π», Ρƒ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ…ΠΎΠ΄:

      render () {
        const status = 'Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠ³Ρ€ΠΎΠΊ:' + (this.state.xIsNext? 'X': 'O');
        Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
            

    ПослС примСнСния этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρƒ вас Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ этот ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΠ»Π°Ρ‚Ρ‹:

      class Board Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ React.Component {
      конструктор (Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚) {
        супСр (Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚);
        this.state = {
          ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹: Array (9) .fill (null),
          xIsNext: true,};
      }
    
      handleClick (i) {
        const squares = this.state.squares.slice (); ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ [i] = this.state.xIsNext? 'X': 'О'; this.setState ({ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹: ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹, xIsNext:! this.state.xIsNext,}); }
    
      renderSquare (i) {
        Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
          <ΠšΠ²Π°Π΄Ρ€Π°Ρ‚
            Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = {this.state.squares [i]}
            onClick = {() => this.handleClick (i)}
          />
        );
      }
    
      ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ() {
        const status = 'Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠ³Ρ€ΠΎΠΊ:' + (this.state.xIsNext? 'X': 'O');
        Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
          
    {status}
    {this.renderSquare (0)} {this.renderSquare (1)} {this.renderSquare (2)}
    {это.renderSquare (3)} {this.renderSquare (4)} {this.renderSquare (5)}
    {this.renderSquare (6)} {this.renderSquare (7)} {this.renderSquare (8)}
    ); } }

    ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь

    ОбъявлСниС побСдитСля

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ³Ρ€ΠΎΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ…ΠΎΠ΄, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³Ρ€Π° Π²Ρ‹ΠΈΠ³Ρ€Π°Π½Π° ΠΈ большС Π½Π΅Ρ‚ Ρ…ΠΎΠ΄ΠΎΠ².Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ эту Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π΅Π΅ Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°:

      функция calculateWinner (ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹) {
      const lines = [
        [0, 1, 2],
        [3, 4, 5],
        [6, 7, 8],
        [0, 3, 6],
        [1, 4, 7],
        [2, 5, 8],
        [0, 4, 8],
        [2, 4, 6],
      ];
      for (let i = 0; i  

    Учитывая массив ΠΈΠ· 9 ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ², эта функция провСряСт побСдитСля ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 'X' , 'O' ΠΈΠ»ΠΈ null Π² зависимости ΠΎΡ‚ ситуации.

    ΠœΡ‹ Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ calculateWinner (squares) Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Board render , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π²Ρ‹ΠΈΠ³Ρ€Π°Π» Π»ΠΈ ΠΈΠ³Ρ€ΠΎΠΊ. Если ΠΈΠ³Ρ€ΠΎΠΊ Π²Ρ‹ΠΈΠ³Ρ€Π°Π», ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ тСкст, ΠΊΠ°ΠΊ Β«ΠŸΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ: XΒ» ΠΈΠ»ΠΈ Β«ΠŸΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ: OΒ». ΠœΡ‹ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ объявлСниС status Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Board render Π½Π° этот ΠΊΠΎΠ΄:

      render () {
        констант ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ = calculateWinner (this.state.squares); ΠΏΡƒΡΡ‚ΡŒ статус; if (ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ) {status = 'ΠŸΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ:' + ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ; } else {status = 'Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠ³Ρ€ΠΎΠΊ:' + (this.state.xIsNext? 'X': 'O'); }
        Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
            

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Board handleClick , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π»Π°ΡΡŒ Ρ€Π°Π½ΡŒΡˆΠ΅, игнорируя Ρ‰Π΅Π»Ρ‡ΠΎΠΊ, Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π²Ρ‹ΠΈΠ³Ρ€Π°Π» ΠΈΠ³Ρ€Ρƒ ΠΈΠ»ΠΈ Ссли ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ ΡƒΠΆΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½:

      handleClick (i) {
        const squares = this.state.squares.slice ();
        Ссли (Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒΠŸΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ (ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹) || ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ [я]) {Π²ΠΎΠ·Π²Ρ€Π°Ρ‚; } ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ [i] = this.state.xIsNext? 'X': 'О';
        this.setState ({
          ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹: ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹,
          xIsNext:! this.state.xIsNext,
        });
      }  

    ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь

    ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ! Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΅ΡΡ‚ΡŒ рабочая ΠΈΠ³Ρ€Π° Π² крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ. И Π²Ρ‹ Ρ‚ΠΎΠΆΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΡƒΠ·Π½Π°Π»ΠΈ основы React. Π˜Ρ‚Π°ΠΊ, , Π²Ρ‹ , вСроятно, здСсь настоящий ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ.

    Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΡ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

    Π’ качСствС Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ упраТнСния Π΄Π°Π²Π°ΠΉΡ‚Π΅ «вСрнСмся Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈΒ» ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ Ρ…ΠΎΠ΄Π°ΠΌ Π² ΠΈΠ³Ρ€Π΅.

    Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ истории ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ

    Если ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ массив ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² ΠΈ , рСализация ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΡ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ слоТной.

    Однако ΠΌΡ‹ использовали slice () для создания Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ массива squares послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ…ΠΎΠ΄Π° ΠΈ считали Π΅Π΅ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ вСрсии массива ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π΄ΡˆΠΈΠΌΠΈ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°ΠΌΠΈ.

    ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡˆΠ»Ρ‹Π΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² массивов Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ массивС ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ history . Π˜ΡΡ‚ΠΎΡ€ΠΈΡ Массив прСдставляСт всС состояния доски, ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π΄ΠΎ послСднСго Ρ…ΠΎΠ΄Π°, ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΡƒΡŽ ​​форму:

      история = [
      
      {
        ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹: [
          ноль, ноль, ноль,
          ноль, ноль, ноль,
          ноль, ноль, ноль,
        ]
      },
      
      {
        ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹: [
          ноль, ноль, ноль,
          ноль, 'X', ноль,
          ноль, ноль, ноль,
        ]
      },
      
      {
        ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹: [
          ноль, ноль, ноль,
          ноль, 'X', ноль,
          ноль, ноль, 'O',
        ]
      },
      
    ]  

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π»Π°Π΄Π΅Ρ‚ΡŒ состояниСм истории .

    БостояниС подъСма, снова

    Нам Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Game Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π» список ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… Ρ…ΠΎΠ΄ΠΎΠ². Для этого Π΅ΠΌΡƒ потрСбуСтся доступ ΠΊ истории , поэтому ΠΌΡ‹ помСстим состояниС истории Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Game Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня.

    Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ состояния history Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Game позволяСт Π½Π°ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ состояниС squares ΠΈΠ· Π΅Π³ΠΎ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Board. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡ‹ «подняли состояниС» ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Square Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Board, ΠΌΡ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΠΌ Π΅Π³ΠΎ ΠΈΠ· Board Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Game Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня.Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Board ΠΈ позволяСт Π΅ΠΌΡƒ ΠΏΡ€ΠΎΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Board ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Ρ…ΠΎΠ΄ΠΎΠ² ΠΈΠ· истории .

    Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ установим Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Game Π² Π΅Π³ΠΎ конструкторС:

      class Game Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ React.Component {
      конструктор (Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚) {супСр (Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚); this.state = {история: [{ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹: массив (9) .fill (null),}], xIsNext: true,}; }
      ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ() {
        Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
          
    <Доска />
    {}
      {}
    ); } }

    Π—Π°Ρ‚Π΅ΠΌ Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Board, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² ΠΈ props onClick ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Game.ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠΊΠ° Π² Board для ΠΌΠ½ΠΎΠ³ΠΈΡ… Squares, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ мСстополоТСниС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Square Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ onClick , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Square Π±Ρ‹Π» Π½Π°ΠΆΠ°Ρ‚. Π’ΠΎΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ шаги для прСобразования ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Board:

    • Π£Π΄Π°Π»ΠΈΡ‚Π΅ конструктор Π² Board.
    • Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ this.state.squares [i] Π½Π° this.props.squares [i] Π² ΠΏΠ°Π½Π΅Π»ΠΈ renderSquare .
    • Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ this.handleClick (i) Π½Π° this.props.onClick (i) Π² Ρ„Π°ΠΉΠ»Π΅ Board renderSquare .

    ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Board Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выглядит Ρ‚Π°ΠΊ:

      class Board Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ React.Component {
      handleClick (i) {
        const squares = this.state.squares.slice ();
        if (calculateWinner (squares) || squares [i]) {
          Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ;
        }
        ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ [i] = this.state.xIsNext? 'X': 'О';
        this.setState ({
          ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹: ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹,
          xIsNext:! this.state.xIsNext,
        });
      }
    
      renderSquare (i) {
        Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
          <ΠšΠ²Π°Π΄Ρ€Π°Ρ‚
            value = {this.props.squares [i]} onClick = {() => this.props.onClick (i)} />
        );
      }
    
      ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ() {
        констант ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ = calculateWinner (this.state.squares);
        ΠΏΡƒΡΡ‚ΡŒ статус;
        Ссли (ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ) {
          status = 'ΠŸΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ:' + ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ;
        } Π΅Ρ‰Π΅ {
          status = 'Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠ³Ρ€ΠΎΠΊ:' + (this.state.xIsNext? 'X': 'O');
        }
    
        Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
          
    {status}
    {this.renderSquare (0)} {this.renderSquare (1)} {это.renderSquare (2)}
    {this.renderSquare (3)} {this.renderSquare (4)} {this.renderSquare (5)}
    {this.renderSquare (6)} {this.renderSquare (7)} {this.renderSquare (8)}
    ); } }

    ΠœΡ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ render ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Game, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ°ΠΌΡƒΡŽ послСднюю запись Π² истории для опрСдСлСния ΠΈ отобраТСния статуса ΠΈΠ³Ρ€Ρ‹:

      render () {
        const history = this.state.history; const current = history [history.length - 1]; const ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ = calculateWinner (current.squares); ΠΏΡƒΡΡ‚ΡŒ статус; if (ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ) {status = 'ΠŸΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ:' + ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ; } else {status = 'Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠ³Ρ€ΠΎΠΊ:' + (this.state.xIsNext? 'X': 'O'); }
        Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
          
    this.handleClick (i)} />
    {status}
      {}
    ); }

    ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Game Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ статус ΠΈΠ³Ρ€Ρ‹, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄Π° render Board.ПослС Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° функция ΠΏΠ»Π°Ρ‚Ρ‹ render выглядит Ρ‚Π°ΠΊ:

      render () {return (
    {this.renderSquare (0)} {this.renderSquare (1)} {this.renderSquare (2)}
    {this.renderSquare (3)} {this.renderSquare (4)} {this.renderSquare (5)}
    {это.renderSquare (6)} {this.renderSquare (7)} {this.renderSquare (8)}
    ); }

    НаконСц, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ handleClick ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Board Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Game. Нам Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ handleClick , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ состояниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Game ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ структуру. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π° handleClick ΠΈΠ³Ρ€Ρ‹ ΠΌΡ‹ объСдиняСм Π½ΠΎΠ²Ρ‹Π΅ записи истории с историСй .

      handleClick (i) {
        const history = this.state.history; const current = history [history.length - 1]; const squares = current.squares.slice (); if (calculateWinner (squares) || squares [i]) {
          Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ;
        }
        ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ [i] = this.state.xIsNext? 'X': 'О';
        this.setState ({
          history: history.concat ([{ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹: ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹,}]), xIsNext:! this.state.xIsNext,
        });
      }  

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

    Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° array push () , с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹, ΠΌΠ΅Ρ‚ΠΎΠ΄ concat () Π½Π΅ измСняСт исходный массив, поэтому ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ Π΅Π³ΠΎ.

    На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Board Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ renderSquare ΠΈ render . БостояниС ΠΈΠ³Ρ€Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ handleClick Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Game.

    ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь

    ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… Ρ…ΠΎΠ΄ΠΎΠ²

    ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ записываСм ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ³Ρ€Ρ‹ Π² крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΅Π΅ для ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² Π²ΠΈΠ΄Π΅ списка ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… Ρ…ΠΎΠ΄ΠΎΠ².

    Π Π°Π½Π΅Π΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ элСмСнты React - это пСрвоклассныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ JavaScript; ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… Π² Π½Π°ΡˆΠΈΡ… прилоТСниях.Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ нСсколько элСмСнтов Π² React, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ массив элСмСнтов React.

    Π’ JavaScript массивы ΠΈΠΌΠ΅ΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ map () , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для сопоставлСния Π΄Π°Π½Π½Ρ‹Ρ… с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

      постоянныС числа = [1, 2, 3];
    const doubled = numbers.map (x => x * 2);  

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ map , ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Ρ…ΠΎΠ΄ΠΎΠ² с элСмСнтами React, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° экранС, ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ список ΠΊΠ½ΠΎΠΏΠΎΠΊ для Β«ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°Β» ΠΊ ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΌ Ρ…ΠΎΠ΄Π°ΠΌ.

    Π”Π°Π²Π°ΠΉΡ‚Π΅ сопоставим с историСй Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΈΠ³Ρ€Ρ‹ :

      render () {
        const history = this.state.history;
        const current = history [history.length - 1];
        const ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ = calculateWinner (current.squares);
    
        const move = history.map ((step, move) => {const desc = move? 'ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ #' + move: 'ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ ΠΈΠ³Ρ€Ρ‹'; return (
  • );}); ΠΏΡƒΡΡ‚ΡŒ статус; Ссли (ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ) { status = 'ΠŸΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ:' + ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ; } Π΅Ρ‰Π΅ { status = 'Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠ³Ρ€ΠΎΠΊ:' + (this.state.xIsNext? 'X': 'O'); } Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
    <Доска ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ = {current.squares} onClick = {(i) => this.handleClick (i)} />
    {статус}
      {двиТСтся}
    ); }

    ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь

    Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ…ΠΎΠ΄Π° Π² истории ΠΈΠ³Ρ€Ρ‹ Π² крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ ΠΌΡ‹ создаСм элСмСнт списка

  • , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΊΠ½ΠΎΠΏΠΊΡƒ
  • ); });

    ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь

    ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ любой ΠΈΠ· ΠΊΠ½ΠΎΠΏΠΎΠΊ элСмСнта списка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ jumpTo Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½.ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ jumpTo , ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ stepNumber Π² состояниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Game, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ шаг ΠΌΡ‹ просматриваСм Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚.

    Π‘Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ stepNumber: 0 ΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π² конструкторС Game :

      class Game Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ React.Component {
      конструктор (Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚) {
        супСр (Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚);
        this.state = {
          история: [{
            ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹: Array (9) .fill (null),
          }],
          stepNumber: 0, xIsNext: истина,
        };
      }  

    Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ jumpTo Π² Game, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ этот stepNumber .ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ устанавливаСм для xIsNext Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ссли число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ мСняСм stepNumber Π½Π° Ρ‡Π΅Ρ‚Π½ΠΎΠ΅:

      handleClick (i) {
        
      }
    
      jumpTo (шаг) {this.setState ({stepNumber: step, xIsNext: (step% 2) === 0,}); }
      ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ() {
        
      }  

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ внСсСм нСсколько ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ handleClick , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ срабатываСт ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚.

    Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ Π½Π°ΠΌΠΈ состояниС stepNumber ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ…ΠΎΠ΄, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ сСйчас.ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ сдСлаСм Π½ΠΎΠ²Ρ‹ΠΉ Ρ…ΠΎΠ΄, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ stepNumber , Π΄ΠΎΠ±Π°Π²ΠΈΠ² stepNumber: history.length ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° this.setState . Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ застрянСм, показывая ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ…ΠΎΠ΄ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±Ρ‹Π» сдСлан Π½ΠΎΠ²Ρ‹ΠΉ.

    ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ this.state.history Π½Π° this.state.history.slice (0, this.state.stepNumber + 1) . Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли ΠΌΡ‹ «вСрнСмся Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ΅Β», Π° Π·Π°Ρ‚Π΅ΠΌ сдСлаСм Π½ΠΎΠ²Ρ‹ΠΉ шаг с этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΌΡ‹ выбросим всю Β«Π±ΡƒΠ΄ΡƒΡ‰ΡƒΡŽΒ» ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ, которая Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ стала Π±Ρ‹ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ.

      handleClick (i) {
        const history = this.state.history.slice (0, this.state.stepNumber + 1); const current = history [history.length - 1];
        const squares = current.squares.slice ();
        if (calculateWinner (squares) || squares [i]) {
          Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ;
        }
        ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ [i] = this.state.xIsNext? 'X': 'О';
        this.setState ({
          history: history.concat ([{
            ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹: ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹
          }]),
          stepNumber: history.length, xIsNext:! this.state.xIsNext,
        });
      }  

    НаконСц, ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ render ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Game, Π·Π°ΠΌΠ΅Π½ΠΈΠ² всСгда Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ послСднСго Ρ…ΠΎΠ΄Π° Π½Π° Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Ρ…ΠΎΠ΄Π° Π² соотвСтствии с stepNumber :

      render () {
        const history = this.state.history;
        const current = история [this.state.stepNumber]; const ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ = calculateWinner (current.squares);
    
          

    Если ΠΌΡ‹ Ρ‰Π΅Π»ΠΊΠ½Π΅ΠΌ ΠΏΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ ΡˆΠ°Π³Ρƒ Π² истории ΠΈΠ³Ρ€Ρ‹, доска для ΠΈΠ³Ρ€Ρ‹ Π² крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ доска выглядСла послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ этот шаг ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π».

    ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь

    Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

    ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ! Π’Ρ‹ создали ΠΈΠ³Ρ€Ρƒ Π² крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ:

    • ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ Π² крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ,
    • Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³Ρ€ΠΎΠΊ Π²Ρ‹ΠΈΠ³Ρ€Π°Π» ΠΈΠ³Ρ€Ρƒ,
    • БохраняСт ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ³Ρ€Ρ‹ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Π΅Π΅ прохоТдСния,
    • ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΈΠ³Ρ€ΠΎΠΊΠ°ΠΌ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ³Ρ€Ρ‹ ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ вСрсии ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля.

    ΠžΡ‚Π»ΠΈΡ‡Π½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°! ΠœΡ‹ надССмся, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ чувствуСтС, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ React.

    ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ здСсь: Final Result .

    Если Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя ΠΈΠ»ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π½ΠΎΠ²Ρ‹Ρ… Π½Π°Π²Ρ‹ΠΊΠ°Ρ… React, Π²ΠΎΡ‚ нСсколько ΠΈΠ΄Π΅ΠΉ ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ внСсти Π² ΠΈΠ³Ρ€Ρƒ Π² крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ пСрСчислСны Π² порядкС возрастания слоТности:

    1. ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ мСстополоТСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ…ΠΎΠ΄Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ (столбСц, строка) Π² спискС истории Ρ…ΠΎΠ΄ΠΎΠ².
    2. Π’Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ элСмСнт Π² спискС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ Π²Ρ‹Π΄Π΅Π»Π΅Π½ ΠΆΠΈΡ€Π½Ρ‹ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ.
    3. Rewrite Board, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π΅ ΠΏΠ΅Ρ‚Π»ΠΈ для создания ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² вмСсто ΠΈΡ… ТСсткого кодирования.
    4. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Π°ΠΌ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΠΎΠ΄Ρ‹ Π² Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰Π΅ΠΌ ΠΈΠ»ΠΈ ΡƒΠ±Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ порядкС.
    5. Когда ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ‚Ρ€ΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ ΠΏΠΎΠ±Π΅Π΄Π΅.
    6. Если Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π²Ρ‹ΠΈΠ³Ρ€Π°Π», ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ сообщСниС ΠΎ Π½ΠΈΡ‡ΡŒΠ΅ΠΉ.

    Π’ этом руководствС ΠΌΡ‹ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ»ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ React, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ элСмСнты, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, свойства ΠΈ состояниС. Для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ объяснСния ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· этих Ρ‚Π΅ΠΌ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ.Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎΠ± ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с справочником React.Component API.

    Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ - React

    Π­Ρ‚Π° страница прСдставляСт собой ΠΎΠ±Π·ΠΎΡ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ React ΠΈ связанных рСсурсов.

    React - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JavaScript для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов. Π£Π·Π½Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React, Π½Π° нашСй домашнСй страницС ΠΈΠ»ΠΈ Π² руководствС.


    ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ React

    React с самого Π½Π°Ρ‡Π°Π»Π° разрабатывался для постСпСнного внСдрСния, Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ, сколько Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ React, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ интСрактивности ΠΊ простой HTML-страницС ΠΈΠ»ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ слоТноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° основС React, ссылки Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

    Π˜Π³Ρ€ΠΎΠ²Ρ‹Π΅ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠΈ ΠΎΠ½Π»Π°ΠΉΠ½

    Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ с React, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΡƒ для ΠΊΠΎΠ΄Π°. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ шаблон Hello World Π½Π° CodePen, CodeSandbox ΠΈΠ»ΠΈ Stackblitz.

    Если Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ собствСнный тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ этот HTML-Ρ„Π°ΠΉΠ», ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈΠ· локальной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.Он выполняСт ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π²ΠΎ врСмя выполнСния, поэтому ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для простых дСмонстраций.

    Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ Π½Π° Π²Π΅Π±-сайт

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ React Π½Π° HTML-страницу Π·Π° ΠΎΠ΄Π½Ρƒ ΠΌΠΈΠ½ΡƒΡ‚Ρƒ. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈΠ±ΠΎ постСпСнно Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Π΅Π³ΠΎ присутствиС, Π»ΠΈΠ±ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… динамичСских Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°Ρ….

    Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ прилоТСния React

    ΠŸΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° React простая HTML-страница с Ρ‚Π΅Π³Π°ΠΌΠΈ сцСнария ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ. Настройка Π·Π°ΠΉΠΌΠ΅Ρ‚ всСго ΠΌΠΈΠ½ΡƒΡ‚Ρƒ!

    По ΠΌΠ΅Ρ€Π΅ роста вашСго прилоТСния Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ интСгрированная установка.Для Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ нСсколько Π½Π°Π±ΠΎΡ€ΠΎΠ² инструмСнтов JavaScript. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с минимальной настройкой ΠΈΠ»ΠΈ Π±Π΅Π· Π½Π΅Π΅ ΠΈ позволяСт Π²Π°ΠΌ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ³Π°Ρ‚ΡƒΡŽ экосистСму React. ΠΠ°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ.

    Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ React

    Π›ΡŽΠ΄ΠΈ приходят Π² React с Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ ΠΈ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ стилями обучСния. Если Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ Π±ΠΎΠ»Π΅Π΅ тСорСтичСский ΠΈΠ»ΠΈ практичСский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΌΡ‹ надССмся, Ρ‡Ρ‚ΠΎ этот Ρ€Π°Π·Π΄Π΅Π» окаТСтся для вас ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ.

    Как ΠΈ любая нСзнакомая тСхнология, React Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ обучСния.Π‘ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ ΠΈ Ρ‚Π΅Ρ€ΠΏΠ΅Π½ΠΈΠ΅ΠΌ Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ .

    ΠŸΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

    Π”ΠΎΠΌΠ°ΡˆΠ½ΡΡ страница React содСрТит нСсколько Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² React с ΠΆΠΈΠ²Ρ‹ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ. Π”Π°ΠΆΠ΅ Ссли Π²Ρ‹ Π΅Ρ‰Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΎ React, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊΠΎΠ΄ ΠΈ посмотритС, ΠΊΠ°ΠΊ это повлияСт Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

    React для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

    Если Π²Ρ‹ чувствуСтС, Ρ‡Ρ‚ΠΎ докумСнтация React ΠΈΠ΄Π΅Ρ‚ быстрСС, Ρ‡Π΅ΠΌ Π²Ρ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с этим ΠΎΠ±Π·ΠΎΡ€ΠΎΠΌ React ΠΎΡ‚ Π’Π°Π½ΠΈ Расции. Он ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ с Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ концСпциями React ΠΈ ΡƒΠ΄ΠΎΠ±Π΅Π½ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ².Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚Π΅, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π΅Ρ‰Π΅ Ρ€Π°Π·!

    React для Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΎΠ²

    Если Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ, эти рСсурсы - ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ мСсто для Π½Π°Ρ‡Π°Π»Π°.

    РСсурсы JavaScript

    ДокумСнтация React ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ знакомство с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π° языкС JavaScript. ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ экспСртом, Π½ΠΎ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ React ΠΈ JavaScript слоТнСС.

    ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ этот ΠΎΠ±Π·ΠΎΡ€ JavaScript, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ свой ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π·Π½Π°Π½ΠΈΠΉ.Π­Ρ‚ΠΎ Π·Π°ΠΉΠΌΠ΅Ρ‚ Ρƒ вас ΠΎΡ‚ 30 ΠΌΠΈΠ½ΡƒΡ‚ Π΄ΠΎ часа, Π½ΠΎ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСбя Π±ΠΎΠ»Π΅Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ, изучая React.

    Подсказка

    Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° вас Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΡƒΡ‚Π°Π΅Ρ‚ Π² JavaScript, Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ MDN ΠΈ javascript.info. Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Ρ„ΠΎΡ€ΡƒΠΌΡ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ сообщСства, Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΠΈ.

    ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство

    Если Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с нашим практичСским руководством. Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ создаСм ΠΈΠ³Ρ€Ρƒ Π² крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ Π² React.Π£ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ соблазн ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚Π΅ΡΡŒ созданиСм ΠΈΠ³Ρ€, Π½ΠΎ Π΄Π°ΠΉΡ‚Π΅ Π΅ΠΌΡƒ шанс. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ Π² этом руководствС, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ для создания Π»ΡŽΠ±Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ React, ΠΈ ΠΈΡ… освоСниС даст Π²Π°ΠΌ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅.

    ПошаговоС руководство

    Если Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ шаг Π·Π° шагом, Π»ΡƒΡ‡ΡˆΠ΅ всСго Π½Π°Ρ‡Π°Ρ‚ΡŒ с - нашС руководство ΠΏΠΎ основным концСпциям. КаТдая ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π³Π»Π°Π²Π° Π² Π½Π΅ΠΌ основываСтся Π½Π° знаниях, прСдставлСнных Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ…, поэтому Π²Ρ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ пропуститС Π² процСссС.

    ΠœΡ‹ΡΠ»ΠΈΡ‚ΡŒ Π² рСакциях

    МногиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ React ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Β«Thinking in ReactΒ» являСтся ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° React Π½Π°ΠΊΠΎΠ½Π΅Ρ† Β«Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ»Β» для Π½ΠΈΡ…. ВСроятно, это самоС староС пошаговоС руководство ΠΏΠΎ React, Π½ΠΎ ΠΎΠ½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ.

    Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ курсы

    Иногда люди находят сторонниС ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ видСокурсы Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ, Ρ‡Π΅ΠΌ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ докумСнтация. ΠœΡ‹ Π²Π΅Π΄Π΅ΠΌ список часто Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Ρ… рСсурсов, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… бСсплатны.

    Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ

    Когда Π²Ρ‹ ΠΎΡΠ²ΠΎΠΈΡ‚Π΅ΡΡŒ с основными концСпциями ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΠ³Ρ€Π°Π΅Ρ‚Π΅ с React, вас ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТныС Ρ‚Π΅ΠΌΡ‹.Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ, Π½ΠΎ ΠΌΠ΅Π½Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ функциями React, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ context ΠΈ refs.

    Бсылка API

    Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ React API. НапримСр, справочник ΠΏΠΎ API React.Component ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Π°ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ setState () , ΠΈ для Ρ‡Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°.

    Глоссарий ΠΈ часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы

    Глоссарий содСрТит ΠΎΠ±Π·ΠΎΡ€ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ встрСтитС Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ React.Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… вопросов, посвящСнный ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌ вопросам ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌ Π½Π° ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запросов AJAX, состояниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ структуру Ρ„Π°ΠΉΠ»ΠΎΠ².

    Π‘ΡƒΠ΄ΡŒΡ‚Π΅ Π² курсС

    Π‘Π»ΠΎΠ³ React являСтся ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ источником ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ React. ВсС Π²Π°ΠΆΠ½ΠΎΠ΅, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ примСчания ΠΊ выпуску ΠΈΠ»ΠΈ увСдомлСния ΠΎΠ± ΠΎΡ‚ΠΊΠ°Π·Π΅ ΠΎΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, Π±ΡƒΠ΄Π΅Ρ‚ сначала ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ Ρ‚Π°ΠΌ.

    Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ @reactjs Π² Twitter, Π½ΠΎ Π²Ρ‹ Π½Π΅ пропуститС Π½ΠΈΡ‡Π΅Π³ΠΎ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ, Ссли Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π»ΠΎΠ³.

    НС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ выпуск React заслуТиваСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ сообщСния Π² Π±Π»ΠΎΠ³Π΅, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΆΡƒΡ€Π½Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ выпуска Π² Ρ„Π°ΠΉΠ»Π΅ CHANGELOG.md Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ React, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π° страницС Releases.

    ВСрсия Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

    Π­Ρ‚Π° докумСнтация всСгда ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ послСднюю ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ React. Начиная с React 16, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π±ΠΎΠ»Π΅Π΅ старыС вСрсии Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ страницС. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ докумСнтация для ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… вСрсий создаСтся Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ выпуска ΠΈ Π½Π΅ обновляСтся постоянно.

    Π§Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚?

    Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ отсутствуСт Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Ссли Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ какая-Ρ‚ΠΎ Ρ‡Π°ΡΡ‚ΡŒ сбиваСт вас с Ρ‚ΠΎΠ»ΠΊΡƒ, сообщитС ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ с вашими прСдлоТСниями ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ ΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π² Π’Π²ΠΈΡ‚Ρ‚Π΅Ρ€Π΅ Π½Π° @reactjs Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚. ΠœΡ‹ любим ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ вас!

    Hello World - React

    Π‘Π°ΠΌΡ‹ΠΉ малСнький ΠΏΡ€ΠΈΠΌΠ΅Ρ€ React выглядит Ρ‚Π°ΠΊ:

      ReactDOM.render (
      

    ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!

    , document.getElementById ('ΠΊΠΎΡ€Π΅Π½ΡŒ') );

    ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!Β» Π½Π° страницС.

    ΠŸΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° CodePen

    Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ссылку Π²Ρ‹ΡˆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. НС ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠ²Π»ΠΈΡΡŽΡ‚ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. На Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ страниц Π² этом руководствС Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для рСдактирования, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ этому.

    Как Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ это руководство

    Π’ этом руководствС ΠΌΡ‹ рассмотрим ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ React: элСмСнты ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Освоив ΠΈΡ…, Π²Ρ‹ смоТСтС ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ слоТныС прилоТСния ΠΈΠ· Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… частСй.

    Подсказка

    Π­Ρ‚ΠΎ руководство ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ обучСния шаг Π·Π° шагом .Если Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с нашим практичСским руководством. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ это руководство ΠΈ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ, Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°.

    Π­Ρ‚ΠΎ пСрвая Π³Π»Π°Π²Π° Π² пошаговом руководствС ΠΏΠΎ основным концСпциям React. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ список всСх Π΅Π³ΠΎ Π³Π»Π°Π² Π½Π° Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ. Если Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ это с мобильного устройства, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΠ³Π»Ρƒ экрана.

    КаТдая Π³Π»Π°Π²Π° Π² этом руководствС основана Π½Π° знаниях, прСдставлСнных Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ…. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ React, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² Π³Π»Π°Π²Ρ‹ руководства Β«ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈΒ» Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π° Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. НапримСр, Β«Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² JSXΒ» - это ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π³Π»Π°Π²Π° послС этой.

    ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ уровня Π·Π½Π°Π½ΠΈΠΉ

    React - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JavaScript, поэтому ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ прСдставлСниС ΠΎ языкС JavaScript. Если Π²Ρ‹ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² сСбС, ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ JavaScript, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ свой ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π·Π½Π°Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ этому руководству, Π½Π΅ Π·Π°Π±Π»ΡƒΠ΄ΠΈΠ²ΡˆΠΈΡΡŒ.Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ ΠΎΡ‚ 30 ΠΌΠΈΠ½ΡƒΡ‚ Π΄ΠΎ часа, Π½ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Π°ΠΌ Π½Π΅ придСтся Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚Π΅ React ΠΈ JavaScript ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

    Π’ этом руководствС ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½ΠΎΠ²Ρ‹ΠΉ синтаксис JavaScript Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…. Если Π²Ρ‹ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с JavaScript Π² послСдниС нСсколько Π»Π΅Ρ‚, эти Ρ‚Ρ€ΠΈ ΠΏΡƒΠ½ΠΊΡ‚Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Π² этом.

    ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΠΌ!

    ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Π²Π½ΠΈΠ·, ΠΈ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ссылку Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π³Π»Π°Π²Ρƒ этого руководства прямо ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΆΠ½ΠΈΠΌ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ»ΠΎΠΌ Π²Π΅Π±-сайта.

    Fullstack React: Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React?

    БСгодня ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ с самого Π½Π°Ρ‡Π°Π»Π°. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. ΠœΡ‹ обсудим, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

    Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… 30 Π΄Π½Π΅ΠΉ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ прСдставлСниС ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… частях Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° React ΠΈ Π΅Π³ΠΎ экосистСмС.

    ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь нашСго 30-Π΄Π½Π΅Π²Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°Ρ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ дня, поэтому ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ сСрии Π²Ρ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π½Π°Ρ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹, ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΈ основы Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, Π½ΠΎ ΠΈ смоТСтС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ React Π² вашС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

    ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΠΌ. ΠœΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ с самого Π½Π°Ρ‡Π°Π»Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ мСсто для Π½Π°Ρ‡Π°Π»Π°.

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React?

    React - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JavaScript для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов. Π­Ρ‚ΠΎ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ прСдставлСния для Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

    Π’ основС всСх ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ React Π»Π΅ΠΆΠΈΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² . ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ - это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ элСмСнты интСрфСйса, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ React. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ составныС .ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² свой Π²Ρ‹Π²ΠΎΠ΄ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

    Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, для написания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ React ΠΌΡ‹ пишСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ React, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ элСмСнтам интСрфСйса. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ эти ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π±ΠΎΠ»Π΅Π΅ высокого уровня, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ структуру нашСго прилоТСния.

    НапримСр, Π²ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΡƒ. Π€ΠΎΡ€ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· мноТСства элСмСнтов интСрфСйса, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ поля Π²Π²ΠΎΠ΄Π°, ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ React.Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ напишСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π±ΠΎΠ»Π΅Π΅ высокого уровня, сам ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Ρ„ΠΎΡ€ΠΌΡ‹. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Ρ„ΠΎΡ€ΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ структуру Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² Π½Π΅Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих элСмСнтов интСрфСйса.

    Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ React ΡΠΎΠ±Π»ΡŽΠ΄Π°Π΅Ρ‚ строгиС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π‘Π»ΠΎΠΆΠ½Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы часто Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ слоТныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ состояниС прилоТСния. ΠŸΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ React ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° ​​на Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ Π½Π°ΠΌ инструмСнты, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΡƒΠ³Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π½Π°Π±ΠΎΡ€Π΅ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π².ΠœΡ‹ углубимся Π² эти ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΏΠΎΠ·ΠΆΠ΅ Π² этом курсС.

    Π₯ΠΎΡ€ΠΎΡˆΠΎ, Π° ΠΊΠ°ΠΊ Π½Π°ΠΌ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

    React - это Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ JavaScript. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Ρ‚Π°ΠΊ ΠΆΠ΅ просто, ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» JavaScript Π² наш HTML ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ экспорт React Π² JavaScript нашСго прилоТСния.

    НапримСр, Hello world ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Π΅Π±-сайта React ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ простым, ΠΊΠ°ΠΊ:

      
    
      
       ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€ 
      
      
      
      
    
    
      

    Π₯отя это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡƒΠ³Π°ΡŽΡ‰ΠΈΠΌ, ΠΊΠΎΠ΄ JavaScript прСдставляСт собой Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ строку, которая динамичСски добавляСт Π½Π° страницу Hello world .ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² JavaScript, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ.

    Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

    Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… своих ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠΎΠ², React Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ нСпосрСдствСнно с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ модСлью Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (DOM) Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Π° с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ DOM . Π’ΠΎ Π΅ΡΡ‚ΡŒ, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ послС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π½Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… (Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ довольно ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ), ΠΎΠ½ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ измСнСния Π² DOM, созданном ΠΈ выполняСмом ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π² памяти. ПослС обновлСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ DOM React ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ опрСдСляСт, ΠΊΠ°ΠΊΠΈΠ΅ измСнСния внСсти Π² DOM Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

    React Virtual DOM сущСствуСт ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π² памяти ΠΈ являСтся прСдставлСниСм DOM Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Из-Π·Π° этого, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ пишСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ React, ΠΌΡ‹ Π½Π΅ пишСм Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² DOM, Π° пишСм Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ React ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ Π² DOM.

    Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим, Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ для нас, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ создадим наши ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ React, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ JSX ΠΈ напишСм наши ΠΏΠ΅Ρ€Π²Ρ‹Π΅ настоящиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

    Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

    React - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JavaScript для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов.

    Π­Ρ‚ΠΎ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ React. Но Ρ‡Ρ‚ΠΎ, Ссли Π²Ρ‹ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с JavaScript? Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π²Ρ‹ Π½Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ? Π‘ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ (ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ) React?

    Мой ΠΎΡ‚Π²Π΅Ρ‚ Ρ‚Π²Π΅Ρ€Π΄ΠΎΠ΅ ДА. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ я написал эту ΡΡ‚Π°Ρ‚ΡŒΡŽ: Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React? Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React.js (ΠΈΠ»ΠΈ ReactJS)? Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ React? ΠŸΠΎΡ‡Π΅ΠΌΡƒ React Ρ‚Π°ΠΊ популярСн? КакиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ€Π΅ΡˆΠ°Π΅Ρ‚?

    Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ прСдставляСт собой Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² React для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ пост, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ особСнности React.Π― объясню основныС ΠΈΠ΄Π΅ΠΈ React простым английским языком (ΠΈ Π΄ΡƒΠ΄Π»Π°ΠΌΠΈ 🌴). НСт ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JavaScript? Π‘Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ! Если Ρƒ вас Π΅ΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ знания HTML (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ HTML-Ρ‚Π΅Π³Π°), Π²Ρ‹ смоТСтС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ ΠΎΡ‚ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ.

    Π­Ρ‚ΠΎ Π²ΠΈΠ΄ с высоты ΠΏΡ‚ΠΈΡ‡ΡŒΠ΅Π³ΠΎ ΠΏΠΎΠ»Π΅Ρ‚Π°, Π½ΠΎ я Ρ‚Π°ΠΊΠΆΠ΅ снабТу вас Π±ΠΈΠ½ΠΎΠΊΠ»Π΅ΠΌ. Π’Ρ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ React особСнным, Π½ΠΎ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ практичСский ΠΎΠΏΡ‹Ρ‚ написания Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° React.И Π΄Π°, Π·Π½Π°Π½ΠΈΠ΅ JS Π½Π΅ трСбуСтся!

    ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅: Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ основныС ΠΈΠ΄Π΅ΠΈ React!

    Π“ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ Π² ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅?

    ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ для использования React. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ я создаю курс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Π² этом.

    Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ смоТСтС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с React послС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Π½Π΅ΠΉ обучСния, , Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ . Если Π²Π°ΠΌ интСрСсно, Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ, ΠΈ я Π΄Π°ΠΌ Π²Π°ΠΌ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° курс Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²!

    Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·, - DOM.

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ DOM?

    Когда Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ адрСс своСго любимого Π²Π΅Π±-сайта Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, ваш ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ сСрвСром . ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ваш ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΈ сСрвСр ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚:

    Π’Π°Ρˆ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€: Π­ΠΉ, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ Π² этом случайном сайтС learnreact.design?

    Π‘Π΅Ρ€Π²Π΅Ρ€: ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΌΠ½Π΅ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ для вас Π·Π°Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ. Π‘ΠΈΠΏ.Π‘ΡƒΠΏ.

    Основная Ρ‡Π°ΡΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Π° сСрвСра ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… элСмСнтов: HTML, CSS ΠΈ JavaScript.

    HTML пСрСчисляСт содСрТимоС Π²Π΅Π±-страницы ΠΈ описываСт Π΅Π΅ структуру. Бколько Ρ‚Π°ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈ Π°Π±Π·Π°Ρ†Π΅Π²? КакиС изобраТСния Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ? БодСрТатся Π»ΠΈ эта ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈ тСкстовоС ΠΏΠΎΠ»Π΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΏΠΎΠ»Π΅?

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ создаСт Π½Π΅Ρ‡Ρ‚ΠΎ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ ... DOM!

    ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ сСкунду, DOM - это ... Π΄Π΅Ρ€Π΅Π²ΠΎ? Ага, Π΄Π΅Ρ€Π΅Π²ΠΎ! Как Π½ΠΈ странно, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π΅Ρ‰ΠΈ Π² нашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ выглядят ΠΊΠ°ΠΊ Π΄Π΅Ρ€Π΅Π²ΠΎ.Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄Π°Π΄ΠΈΠΌ Π½Π°ΡˆΠ΅ΠΌΡƒ дрСвСсному Π΄Ρ€ΡƒΠ³Ρƒ ΠΏΡ€ΠΎΠ·Π²ΠΈΡ‰Π΅ ... Ρ…ΠΌ, Π° ΠΊΠ°ΠΊ насчСт Π”ΠΎΠΌΠΎ?

    Π”ΠΎΠΌΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ модСлью Π² прСстиТной Π°Ρ€Ρ‚-студии Β«Π’Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Β». Π•Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° - ΠΏΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΈΡˆΠ΅Ρ‚ ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚ (ΠΈΠ»ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚ΠΎΠ²).

    Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ DOM ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΡƒΡŽ модСль Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Π­Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ модСль - модСль Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (Ρ‚Π°ΠΊΠΆΠ΅ извСстная ΠΊΠ°ΠΊ Π²Π΅Π±-страница). Он ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ·Ρƒ. Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ рисуСт ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚. ΠŸΠΎΡ€Ρ‚Ρ€Π΅Ρ‚Ρ‹ - это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π½Π° Π²Π΅Π±-страницС: тСкстовыС поля, Π°Π±Π·Π°Ρ†Ρ‹, изобраТСния ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.Π Π°Π±ΠΎΡ‚Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π”ΠΎΠΌΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°Π΄Π΅Ρ‚ΡŒ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ·Π΅ ΡƒΠ΄Π°Ρ€ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎ опрСдСляСт, ΠΊΠ°ΠΊ Π² ΠΈΡ‚ΠΎΠ³Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ эти ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚Ρ‹.

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ выглядит DOM, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° этой самой страницС ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΒ». ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ находится Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹Β»?

    DOM API

    ΠœΡ‹ часто Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Π±-страница Π±Ρ‹Π»Π° динамичСской ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ - это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅Π΅ содСрТимоС врСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ измСняСтся: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ тСкста здСсь ΠΈ Ρ‚Π°ΠΌ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ модального ΠΎΠΊΠ½Π° ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° основС ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ с сСрвСра.

    ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ содСрТимоС Π²Π΅Π±-страницы, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ DOM. Π₯ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚Ρ‹, ΠΏΠΎΠΊΠ° Π”ΠΎΠΌΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ Π² Π½ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ·Ρƒ.

    Как Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π”ΠΎΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Π½ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ·Ρƒ?

    ΠœΡ‹ просто ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ с Π½ΠΈΠΌ. Он ΡΠ»ΡƒΡˆΠ°Π΅Ρ‚. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ ΡƒΡˆΠ΅ΠΉ Π”ΠΎΠΌΠΎ Π΅ΡΡ‚ΡŒ имя: DOM API .

    Для управлСния DOM Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° JavaScript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ взаимодСйствуСт с DOM API ΠΈ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, обновляСт содСрТимоС Π²Π΅Π±-страницы.

    Π’ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ

    НСпосрСдствСнный Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ с Domo ΡƒΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚ являСтся стандартным ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, особСнно ΠΊΠΎΠ³Π΄Π° Π²Π΅Π±-ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π±Ρ‹Π» Π² основном статичным. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠ³ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ интСрактивности ΠΏΠΎΠ²Π΅Ρ€Ρ… статичСских страниц, написав нСбольшой объСм ΠΊΠΎΠ΄Π° JavaScript.

    Однако с появлСниСм одностраничных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (одностраничных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ), Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Gmail ΠΈ Google Maps, люди Π½Π°Ρ‡Π°Π»ΠΈ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большСго. ВмСсто Π² основном статичСских Π²Π΅Π±-страниц ΠΈΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅, быстрыС ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹Π΅ Π²Π΅Π±-прилоТСния .

    Код, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для создания Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, становится всС Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΌΠ½Ρ‹ΠΌ ΠΈ слоТным. Часто это Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ сотрудничСства ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

    Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ пСрСстал Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½Ρ‹ΠΉ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ с Π”ΠΎΠΌΠΎ становится Ρ…Π°ΠΎΡ‚ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈ нСэффСктивным.

    ΠŸΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Π°ΠΌ супСргСроя, React:

    Π‘ React Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ большС Π½Π΅ ΠΎΠ±Ρ‰Π°ΡŽΡ‚ΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с Π”ΠΎΠΌΠΎ. React дСйствуСт ΠΊΠ°ΠΊ Π°Π³Π΅Π½Ρ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ ΠΈ Domo. Он сглаТиваСт ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ процСсс создания ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚Π°.

    React Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ReactJS ΠΈΠ»ΠΈ React.js, Π½ΠΎ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ - React.

    React состоит ΠΈΠ· ΠΊΠΎΠ΄Π° JavaScript. Он построСн Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с DOM API Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв. ВмСсто этого ΠΌΡ‹ пишСм Π±ΠΎΠ»Π΅Π΅ простой ΠΊΠΎΠ΄, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ React ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ с DOM ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ.

    React ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ нСсколькими свСрхспособностями для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ постоянно растущСй слоТности Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ:

    • ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹
    • Π”Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс
    • Π Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ обновлСния DOM

    Если эти Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ Π·Π²ΡƒΡ‡Π°Ρ‚ для вас ΠΏΡƒΠ³Π°ΡŽΡ‰Π΅, Π½Π΅ ΠΏΡƒΠ³Π°ΠΉΡ‚Π΅ΡΡŒ! Как ΠΈ ΠΎΠ±Π΅Ρ‰Π°Π», я Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ простой английский ΠΈ ΠΊΠ°Ρ€Π°ΠΊΡƒΠ»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Π½ΠΈΡ….ΠŸΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, это Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΈ слоТно!

    ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ!

    ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

    ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ - это флагманская функция React. Основная идСя основана Π½Π° простой стратСгии: раздСляй ΠΈ властвуй. Если слоТно Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ сразу, ΠΌΡ‹ Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅ΠΌ Π΅Π΅ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ€Π΅ΡˆΠ°Π΅ΠΌ ΠΈΡ… ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ, Π° Π·Π°Ρ‚Π΅ΠΌ объСдиняСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

    Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ прилоТСния Π² React - это ΠΏΠΎΡ‡Ρ‚ΠΈ всС ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ: Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ прилоТСния Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, поиск Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΏΠΎΠ΄Π³ΠΎΠ½ΠΊΠ° Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ, созданиС Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΈ Ρ‚. Π”.

    Π’ настоящСС врСмя инструмСнты Π΄ΠΈΠ·Π°ΠΉΠ½Π°, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Framer ΠΈ Figma, Ρ‚ΠΎΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (ΠΈ символы Π² Sketch). Они ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ React, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ послСдниС Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΈ ΠΌΠΎΡ‰Π½Ρ‹Π΅. ЀактичСски, источником вдохновСния для создания ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² инструмСнтах проСктирования стали ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ПослС создания ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нСсколько Π΅Π³ΠΎ экзСмпляров. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для создания Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Если ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, всС, Ρ‡Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ этот ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ автоматичСски.

    ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² React ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ двумя Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ свойствами:

    1. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½ΡƒΠ΅ΠΌΡ‹ . Они созданы для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ.
    2. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ нСзависимы Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° . Если ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΊΠΎΠ΄ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ части Π½Π΅ ΡΠ»ΠΎΠΌΠ°ΡŽΡ‚ΡΡ.

    Если это Π·Π²ΡƒΡ‡ΠΈΡ‚ для вас абстрактно, Π½Π΅ Π²ΠΎΠ»Π½ΡƒΠΉΡ‚Π΅ΡΡŒ! ВскорС я ΠΏΠΎΠΊΠ°ΠΆΡƒ Π²Π°ΠΌ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ объясню эти свойства.

    Π”Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ UI

    Π˜ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ vs.Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ

    ΠŸΡ€ΠΈ нСпосрСдствСнной Ρ€Π°Π±ΠΎΡ‚Π΅ с DOM API Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ элСмСнт Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² Π½ΡƒΠΆΠ½ΠΎΠ΅ врСмя ΠΈ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ порядкС. Π­Ρ‚ΠΎ эквивалСнтно описанию Π”ΠΎΠΌΠΎ, ΠΊΠ°ΠΊ шаг Π·Π° шагом ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π³ΠΎΠ»ΠΎΠ²Ρƒ, Ρ€ΡƒΠΊΠΈ ΠΈ Π½ΠΎΠ³ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚Π°.

    Π§Π΅Ρ€Ρ‚ возьми, это Π·Π²ΡƒΡ‡ΠΈΡ‚ ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ Ρ‡Ρ€Π΅Π²Π°Ρ‚ΠΎ ошибками! ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ просто ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π”ΠΎΠΌΠΎ , ΠΊΠ°ΠΊΠΎΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ вмСсто , ΠΊΠ°ΠΊ ΠΏΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ? ЀактичСски, ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Π² React. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ рисуСт ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ набросок Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ.React ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ Π”ΠΎΠΌΠΎ, ΠΊΠ°ΠΊ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

    ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ создаСм, ΡΠ²Π»ΡΡŽΡ‚ΡΡ динамичСскими, ΠΌΡ‹ часто Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π”ΠΎΠΌΠΎ довольно быстро мСнял ΠΏΠΎΠ·Ρ‹. ΠœΡ‹ рисуСм ΠΌΠ½ΠΎΠ³ΠΎ эскизов ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΈΡ… Π² React большой стопкой. React складываСт эти скСтчи вмСстС ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΈΡ…, ΠΊΠ°ΠΊ Ρ„Π»ΠΈΠΏΠ±ΡƒΠΊ. ΠŸΠΎΡΠ²Π»ΡΠ΅Ρ‚ΡΡ динамичСский интСрфСйс!

    Π‘ тСхничСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния, Ссли ΠΊΠΎΠ΄ опрСдСляСт, ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Π±Ρ‹Π»ΠΎ сдСлано, это ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ² ; Ссли ΠΎΠ½ опрСдСляСт , Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, это Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ . Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ способ прямой Ρ€Π°Π±ΠΎΡ‚Ρ‹ с DOM API являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Π° способ React - Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ.

    Π˜ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ Π² Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π°, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ. Π›ΡŽΠ΄ΡΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…: Π³Π΄Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ числа, ΠΊΠ°ΠΊ ΡƒΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒ ΠΈ Ρ‚. Π”. Но со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ это стало нСуправляСмым, люди написали ΡƒΠΌΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ инструкции. Π’Π°ΠΊ Ρ€ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

    Virtual DOM

    Помимо упрощСния ΠΆΠΈΠ·Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² React Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ возмоТности для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

    Когда Ρƒ React Π΅ΡΡ‚ΡŒ всС скСтчи Π·Π°Ρ€Π°Π½Π΅Π΅, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ дублирования ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π”ΠΎΠΌΠΎ ΠΈ Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ мСньшС Ρ€Π°Π±ΠΎΡ‚Ρ‹.

    Π­Ρ‚ΠΈ эскизы Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Virtual DOM . Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ DOM Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Π΅ΠΌ DOM. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Virtual DOM вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ DOM. React Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя Π³Ρ€ΡΠ·Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ DOM.

    Π Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ обновлСния DOM

    Π•Ρ‰Π΅ ΠΊΡ€ΡƒΡ‡Π΅, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ссли Π±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π½Π°ΡˆΠΈΡ… эскизах Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΠΈ для прСдставлСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΠΎΠ·Ρ‹.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ просит ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚Ρ‹ Π”ΠΎΠΌΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ шляпС, Π½Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°Ρ‚ΡŒ с React. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ просто Ρ€Π°ΡΡΠ»Π°Π±ΠΈΡ‚ΡŒΡΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ React ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это Π·Π° нас.

    Шляпа - это Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ динамичСскоС содСрТимоС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Нам просто Π½ΡƒΠΆΠ½ΠΎ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ элСмСнты ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… React автоматичСски обновляСт для нас связанныС элСмСнты DOM. ΠŸΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ модСль DOM Β«Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚Β» Π½Π° Π»ΡŽΠ±Ρ‹Π΅ измСнСния Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. НСт нСобходимости ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅.НС Π½ΡƒΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ DOM. Он просто обновляСтся автоматичСски (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ React).

    Благодаря этому Ρ‚Ρ€ΡŽΠΊΡƒ React ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» своС Π½Π°Π·Π²Π°Π½ΠΈΠ΅. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, созданный с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ React, - , Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ . ИдСя Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ Π΄ΠΎ сих ΠΏΠΎΡ€, ΠΈ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ нСсколько Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² React. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Π°ΠΌ Π±Ρ‹Π»ΠΎ Π»Π΅Π³Ρ‡Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, я упустил Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Π² ΠΊΠΎΠ΄Π΅ (Π² частности, JavaScript). ЦСль состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ основным идСям, Π½Π΅ увязнув Π² синтаксисС JS.Если Π²Π°ΠΌ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ JavaScript, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ настоящий исходный ΠΊΠΎΠ΄.

    Π₯ΠΎΡ€ΠΎΡˆΠΎ. Допустим, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π”ΠΎΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½ шляп 🧒.

    ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Ρ‚ΡŒ

    ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° нСсколько частСй:

    • Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ: Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ»
    • ОсновноС: основная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ содСрТимого
    • НиТний ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ»: Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ» снизу

    Π­Ρ‚ΠΎ Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записанным Π² ΠΊΠΎΠ΄Π΅ Ρ‚Π°ΠΊ:

     
    
    <Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ /> <Главная /> <НиТний ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ» />

    Π­Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° HTML, Π²Π΅Ρ€Π½ΠΎ? Π—Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Π΅Π³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Π·Π°Π³Π»Π°Π²Π½Ρ‹Ρ… Π±ΡƒΠΊΠ²:

    , ΠΈ
    .Π­Ρ‚ΠΎ Π½Π΅ стандартныС Ρ‚Π΅Π³ΠΈ HTML. Π­Ρ‚ΠΎ настраиваСмыС Ρ‚Π΅Π³ΠΈ.

    Π§Ρ‚ΠΎ это Π·Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚Π΅Π³ΠΈ Π½Π° самом Π΄Π΅Π»Π΅? Как ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ React, Ρ‡Ρ‚ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ состоит ΠΈΠ· Ρ‚Π΅Π³Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, Π³Ρ€ΡƒΠΏΠΏΡ‹ элСмСнтов списка ΠΈ строки поиска?

    ПишСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Header!

     
    <Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ>
      
    

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² этом ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠ½ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄Π²Π° настраиваСмых Ρ‚Π΅Π³Π°: ΠΈ .Π§Ρ‚ΠΎ Ρ‚Π°ΠΌ?

    ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ свойство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² React? Π˜Ρ… составныС . Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для создания Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² - ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ сдСлали.

    А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΡ‚ Π²Π°ΠΌ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ (ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ эту страницу Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΎΠΏΡ‹Ρ‚):

    ✍️ Допустим, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ SearchBar Π² Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ». Π§Ρ‚ΠΎΠ±Ρ‹ Ρ‚Ρ‹ Π΄Π΅Π»Π°Π»? Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅:

    Подсказки:

    • ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ помСститС Ρ‚Π΅Π³ΠΈ Π²Π½ΡƒΡ‚Ρ€ΡŒ
    • ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚Π΅ Π²Π²Π΅Ρ€Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
    • ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Π΅Π³ΠΈ

    Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π΄Π²Π° поиска Π±Π°Ρ€Ρ‹? Π’Ρ‹ поняли!

    ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ созданы для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования

    «Боставной» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² качСствС Π΅Π³ΠΎ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ².Π­Ρ‚ΠΎ Π·Π²ΡƒΡ‡ΠΈΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π°, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ различия: Π² React, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅, ΠΎΠ½ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ «прикрСпляСтся» ΠΊ исходному ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ. Когда ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π» измСняСтся, всС экзСмпляры ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ вмСстС с Π½ΠΈΠΌ.

    ✍️ Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ тСкст Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π² ΠΊΠΎΠ΄Π΅ SearchBar Π½ΠΈΠΆΠ΅:



    Π§Ρ‚ΠΎ Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ? SearchBar ΠΊΠ°ΠΊ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ, Ρ‚Π°ΠΊ ΠΈ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ»Π΅ обновляСтся.Π’Π΅Ρ€Π½ΠΎ? Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² инструмСнтах Π΄ΠΈΠ·Π°ΠΉΠ½Π°, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Framer ΠΈ Figma.

    ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ React ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования . Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² качСствС настраиваСмого Ρ‚Π΅Π³Π° Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·, сколько Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ. Если ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π΅Π³ΠΎ, измСнятся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

    ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ нСзависимы

    ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅? ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ React Ρ‚Π°ΠΊΠΆΠ΅ нСзависимых . Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π΅Π³ΠΎ) ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‚ вСсти сСбя Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅.

    Когда ΠΌΡ‹ мСняСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ SearchBar Π²Ρ‹ΡˆΠ΅, ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΈ Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ»Ρ‹. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‡Π΅Π½ΡŒ простым (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, слишком ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ). Но это Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ идСя Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΈ ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ большоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для обСспСчСния управляСмости Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

    ДСкларативная ΠΈ рСактивная

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Π΄Π²ΡƒΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ супСрспособностям React: Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌΡƒ UI ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ обновлСниям DOM .

    А ΡˆΠ°ΠΏΠΊΡƒ для Π”ΠΎΠΌΠΎ ΡƒΠΆΠ΅ Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΈ? Если Π½Π΅Ρ‚, просто Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ· шляп Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅.Шляпа Π½Π° Π³ΠΎΠ»ΠΎΠ²Π΅ Π”ΠΎΠΌΠΎ помСняСтся, Π΄Π°?

    Π’ этом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ интСрфСйсС Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΏΠΎ элСмСнту Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ обновляСт Π΄Π°Π½Π½Ρ‹Π΅ «выбранная шляпа». ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ связали DomoWithHat с Β«Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ шляпой», шляпа Π½Π° Domo автоматичСски измСнится. ΠŸΠΎΠΌΠ½ΠΈΡ‚ΡŒ? Π Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ обновлСния DOM .

    Π’ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° DomoWithHat .

     
    
    <Π”ΠΎΠΌΠΎ />

    Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π΅ Π½Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ (Π”ΠΎΠΌΠΎ ΠΈ шляпа Π² div), ΠΈ Β«ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΒ» Π΄Π°Π½Π½Ρ‹Π΅ (Β« type = {hat} Β»).Когда элСмСнт Π΄Π°Π½Π½Ρ‹Ρ… шляпа измСняСтся (ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΡˆΠ»ΡΠΏΡƒ), ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс обновляСтся автоматичСски. Нам Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ DOM. Нам Π΄Π°ΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. Нам Π½ΡƒΠΆΠ½ΠΎ просто Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ быстрый набросок, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄. Π’ΠΎΡ‚ ΠΈ Π΄Π²Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ свСрхспособности React: Declarative UI , плюс Reactive DOM Updates .

    ΠšΠΎΠ»ΠΏΠ°Ρ‡ΠΎΠΊ

    $ 50

    ΠŸΠΎΠΊΡ€Ρ‹Π²Π°Π»ΠΎ для Π³ΠΎΠ»ΠΎΠ²Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, с Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΎΠΉ ΠΌΠ°ΠΊΡƒΡˆΠΊΠΎΠΉ ΠΈ полями.

    Π’ ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ

    ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ! Π’Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ React! Π Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ большой ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π΅: Π·Π°Ρ‡Π΅ΠΌ Π½Π°ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΡƒΠΆΠ΅Π½ React? Π’ΠΎΡ‚ Ρ‚Ρ€ΠΈ основных ΠΈΠ΄Π΅ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ React ΠΌΠΎΡ‰Π½Ρ‹ΠΌ: ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ обновлСния DOM.

    На самом Π΄Π΅Π»Π΅, я ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ React (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, я!) НС ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ эти ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ. Когда я писал ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ нСсколько Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, я сосрСдоточил Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‰Π°Ρ…. НадСюсь, эта вСрсия Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½Π°!

    Π’ΠΎΡ‚ список Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ², Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹Ρ… Π² сообщСнии:

    • DOM (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ модСль Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°)
    • DOM API
    • React ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹
    • ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΈ нСзависимыми
    • Π˜ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ vs.Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
    • Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ DOM
    • Π Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ обновлСния DOM

    НадСюсь, эта ΡΡ‚Π°Ρ‚ΡŒΡ окаТСтся для вас ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ!

    Одна ΠΈΠ· ΠΌΠΎΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ Π½Π° 2021 Π³ΠΎΠ΄ - Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ большС сообщСний, ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… , ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΈ Ρ€Π°Π·Π²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… . Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ просмотры Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ? Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ Π½ΠΈΠΆΠ΅. Никакого спама, ΠΎΡ‚ΠΊΠ°ΠΆΠΈΡ‚Π΅ΡΡŒ ΠΎΡ‚ подписки Π² любоС врСмя.

    Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΡ‚ΡŒΡΡ

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React Native? Как это связано с React? Π’Π΅Ρ€ΠΌΠΈΠ½Ρ‹ React ΠΎΠ±ΡŠΡΡΠ½Π΅Π½Ρ‹ простым английским языком ΠΈ рисунками.

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Redux: руководство Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π°

    ОбновлСно:

    design-react

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Redux? Π—Π°Ρ‡Π΅ΠΌ Π²Π°ΠΌ это Π½ΡƒΠΆΠ½ΠΎ (ΠΊΠ°ΠΊ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Ρƒ)? Π§Ρ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ Redux? Π― ΠΎΡ‚Π²Π΅Ρ‡Ρƒ Π½Π° эти вопросы простым английским языком ΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΊΠ°Ρ€Π°ΠΊΡƒΠ»Π΅ΠΉ ΠΈ ΠΏΠΎΠΌΠΎΠ³Ρƒ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ.

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React? - Twilio

    React (ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ReactJS) - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JavaScript для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов. Иногда Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ каркасом .

    Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° созданиС Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов с использованиСм ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Π½Π° основС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π₯отя React часто связан с интСрфСйсной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ JavaScript, Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° прСдставлСний Π½Π° сторонС сСрвСра Π² Node.js ΠΈΠ»ΠΈ для создания ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ React Native. Π₯отя React ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄, ΠΎΠ½ Π² основном разрабатываСтся Facebook.

    React Π±Ρ‹Π» создан Facebook, Π½ΠΎ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ мноТСством ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ. Π•Π³ΠΎ часто ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ с Ρ‚Π°ΠΊΠΈΠΌΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ Angular ΠΈΠ»ΠΈ Vue.js, Π½ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄.ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ своС ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎ построСнии ΠΈ структурС Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ½ оставляСт ΠΈΡ… Π½Π° усмотрСниС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈ сообщСства. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ мноТСству Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ / Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² ΡΡ‚Π°Ρ‚ΡŒΡΡ… ΠΈ ΠΊΠ½ΠΈΠ³Π°Ρ….

    Одна Π²Π΅Ρ‰ΡŒ , ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ придСрТиваСтся React, - это Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ваши прСдставлСния. React Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с систСмой ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ Β«ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π½ΠΈΠ·, события Π²Π²Π΅Ρ€Ρ…Β» с ΡƒΠΏΠΎΡ€ΠΎΠΌ Π½Π° созданиС ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большСго количСства ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

    ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…

    React основан Π½Π° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ React Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ впослСдствии ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΎΠ±Ρ‰Π΅Π΅ Β«Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²Β» . ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ свой Π²Ρ‹Π²ΠΎΠ΄ Π½Π° основС Π΄Π²ΡƒΡ… Π²Π΅Ρ‰Π΅ΠΉ:

    1. Props - значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΠ·Π²Π½Π΅
    2. БостояниС - Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ привязано ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ экзСмпляру ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ состояниС Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· props
    3. .

    Если любоС ΠΈΠ· Π΄Π²ΡƒΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ измСнится, React запустит эффСктивный ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

    ЕдинствСнный способ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ измСнСния состояния Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ события.

    Как выглядит ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚?

    ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

     function Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ (Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚) {
      return 

    ΠŸΡ€ΠΈΠ²Π΅Ρ‚, {props.name}

    ; }

    Π•Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ класс JavaScript:

     class Welcome Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ React.ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ {
      ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ() {
        return 

    ΠŸΡ€ΠΈΠ²Π΅Ρ‚, {this.props.name}

    ; } }

    Redux

    Π’Π΅Ρ€ΠΌΠΈΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ часто упоминаСтся Π² сочСтании с React, - это Redux. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ часто ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ΡΡ вмСстС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой ΠΈΠ· Π½ΠΈΡ… Π±Π΅Π· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. ЦСль Redux - ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ структурированный способ управлСния Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ состояниСм вашСго прилоТСния.

    Π•Π³ΠΎ способ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с состояниСм прилоТСния основан Π½Π° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Flux. ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ основана Π½Π° Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌ состоянии, доступном Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… «дСйствий», ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

    Redux Π½Π΅ привязан ΠΊ React ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ прилоТСниями. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ концСпциях Redux Π² ΠΈΡ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

    БущСствуСт мноТСство способов Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с React. ДокумСнтация React - ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ рСсурс, Π½ΠΎ ΠΌΡ‹ ΠΏΠΎΠΌΠΎΠΆΠ΅ΠΌ Π²Π°ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ здСсь.

    Если Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Node.js ΠΈ npm 5.2+, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² своСм Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ React:

    Π’Ρ‹ просматриваСтС ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ этого SDK.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚Π²Π΅Ρ‚Π° JSON API

    Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΡƒ, Ρ‚Π°ΠΊΡƒΡŽ ​​как CodeSandbox.io, прямо Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

    Twilio Flex построСн с использованиСм ΠΊΠ°ΠΊ React, Ρ‚Π°ΠΊ ΠΈ Redux. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎ-ориСнтированная модСль позволяСт Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для Flex, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Flex с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Redux ΠΏΡƒΡ‚Π΅ΠΌ создания ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Twilio Flex с использованиСм create-flex-plugin .

    Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ React, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΈΠ· этих рСсурсов:

    ReactJS ΠΈ React Native: ΠΎΠ±Π·ΠΎΡ€, ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы

    ВрСмя чтСния: 15 ΠΌΠΈΠ½ΡƒΡ‚

    ReactJS ΠΈ React Native - это Π½ΠΎΠ²Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ для Π²Π΅Π±- ΠΈ мобильной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, прСдставлСнныС Facebook.ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π”ΠΆΠΎΡ€Π΄Π°Π½ΠΎΠΌ Π£ΠΎΠ»ΠΊΠΎΠΌ, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠΌ-программистом Facebook, Π² 2011 Π³ΠΎΠ΄Ρƒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΎΠ½ Ρ€Π΅ΡˆΠΈΠ» ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π±Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Π±-интСрфСйс с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript.

    Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ расскаТСм, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹Π» создан React, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎ прСимущСствах ΠΈ нСдостатках использования Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ React.

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React?

    ReactJS - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JavaScript, которая сочСтаСт Π² сСбС ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ JavaScript ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ способ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π²Π΅Π±-страниц, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΈ быстро Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π½Π° Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚ сущСствСнно ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Facebook ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π°, ΠΎΠ½Π° стала Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ популярной благодаря своСму Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½ΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов, ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ²ΡˆΠ΅ΠΌΡƒ давнюю ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ React ΠΈ Angular, Π΄Ρ€ΡƒΠ³ΠΈΠΌ популярным инструмСнтом Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

    Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ сразу ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ React, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ссылки:

    Как Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с React

    Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΈ ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ React с вСрсиСй

    ΠŸΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ React Π½Π° Github, Ρ‡Ρ‚ΠΎΠ±Ρ‹ внСсти свой Π²ΠΊΠ»Π°Π΄ Π² Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΠ»ΠΈ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒΡΡ Π² тСхничСскиС Π΄Π΅Ρ‚Π°Π»ΠΈ

    ΠŸΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅ сообщСство Stack Overflow React, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° самыС популярныС ΠΈΠ»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ вопросы

    ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ практичСскиС руководства ΠΏΠΎ React

    Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ прилоТСния React

    ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π½Π° CodePen, CodeSandbox, Glitch ΠΈΠ»ΠΈ Stackblitz для ΠΎΠ½Π»Π°ΠΉΠ½-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠ΄Π°.

    ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с послСдними выпусками React

    ВзглянитС Π½Π° React Hooks, инструмСнт управлСния состояниСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

    ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ история Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

    ΠŸΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ReactJS, ΠΈΠ»ΠΈ просто React, ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π² настоящСС врСмя Π² основном Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΏΠ΅Ρ€Π΅Π΄ Facebook стояла основная Π·Π°Π΄Π°Ρ‡Π° взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ - созданиС динамичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса с высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. НапримСр, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ обновлСния Π»Π΅Π½Ρ‚Ρ‹ новостСй происходили ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с людьми, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ‡Π°Ρ‚.

    Для этого Facebook ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сам процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΈ Π”ΠΆΠΎΡ€Π΄Π°Π½ Π£ΠΎΠ»ΠΊ Ρ€Π΅ΡˆΠΈΠ» ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript.Он ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ XHP, синтаксис Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Facebook, Π² систСму ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ JS. ИдСя казалась Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ, Π½ΠΎ Π² 2011 Π³ΠΎΠ΄Ρƒ Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° выпустила Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ReactJS Π½Π° основС симбиоза JavaScript ΠΈ XHP. Π—Π°Ρ‚Π΅ΠΌ Facebook понял, Ρ‡Ρ‚ΠΎ ReactJS Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС, Ρ‡Π΅ΠΌ любая другая подобная рСализация. Π’ 2013 Π³ΠΎΠ΄Ρƒ Facebook выпустил React ΠΊΠ°ΠΊ инструмСнт JavaScript с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ.

    Π”Π²Π° Π³ΠΎΠ΄Π° спустя Ρ‚Π° ΠΆΠ΅ Π³Ρ€ΡƒΠΏΠΏΠ° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² выпустила React Native, Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½ΡƒΡŽ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для iOS ΠΈ Android.Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ Π±Ρ‹Π» основан Π½Π° Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ…, Ρ‡Ρ‚ΠΎ ΠΈ ReactJS, ΠΈ вскорС Π±Ρ‹Π» принят сообщСством ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² ΠΈ компаниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ стратСгии «сначала ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅Β».

    Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ React Native? React Native сочСтаСт Π² сСбС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ собствСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Π½Π° JavaScript. Π₯отя Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ тяТСлыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ собствСнных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ для iOS ΠΈ Android, ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ написана с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript ΠΈ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ кроссплатформСнных инструмСнтов PhoneGap ΠΈ Cordova, React Native Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ WebView, ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ΄.ВмСсто этого ΠΎΠ½ прСдоставляСт доступ ΠΊ Ρ€ΠΎΠ΄Π½Ρ‹ΠΌ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌ, Ρ‡Ρ‚ΠΎ позволяСт Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ внСшнСго Π²ΠΈΠ΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

    Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ рассмотрим ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы React ΠΊΠ°ΠΊ основного ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ исслСдуСм, Ρ‡Π΅ΠΌ React Native отличаСтся, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ прСимущСства ΠΈ нСдостатки ΠΎΠ½ унаслСдовал ΠΎΡ‚ ReactJS.

    ΠŸΠ»ΡŽΡΡ‹ ReactJS

    Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ модСль DOM Π² React ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ взаимодСйствиС с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈ ускоряСт Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°

    DOM (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ модСль Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°) - это логичСская структура Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… HTML, XHTML ΠΈΠ»ΠΈ XML.Если ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ это Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… нСпрофСссионала, это соглашСниС ΠΎ просмотрС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ. Π’Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ для прСобразования ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° синтаксиса прСдставлСния HTML Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΡƒΡŽ модСль Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ….

    Π”Π΅Ρ€Π΅Π²ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² HTML DOM
    Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: W3Schools

    Основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ конструкции DOM Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ измСнСния, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅, запросы ΠΈ Ρ‚. Π”. Π‘Π΅Ρ€Π²Π΅Ρ€ постоянно провСряСт Ρ€Π°Π·Π½ΠΈΡ†Ρƒ, Π²Ρ‹Π·Π²Π°Π½Π½ΡƒΡŽ этими измСнСниями, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚.Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΅ΠΌΡƒ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΡŒΡ DOM всСго Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся эргономичным, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π΅Ρ€Π΅Π²ΡŒΡ DOM сСгодня довольно большиС ΠΈ содСрТат тысячи элСмСнтов.

    КомандС React ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ DOM. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Real DOM, ReactJS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ свою Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ‚Π½ΡƒΡŽ копию - Virtual DOM. Он обновляСт Π΄Π°ΠΆΠ΅ минималистичныС измСнСния, внСсСнныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π½ΠΎ Π½Π΅ влияСт Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ части интСрфСйса. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ благодаря изоляции ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² React, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΈΠ½ΡƒΡ‚Ρƒ, ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ структурС Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅.

    Π Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ DOM

    Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ обновлСния Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрыми, Ρ‡Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ высокодинамичный ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΈΡˆΠ΅Ρ‚ Π² Ρ‡Π°Ρ‚Π΅ Facebook ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²ΠΈΠ΄ΠΈΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‰ΡƒΡŽΡΡ Π»Π΅Π½Ρ‚Ρƒ новостСй. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π² React Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ DOM ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²ΠΎ внСшнСм интСрфСйсС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ элСмСнты React ΡƒΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊ Π½Π΅ΠΌΡƒ.

    ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ быстрСС Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с UI-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ€ΡΡ‡ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ (ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ).Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ повысило ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ ΠΈ ускорило ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

    Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² React Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ экономит врСмя

    Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ прСимущСство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Facebook прСдставила с React, - это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ уровня Π² любоС врСмя, Ρ‡Ρ‚ΠΎ являСтся Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΌ эффСктом экономии Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

    ΠŸΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π°Ρ…. Они постоянно ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π°ΠΊΡ‚ΠΈΠ²Ρ‹. Если Π±Ρ‹ ΠΎΠ½ΠΈ этого Π½Π΅ сдСлали, ΠΈΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, снова ΠΈ снова. Π­Ρ‚ΠΎ довольно ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ: ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС - это ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π΄ΠΈΠ·Π°ΠΉΠ½Π°.Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ этот процСсс Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС. ОбновлСниС систСмы часто прСвращаСтся Π² Π³ΠΎΠ»ΠΎΠ²Π½ΡƒΡŽ боль, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² систСмы.

    Π£ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ обновлСниями Π»Π΅Π³ΠΊΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ React ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ влияСт Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ сами ΠΏΠΎ сСбС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ, эргономичным ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с этим руководством АлСкса Григоряна ΠΈΠ· WalmartLabs ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ эффСктивного ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ReactJS.

    ΠžΠ΄Π½ΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π² ReactJS обСспСчиваСт ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄

    React позволяСт Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½ΠΈΡΡ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ привязку Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ измСнСния Π² Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… структурах Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΈΡ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ.

    Π‘Π°ΠΌΡ‹Π΅ слоТныС систСмы JS-прСдставлСния Π½Π° модСлях прСдставлСния ΠΈΠΌΠ΅ΡŽΡ‚ сущСствСнный, Π½ΠΎ понятный нСдостаток - структуру ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Π’ систСмС ΠΌΠΎΠ΄Π΅Π»ΠΈ прСдставлСния Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты ΠΌΠΎΠ³ΡƒΡ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ, Ссли ΠΎΠ½ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹. Facebook ΡƒΠ΄Π°Π»ΠΈΠ» эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² React, сдСлав Π΅Π³ΠΎ просто систСмой просмотра.

    ВмСсто использования явной привязки Π΄Π°Π½Π½Ρ‹Ρ… ReactJS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… - нисходящий. Π’ Ρ‚Π°ΠΊΠΎΠΉ структурС Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, всС, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ, - это ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ состояниС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ обновлСния. БоотвСтствСнно, Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

    Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Facebook с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ: постоянно развиваСтся ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° для сообщСства

    React Π±Ρ‹Π» ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… связанных с JavaScript ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Facebook с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ.Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ReactJS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ всС прСимущСства бСсплатного доступа - мноТСство ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ инструмСнты ΠΎΡ‚ сторонних Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ΠŸΠΈΡ‚ Π₯Π°Π½Ρ‚ ΠΈΠ· Facebook Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π΄Π²Π΅ основныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ - ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ отсСчСниС - Π±Ρ‹Π»ΠΈ созданы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° GitHub. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ReactJS Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 5-Π΅ мСсто Π² Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π΅ Trending Π½Π° GitHub с Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 152 000 Π·Π²Π΅Π·Π΄. И с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ 1400 участников с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ.

    Redux: ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ государствСнный ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€

    ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π³Π½Π΅Π²Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Redux Π½Π΅ зависит ΠΎΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ с Ρ€Π°Π΄ΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с Angular ΠΈΠ»ΠΈ Vue ΠΈ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ являСтся ΡΠΊΡΠΊΠ»ΡŽΠ·ΠΈΠ²Π½Ρ‹ΠΌ для React Π²ΠΎΠΎΠ±Ρ‰Π΅, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ это Π·Π½Π°Π΅ΠΌ.Однако здСсь стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Redux просто ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ этот инструмСнт считаСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ для изучСния инструмСнтом ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° React, примСняСмым Π² 50-60% ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ React. Π”Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Redux с Angular, Π½ΠΎ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ React Π·Π½Π°Π΅Ρ‚ Redux, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ Π·Π½Π°Π½ΠΈΠ΅ Angular. И Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ большС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ сообщСства для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΡ€ΠΈΠ²ΠΎΠΉ обучСния React-Redux. Π˜Ρ‚Π°ΠΊ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ это Ρ…ΠΎΡ€ΠΎΡˆΠΎ?

    Redux ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниями ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… прилоТСниях с мноТСством динамичСских элСмСнтов, Π³Π΄Π΅ это становится всС Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅.Redux Ρ…Ρ€Π°Π½ΠΈΡ‚ состояниС прилоТСния Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ ΠΈ позволяСт ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ прилоТСния, Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹. НапримСр, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ состояниС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ прСдставлСния Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅) ΠΈ стоят ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π² Π΄Π΅Ρ€Π΅Π²Π΅, Π±Π΅Π· Redux, Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· нСсколько ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² со всСми ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ связаны с Π­Ρ‚ΠΎ.

    Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ интСрфСйсы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Π±Π»ΠΈΠΆΠ°ΠΉΡˆΠ΅ΠΌΡƒ ΠΏΡ€Π΅Π΄ΠΊΡƒ этих Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ высоком ΡƒΡ€ΠΎΠ²Π½Π΅ Π² Π΄Π΅Ρ€Π΅Π²Π΅

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ ΠœΠ°Ρ€ΠΊΠ° Эриксона ΠΈ Π‘ΠΎΡ„ΠΈΠΈ Π¨ΡƒΠΌΠ΅ΠΉΠΊΠ΅Ρ€ Π½Π° fullstackreact.ΠΊΠΎΠΌ

    Redux прСдоставляСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ этим ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΌΡƒ.

    ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ состояния становятся Π±ΠΎΠ»Π΅Π΅ управляСмыми, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»Π΅Π³Ρ‡Π΅ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, инструмСнт позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π³ΠΎΡ€ΡΡ‡ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ Π²Ρ‹ΡˆΠ΅, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ дСйствия. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Redux Π² ΠΊΠ½ΠΈΠ³Π΅ «ПониманиС ReduxΒ» ΠžΡ…Π°Π½ΡΠ° Эммануэля.

    React Hooks: ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм

    Π”ΠΎ Π½Π°Ρ‡Π°Π»Π° фСвраля 2019 Π³ΠΎΠ΄Π° Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² React Π±Ρ‹Π»ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° способа ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ состояниС: ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ локальноС состояниС Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ управлСния состояниСм, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ MobX ΠΈΠ»ΠΈ Redux, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ глобальноС состояниС.

    React прСдставил свой Hooks API Π² вСрсии 16.8. Π‘Π°ΠΌΡ‹ΠΌ большим прСимущСством Hook являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ позволяСт Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ состояния ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Π±Π΅Π· измСнСния Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ всСго Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°. Наряду с этим, Ρ…ΡƒΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Π±Π΅Π· измСнСния Π΅Π΅ структуры. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° нСсколько Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° основС Ρ€ΠΎΠ»Π΅ΠΉ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ эти части относятся, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² соотвСтствии с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈΡ… ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. Π§Ρ‚ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Hooks избавляСт ΠΈΡ… ΠΎΡ‚ написания классов для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ изучСния Ρ‚Π΅ΠΎΡ€ΠΈΠΈ JavaScript, ΠΏΡ€ΠΈ этом позволяя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС возмоТности React.

    Набор инструмСнтов Wide React ΠΈ Redux

    И React, ΠΈ Redux ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ связанных инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ Тизнь Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. НапримСр, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ React Developer Tools для Chrome ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для Firefox ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ DOM ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ состояния ΠΈ свойства. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ React Sight, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π΅Ρ€Π΅Π²ΡŒΡ состояний ΠΈ ΠΎΠΏΠΎΡ€; ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ DevTools, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ с ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Reselect, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ сСлСкторов для Redux.Redux DevTools Profiler Monitor позволяСт ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ дСйствия в… Chrome DevTools. И Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ.

    ΠœΠΈΠ½ΡƒΡΡ‹ React

    Π’Π΅ΠΌΠΏΡ‹ развития

    Π­Ρ‚ΠΎΡ‚ нСдостаток Ρ‚ΠΎΡ‡Π½ΠΎ описан Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Майклом ДТСксоном ΠΈ Π Π°ΠΉΠ°Π½ΠΎΠΌ ЀлорСнс Π² Modern Web: «Если Π²Ρ‹ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΅Π΄Π΅ΠΌ здСсь Π½Π° машинС с двумя спущСнными шинами, ΠΊΠ°ΠΏΠΎΡ‚ просто Π²Π·Π»Π΅Ρ‚Π΅Π» ΠΏΠ΅Ρ€Π΅Π΄ Π»ΠΎΠ±ΠΎΠ²Ρ‹ΠΌ стСклом, ΠΈ ΠΌΡ‹ понятия Π½Π΅ имСю, Ρ‡Ρ‚ΠΎ большС происходит! Β» ΠžΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π°Ρ срСда постоянно мСняСтся, ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ рСгулярно ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ способы Ρ€Π°Π±ΠΎΡ‚Ρ‹.ВсС развиваСтся, ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΠ΄Ρ‚ΠΈ Π² Π½ΠΎΠ³Ρƒ с Ρ‚Π°ΠΊΠΈΠΌΠΈ Ρ‚Π΅ΠΌΠΏΠ°ΠΌΠΈ. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя слСдуСт ΠΏΡ€ΠΈΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ основной API React стал Π±ΠΎΠ»Π΅Π΅ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΈ Ρ€Π΅Π΄ΠΊΠΎ измСняСмым. ИзмСнСния Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π² основном ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ добавлСния Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ.

    ΠŸΠ»ΠΎΡ…Π°Ρ докумСнтация

    ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ восходит ΠΊ постоянным выпускам Π½ΠΎΠ²Ρ‹Ρ… инструмСнтов. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Redux ΠΈ Reflux, ΠΎΠ±Π΅Ρ‰Π°ΡŽΡ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ»ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ всю экосистСму React.Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ слоТно ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти инструмСнты с ReactJS. НСкоторыС Ρ‡Π»Π΅Π½Ρ‹ сообщСства ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ React ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈ ΡƒΡΠΊΠΎΡ€ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ быстро, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ инструкции. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΈΡˆΡƒΡ‚ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… инструмСнтов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈΠΌΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

    Β«HTML Π² ΠΌΠΎΠ΅ΠΌ JavaScript!Β» - JSX ΠΊΠ°ΠΊ Π±Π°Ρ€ΡŒΠ΅Ρ€

    ReactJS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ JSX. Π­Ρ‚ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ синтаксиса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ HTML ΠΈ JavaScript. Π£ JSX Π΅ΡΡ‚ΡŒ свои прСимущСства (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Ρ‰ΠΈΡ‚Π° ΠΊΠΎΠ΄Π° ΠΎΡ‚ ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ), Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‡Π»Π΅Π½Ρ‹ сообщСства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ JSX ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌ нСдостатком, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ выглядит ΠΊΠ°ΠΊ старый спагСтти-ΠΊΠΎΠ΄.Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Ρ‹ ΠΆΠ°Π»ΡƒΡŽΡ‚ΡΡ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ JSX ΠΈ, ΠΊΠ°ΠΊ слСдствиС, Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ обучСния.

    Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с поисковой ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ

    Π‘Ρ‹Π»ΠΈ опасСния, Ρ‡Ρ‚ΠΎ Google ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ поисковыС систСмы Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΡ…ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ динамичСскиС Π²Π΅Π±-страницы с Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ΠΎΠΌ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π­Ρ‚ΠΈ опасСния Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ подтвСрТдСния, ΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³ Π΅ΡΡ‚ΡŒ Ρ€Π°Π·ΠΎΠ±Π»Π°Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹. Π‘Π°ΠΌ Google Π΅Ρ‰Π΅ Π² 2014 Π³ΠΎΠ΄Ρƒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΠ», Ρ‡Ρ‚ΠΎ ΠΈΡ… сканСры способны Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ динамичСский ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚. Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Π½Π΅ собираСмся Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ReactJS Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ проиндСксировано Google.Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², наступил 2020 Π³ΠΎΠ΄.

    Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²Π°ΠΌ всС Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ провСсти Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ тСстированиС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ подруТится с Google, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ сообщали ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ…. БпСциалисты ΠΏΠΎ SEO Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ваши прилоТСния React с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· инструмСнтов Google Search Console, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΡ… Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ сканСры.

    Π₯отя это Π½Π΅ большая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, поисковая оптимизация ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ вашим усилиям ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, настройка Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π½Π° сторонС сСрвСра Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ это Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² большого ΠΎΠΏΡ‹Ρ‚Π°.Если ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, это просто Π½Π΅ сработаСт. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ тСстировании SEO ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ React здСсь.

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React Native?

    Π§Π΅Ρ€Π΅Π· Π΄Π²Π° Π³ΠΎΠ΄Π° послС выпуска ReactJS 2015 Π³ΠΎΠ΄Π° Facebook создал React Native. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ReactJS Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° для создания Π²Π΅Π±-интСрфСйсов, React Native - это гибридная срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для iOS ΠΈ Android, которая позволяСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎ 95 ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ΄Π°, оставляя ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ интСрфСйсов для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

    React ΠΈ React Native: Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°? ВсС тСхничСскиС различия ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ обусловлСны цСлями ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

    • Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ReactJS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ модСль DOM для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΊΠΎΠ΄Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, React Native ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ собствСнныС API Π² качСствС моста для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах. НапримСр, для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Android ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ API Java ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ API Objective-C для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π² iOS.
    • React Native Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ HTML. Π˜Ρ‚Π°ΠΊ, Ссли Π²Ρ‹ Ρ€Π°Π½ΡŒΡˆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с ReactJS, Π²Π°ΠΌ придСтся ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с синтаксисом React Native. НапримСр, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ вмСсто

      ΠΈ вмСсто

      .
    • ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ React Native Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ CSS, стандартныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CSS, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ анимация, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… API React Native.

    Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ сразу ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π° React Native, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с нСсколькими ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ ссылками.

    Как Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с React Native

    Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

    ПослСдняя вСрсия React Native 0.62

    ΠŸΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ React Native Github

    ΠŸΠ»ΡŽΡΡ‹ React Native

    На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ срСда React Native - ΠΎΠ΄Π½Π° ΠΈΠ· самых быстрых ΠΈ эффСктивных срСд для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Он Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ReactJS, ΠΈ Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ слСдуСт Π·Π½Π°Ρ‚ΡŒ ΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах:

    React Native ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ JavaScript - быстрый ΠΈ популярный язык программирования

    ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌ Π΅Ρ‰Π΅ Ρ€Π°Π· - JavaScript остаСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых быстрых ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… языков программирования.Как ΠΌΡ‹ обсуТдали Π² нашСй ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΎ ΠΏΠ»ΡŽΡΠ°Ρ… ΠΈ минусах ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° JavaScript, согласно Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½ΠΎΠΌΡƒ опросу Stack Overflow, 67,7% Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ JavaScript. Π—Ρ€Π΅Π»ΠΎΡΡ‚ΡŒ JS-сообщСства позволяСт спСциалистам быстро ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ язык ΠΈ постоянно ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΈΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, смоТСтС быстро Π½Π°ΠΉΡ‚ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° React Native для своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

    ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, React Native ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈ сочСтаСт Π² сСбС основныС прСимущСства JavaScript ΠΈ ReactJS. Благодаря Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π° JS ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ быстрСС ΠΈ эффСктивнСС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ обновлСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ измСнСния; ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ просто ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ страницу просмотра.

    Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях обновлСния послС запуска ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ быстрСС. НапримСр, Apple позволяСт ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ прилоТСния Π½Π° основС JavaScript Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±Π΅Π· нСобходимости Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

    НативныС элСмСнты управлСния ΠΈ собствСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² React Native ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

    React Native Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ собствСнных API-интСрфСйсов, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… кросс-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ PhoneGap, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· WebView, ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ. Π₯отя ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ WebView Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сниТаСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, React Native взаимодСйствуСт с Ρ†Π΅Π»Π΅Π²Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ для iOS ΠΈΠ»ΠΈ Android ΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈ нСзависимо отрисовываСт ΠΊΠΎΠ΄ Π² собствСнныС API.ΠŸΡ€ΠΈ этом React ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΎΡ†Π΅Π½ΠΊΡƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

    Π Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ WebView ΠΏΡ€ΠΎΡ‚ΠΈΠ² Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° React Native

    БобствСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ. Π’ настоящСС врСмя React прСдоставляСт Π½Π°Π±ΠΎΡ€ встроСнных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, написанных Π½Π° Objective-C ΠΈ Java "ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ". Π­Ρ‚ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ нСльзя ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π΄Π²ΡƒΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π°Ρ†Π΅Π»Π΅Π½Ρ‹ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ слоТных Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ воспроизвСдСниС Π²ΠΈΠ΄Π΅ΠΎ.По сути, ваша ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠ»ΠΈ, Ссли Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Java ΠΈ Objective-C, Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. По ΠΌΠ΅Ρ€Π΅ роста сообщСства React Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ ΡƒΠΆΠ΅ доступны. ΠžΡΡ‚Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ. НапримСр, Facebook Ads Manager ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 87 ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ΄Π° для Android ΠΈ iOS.

    ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, React Native прСдоставляСт простыС инструмСнты для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…. НапримСр, ΠΊΠ°ΠΊ ΠΈ Π² случаС с Π²Π΅Π±-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, спСциалисты ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Chrome ΠΈΠ»ΠΈ Safari, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹.

    ВстроСнная ΠΎΡ‚Π»Π°Π΄ΠΊΠ°

    React Native ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»Π°ΠΆΠ΅Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’ послСднСй вСрсии 0.62, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΌΠ°Ρ€Ρ‚Π° 2020 Π³ΠΎΠ΄Π°, React Native Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π° Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Flipper, инструмСнта ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², популярного Π² сообщСствах Android ΠΈ iOS. Начиная с послСднСй вСрсии, React Native Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Flipper ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ React Native.

    Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ Flipper ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство ΠΎΠΏΡ†ΠΈΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹. Набор инструмСнтов позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠ°ΠΊ просмотр ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΎ сбоях с устройств Android ΠΈ iOS, просмотр всСх сСтСвых запросов прилоТСниями устройства, просмотр ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ настроСк устройства, использованиС послСднСй вСрсии React DevTools вмСстС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ инструмСнтами ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.Благодаря своСй Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΠΈ, Flipper Ρ‚Π°ΠΊΠΆΠ΅ прСдставляСт собой Ρ€Ρ‹Π½ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ ΠΈΠ· NPM, Ρ‡Ρ‚ΠΎ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ Π² соотвСтствии с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ процСссами.

    React Native содСрТит всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ReactJS, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π½Π° ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса

    React Native ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ReactJS Π² качСствС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ JavaScript, поэтому ΠΈΠΌΠ΅Π΅Ρ‚ всС свои прСимущСства. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ React Native для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ язык собствСнной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Они Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π»Π°Π΄Π΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ JavaScript ΠΈ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с синтаксисом React.Но, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ, ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΊΠΎΠ΄ собствСнныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

    Нисходящий ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°ΠΊΠΆΠ΅ сохраняСтся, поэтому основныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· влияния Π½Π° Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ΠΏΠ»Π°Π²Π½ΠΎΠΉ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ влияСт Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ выглядят ΠΊΠ°ΠΊ Ρ€ΠΎΠ΄Π½Ρ‹Π΅.

    ΠœΠΈΠ½ΡƒΡΡ‹ React Native

    ДокумСнтация

    К соТалСнию, React Native наслСдуСт основной нСдостаток ReactJS. БообщСство ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ΅, поэтому доступная докумСнтация оставляСт ΠΆΠ΅Π»Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ, особСнно для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ инструмСнтами.

    ΠžΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с собствСнными модулями

    ΠœΡ‹ обсуТдали собствСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ плюсов. Они ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ гибкости Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΡƒ, заполняя Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ звСнья ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ тяТСлыС Π² Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ собствСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ-настоящСму СстСствСнного ощущСния Π² своСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

    Однако Π΄ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни это ΠΌΠΎΠΆΠ΅Ρ‚ свСсти Π½Π° Π½Π΅Ρ‚ смысл кроссплатформСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Π°ΠΌ всС Π΅Ρ‰Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹-носитСли (Objective-C, Java ΠΈΠ»ΠΈ ΠΎΠ±Π°) Π² запасС.Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ Π½Π΅ понадобится React Native для создания ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ мобильного Photoshop. Но, Ссли Π²Ρ‹ Π½Π΅ Π½Π°Ρ†Π΅Π»ΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ примСнСния Π³Ρ€ΡƒΠ±ΠΎΠΉ силы, ΠΎΠΏΡ‹Ρ‚Π° JS Π±ΡƒΠ΄Π΅Ρ‚ достаточно.

    Π‘Ρ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

    Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, React Native ΠΈΠΌΠ΅Π΅Ρ‚ ряд встроСнных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ для iOS ΠΈ Android, Π½ΠΎ количСство сторонних ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ. И ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π½Π°Ρ‚ΡŒ навСрняка, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, созданныС сообщСством, Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… выпусках Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°. Π­Ρ‚ΠΎ остаСтся нСдостатком, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ React Native Π½Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своих прилоТСниях.

    ΠžΡ‚ΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ обновлСния SDK

    React Native часто Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚, ΠΊΠΎΠ³Π΄Π° iOS ΠΈΠ»ΠΈ Android ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ свои SDK. Команда React Native Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊΠΎΠ΄Π° с Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм. И, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ довольно быстро, ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ всС части API сразу. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ полная синхронизация ΠΌΠ΅ΠΆΠ΄Ρƒ React Native ΠΈ Π½ΠΎΠ²Ρ‹ΠΌΠΈ SDK часто Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

    Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ сравнСнии Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ кроссплатформСнными инструмСнтами, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с нашСй ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ΠΉ: Xamarin vs React Native vs Ionic.

    ΠΠ΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ совмСстимости ΠΈ ошибки

    Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ стоит Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΆΠΈΡ€Π½Ρ‹ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ большоС количСство ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‚ послС Ρ€Π°Π±ΠΎΡ‚Ρ‹ с React Native, ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° прямо ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚: Β«ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠ½Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π»ΠΈ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Π°Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° React Native?Β» ΠœΡ‹ Π±Ρ‹ Π½Π΅ пошли Ρ‚Π°ΠΊ Π΄Π°Π»Π΅ΠΊΠΎ (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ извСстныС прилоТСния RN Π½ΠΈΠΆΠ΅). Но Π²ΠΎΡ‚ лишь ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ список ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с React Native:

    • Π‘Π±ΠΎΠΈ ΠΏΡ€ΠΈ горячСй пСрСзарядкС
    • ΠΠ΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ сообщСства ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ вСрсиями React Native
    • ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с эмулятором
    • ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Ρ€Π΅Π°ΠΊΡ†ΠΈΠ΅ΠΉ-Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠ΅ΠΉ
    • ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ частой пСрСустановки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²
    • Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ошибки

    Π’Π°ΠΊΠΆΠ΅ слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ созданиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ React Native ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… Π±Π°Π·Ρ‹ (React Native, Android ΠΈ iOS) для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° вмСсто ΠΎΠ΄Π½ΠΎΠΉ.

    Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ этот инструмСнт всС Π΅Ρ‰Π΅ находится Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, ΠΈ ΠΏΡƒΡ‚ΡŒ ΠΊ бСспроблСмному ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π»Π΅Π³ΠΊΠΈΠΌ.

    ReactJS ΠΈ прилоТСния React Native

    ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π²Π½Π΅Π΄Ρ€ΠΈΠ»ΠΈ ReactJS ΠΈΠ»ΠΈ React Native, сдСлали это ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ. Π’ΠΎΡ‚ самыС Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Π΅ послСдоватСли, ΠΏΠΎΠΌΠΈΠΌΠΎ самого Facebook.

    Instagram. Команда Instagram Ρ…ΠΎΡ‚Π΅Π»Π° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Π±-сайт, одностраничноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ посСтитСли Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. И ReactJS казался Π»ΡƒΡ‡ΡˆΠΈΠΌ для этой Ρ†Π΅Π»ΠΈ.Π’Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΈ оказалось быстрым ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅, ΠΈ Π²Π΅Π±-прилоТСния Instagram ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ React.

    Netflix . Netflix, ΠΏΡ€ΠΈΠ½ΡΠ²ΡˆΠΈΠΉ ReactJS Π² 2015 Π³ΠΎΠ΄Ρƒ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ вмСстС со слоСм Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Gibbon. Π’ΠΎΠ³Π΄Π° Netflix Π²Ρ‹Π±Ρ€Π°Π» React ΠΈΠ·-Π·Π° своСй одностороннСй ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

    Airbnb . Компания Ρ€Π΅ΡˆΠΈΠ»Π° ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° ReactJS ΠΈΠ·-Π·Π° возмоТности ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΎΡ‡Π΅Π½ΡŒ простого Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΊΠΎΠ΄Π° ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ.Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… структурах мобильного прилоТСния ΠΈ Π²Π΅Π±-страницы ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.

    Uber Eats . Основная идСя создания ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² объСдинСнии Ρ‚Ρ€Π΅Ρ… Ρ‚ΠΈΠΏΠΎΠ² участников: рСсторанов, Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². Π‘Π°ΠΌΠΎΠΉ слоТной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Π±Ρ‹Π»Π° интСрпрСтация фактичСской ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов рСсторана с Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ устройства, ΠΊΠ°ΠΊ для Android, Ρ‚Π°ΠΊ ΠΈ для iOS. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° React Native Π±Ρ‹Π» СдинствСнным Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ. Π₯отя Π½Π° React Native построСна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π°ΡΡ‚ΡŒ мобильного прилоТСния Uber Eats, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ достигли ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².Π•ΠΌΠΊΠΎΡΡ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΏΠΎΠΌΠΎΠ³Π»Π° ΠΈΠΌ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ слуТбу.

    SoundCloud Pulse. Когда ΠΊΠΎΠΌΠ°Π½Π΄Π΅ SoundCloud ΠΏΡ€ΠΈΡˆΠ»Π° Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ идСя ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для артистов для управлСния своими ΡƒΡ‡Π΅Ρ‚Π½Ρ‹ΠΌΠΈ записями ΠΈ авторскими ΠΏΡ€Π°Π²Π°ΠΌΠΈ, сСрвис для ΠΎΠ±ΠΌΠ΅Π½Π° ΠΌΡƒΠ·Ρ‹ΠΊΠΎΠΉ сущСствовал ΡƒΠΆΠ΅ 10 Π»Π΅Ρ‚. И самая большая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ рСсурсы ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ. React Native ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π» здСсь ΠΏΠΎ Π΄Π²ΡƒΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, совмСстноС использованиС ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ускорило процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя удобство использования RN наряду с автоматичСской ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΆΠΈΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ.

    Π₯анская акадСмия. Одна ΠΈΠ· ΠΊΡ€ΡƒΠΏΠ½Π΅ΠΉΡˆΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ для ΠΎΠ½Π»Π°ΠΉΠ½-обучСния Π² основном построСна Π½Π° ReactJS. Khan Academy Ρ€Π΅ΡˆΠΈΠ»Π° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой ΠΏΠΎΡ€Ρ‚Π°Π» элСктронного обучСния с Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ΅ Ρ€Π΅Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ страницы, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠ»Π°Π²Π½ΠΎ ΠΈ эффСктивно замСняя Π΅Π³ΠΎ элСмСнты.

    Π‘Π»ΡƒΠΌΠ±Π΅Ρ€Π³ . Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΆΡƒΡ€Π½Π°Π» Π²Ρ‹Π±Ρ€Π°Π» React Native ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ своСго мобильного прилоТСния.Π’ ΠΈΡ… сообщСнии Π² Π±Π»ΠΎΠ³Π΅ Tech at Bloomberg говорится, Ρ‡Ρ‚ΠΎ это Β«ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π°Π²Π΄Ρ‹Π²Π°Π΅Ρ‚ оТидания кроссплатформСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΒ».

    Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° React Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ прогрСссивна, учитывая, сколько ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ Π΅Π΅ приняли. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° бСспорядочный React Native стрСмится ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ способ взаимодСйствия ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ обСспСчСниСм. ReactJS, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΈΠ· простой ΠΈΠ΄Π΅ΠΈ устранСния Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ Π±Ρ‹Π» ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ усилия Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π΅Π΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ.

    И React ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒΡΡ. НапримСр, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ±Π΅Ρ‰Π°Π΅Ρ‚ большиС измСнСния Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ измСнСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², асинхронный Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ ΠΈ ряд Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π΅Ρ„ΠΎΡ€ΠΌ, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π³ΠΈΠ±ΠΊΠΎΠΉ ΠΈ Π»Π΅Π³ΠΊΠΎΠΉ. Π­Ρ‚ΠΎΡ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±Ρ‹Π» Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° 2020 Π³ΠΎΠ΄.

    Π­Ρ‚ΠΎΡ‚ пост - Ρ‡Π°ΡΡ‚ΡŒ нашСй сСрии Β«Π₯ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΈ ΠΏΠ»ΠΎΡ…ΠΎΠ΅Β». ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΏΠ»ΡŽΡΠ°Ρ… ΠΈ минусах самых популярных Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ… сСрии:

    ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

    ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы мобильной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Xamarin

    ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ стСка Π½Π° JavaScript

    Π₯ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΈ ΠΏΠ»ΠΎΡ…ΠΎΠ΅ Π² Node.js Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

    ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы быстрого языка программирования

    ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы программирования .NET Framework

    Π₯ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΈ ΠΏΠ»ΠΎΡ…ΠΎΠ΅ срСдство Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования сСлСна

    ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Android

    .

    Leave a Comment

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