Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ react js: понятноС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… / Π‘Π»ΠΎΠ³ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ RUVDS.com / Π₯Π°Π±Ρ€

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

Когда ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ React? — Favicon

Π’Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ HTML ΠΈ CSS, вСдь ΠΎΠ½ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ ΠΈΠ· Π½ΠΈΡ… ΠΈ состоит. Ясно для Ρ‡Π΅Π³ΠΎ Π²Ρ‹ добавляСтС JavaScript β€” Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ какая-Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ JavaScript. Π’ΠΏΠΎΠ»Π½Π΅ понятно Π·Π°Ρ‡Π΅ΠΌ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ΠœΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈΒ jQuery, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π½Π°ΠΌ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с DOM, Ajax ΠΈ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с кросс-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ  с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript.

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

Π― просто ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ React Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ для своСго Ρ€ΠΎΠ΄Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ…Β JavaScript-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²: Vue, Ember, Angular, Svelte … ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π― понимаю, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ всС Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅, Π½ΠΎ Π² ΠΊΠ°ΠΊΠΈΡ… случаях ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, я Π½Π°Ρ…ΠΎΠΆΡƒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Ρ‚ΡƒΠΌΠ°Π½Π½Ρ‹ΠΌ.

Π’ΠΎΡ‚ ΠΌΠΎΠΈ список Β«Π·Π°Β» ΠΈ Β«ΠΏΡ€ΠΎΡ‚ΠΈΠ²Β».

Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ количСство состояний (state).

Π‘Π»ΠΎΠ²ΠΎ «состояниС» ΠΈΠ»ΠΈ state Ρ‚ΠΎΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚ΡƒΠΌΠ°Π½Π½ΠΎΠ΅. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π΅Ρ‰ΠΈ:

  • Какой элСмСнт Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½
  • Π‘ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΈΠ»ΠΈ Π½Π΅Ρ‚
  • КакиС Ρ€Π°Π·Π΄Π΅Π»Ρ‹ Π°ΠΊΠΊΠΎΡ€Π΄Π΅ΠΎΠ½Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹
  • ΠœΠΎΠΌΠ΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ области
  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, вошСдший Π² систСму, ΠΈ катСгория, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚
  • ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° Π»ΠΈ ΡΡ‚Π°Ρ‚ΡŒΡ, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΈΠ»ΠΈΒ ΠΆΠ΅ это Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊ

React Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ эти состояния, ΠΎΠ½ просто Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚: я знаю, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ с состояниСм, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ просто Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ state ΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒΒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ способы установки ΠΈ получСния этого состояния.

Π”ΠΎΠ»Π³ΠΎΠ΅ врСмя мы рассматривали DOM ΠΊΠ°ΠΊ СдинствСнный источник Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ Ρ„ΠΎΡ€ΠΌΠ° Π½Π° вашСм сайтС Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π°. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго вы сдСлаСтС Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ:Β $(Β«.Form input[type=’submit’]).(Β«:DisabledΒ»), ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ вся Π»ΠΎΠ³ΠΈΠΊΠ°, которая Ρ€Π΅ΡˆΠ°Π΅Ρ‚Β Π²ΠΎΠΏΡ€ΠΎΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ Ρ„ΠΎΡ€ΠΌΠ° Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π°Β Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅  это β€” Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Disabled ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ. Или Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ имя Π°Π²Ρ‚ΠΎΡ€Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ коммСнтария Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅. НавСрняка вы Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅Β $(Β«.Comments>ul>li:first> h4.comment-author).text(), Β ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ DOM СдинствСнноС мСсто, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅ΡΡ‚ΡŒ эта информация.

React Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π½Π°ΠΌ:

  1. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ±ΠΎ всСм этом ΠΊΠ°ΠΊ ΠΎ событиях (state).
  2. КоС-Ρ‡Ρ‚ΠΎ я ΡƒΠ»ΡƒΡ‡ΡˆΡƒ: state β€” это Ρ‡Π°ΡΡ‚ΡŒ JSON,Β ΠΈ с Π½ΠΈΠΌ Π»Π΅Π³Ρ‡Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ приятнСС ΡΠΎΠ²ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ с вашим бэкСндом.
  3. И Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅: Π²Ρ‹ строитС свой HTML, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ кусочки этих state, ΠΈ Π²Π°ΠΌ Π½Π΅ придСтся ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ с DOM Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, я Π±Π΅Ρ€Ρƒ всС это Π½Π° сСбя (ΠΈ, вСроятно, сдСлаю эту Ρ€Π°Π±ΠΎΡ‚Ρƒ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈ быстрСС Ρ‡Π΅ΠΌ Π²Ρ‹).

Π‘ΠΎΡ€ΡŒΠ±Π° с Β«Π‘ΠΏΠ°Π³Π΅Ρ‚Ρ‚ΠΈ-ΠΊΠΎΠ΄ΠΎΠΌΒ»

Π‘ΠΏΠ°Π³Π΅Ρ‚Ρ‚ΠΈ-ΠΊΠΎΠ΄ β€” это Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΉ ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΉ для понимания ΠΊΠΎΠ΄, ΠΎΠ½ Π½Π°Π·Π²Π°Π½ Ρ‚Π°ΠΊ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ…ΠΎΠ΄Β Π΅Π³ΠΎ выполнСния ΠΏΠΎΡ…ΠΎΠΆ Π½Π° миску спагСтти, Ρ‚ΠΎΠ΅ΡΡ‚ΡŒ извилистый ΠΈ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΉ (wikipedia).

Π‘Π½ΠΎΠ²Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС Ρ„ΠΎΡ€ΠΌΡƒ Π½Π° вашСм сайтС. Π’ Π½Π΅ΠΉ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. ΠŸΡƒΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ числовоС ΠΏΠΎΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ вычислСния рядом с Π½ΠΈΠΌ. Π€ΠΎΡ€ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎΒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ, Π° Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ, поэтому этот ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ мСстС. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ сдСлайтС Ρ„ΠΎΡ€ΠΌΡƒ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΠΎΠΊΠ° Π½Π΅ загрузятся всС скрипты JavaScript, ΠΈ этот ΠΊΠΎΠ΄ хранится Π³Π΄Π΅-Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. Когда Ρ„ΠΎΡ€ΠΌΠ° ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π°, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, ΠΈ эти Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ. Π’ΠΎ всСм этом ΠΌΠΎΠΆΠ½ΠΎ быстро Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ. И ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, глядя Π½Π° эту Ρ„ΠΎΡ€ΠΌΡƒ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π²ΠΎ всСм, Ρ‡Ρ‚ΠΎ происходит?

React поощряСт распрСдСлСниС ΠΊΠΎΠ΄Π° Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, эта Ρ„ΠΎΡ€ΠΌΠ°, скорСС всСго, Π»ΠΈΠ±ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ, Π»ΠΈΠ±ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ, которая ΠΈΠΌΠ΅Π΅Ρ‚ прямоС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅.

React Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚: Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π²Ρ‹ Π½Π΅ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° измСнСниями ΠΈ содСрТаниСм DOM Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ,Β ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ DOM ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΌΠ½Π΅, ΠΈ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌ. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π²Π°ΠΌ Π½Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ± этих Π²Π΅Ρ‰Π°Ρ… ΠΊΠ°ΠΊ ΠΎ части состояния, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ эти состояния, Π° я Ρ€Π°Π·Π±Π΅Ρ€ΡƒΡΡŒ с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡŽ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ прСдставлСно.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ сам React ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ спагСтти-ΠΊΠΎΠ΄. Π’Ρ‹ всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ state Π² самых странных мСстах, нСпонятным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅.

По ΠΌΠΎΠ΅ΠΌΡƒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΌΡƒ ΠΎΠΏΡ‹Ρ‚Ρƒ, ΠΈΠΌΠ΅Π½Π½ΠΎ Redux β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ±ΠΈΠ²Π°Π΅Ρ‚ спагСтти (ΠΈΠ»ΠΈ ΡΡŠΠ΅Π΄Π°Π΅Ρ‚ Π½Π°ΠΏΡ€ΠΎΡ‡ΡŒ Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅). Redux Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚: я Π±ΡƒΠ΄Ρƒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ всС Π²Π°ΠΆΠ½Ρ‹Π΅ состояния, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, глобально, Π° Π½Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π·Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ state, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ провСсти ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Ρ†Π΅Ρ€Π΅ΠΌΠΎΠ½ΠΈΡŽ ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Β«Ρ€Π΅Π΄ΡŽΡΠ΅Ρ€Ρ‹Β» (reducers) ΠΈ «диспатчСры» (dispatch) ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅. И всС ΠΎΠ½ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Β«Ρ†Π΅Ρ€Π΅ΠΌΠΎΠ½ΠΈΠΈ провСдСния».

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ манипуляций с DOM.

Π ΡƒΡ‡Π½Ρ‹Π΅ манимуляции с DOM, вСроятно, ΡΠ²Π»ΡΡŽΡ‚ΡΡ самым ярким ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ спагСтти-ΠΊΠΎΠ΄Π°.

React Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚: Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ DOM. Π£ мСня Π΅ΡΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ DOM, ΠΈ я занимаюсь этим. Бобытия привязаны нСпосрСдствСнно ΠΊ элСмСнтам, ΠΈ Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ свСрх Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² этом ΠΌΠΎΠ΄ΡƒΠ»Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ к модулям Π±ΠΎΠ»Π΅Π΅ высокого порядка, Π½ΠΎ Ρ‚ΡƒΡ‚ всС просто ΠΈ отслСТиваСмо.

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

ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ‚Π°ΠΊ. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это Ρ‚Ρ€Π΅Π½Π΄.

Π˜Π·ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎΡ‚ΠΎ Ρ€Π°Π΄ΠΈ обучСния Ρ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ это ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ. Но всС ΠΆΠ΅ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

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

Π‘Π»ΠΎΠ³ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой SPA Β (Β«Single Page AppΒ»), одностраничноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страниц Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ, Π΄ΠΎ сих ΠΏΠΎΡ€ являСтся пустой нишСй. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, CMS Π²Π΅Π± прилоТСния, для создания Π±Π»ΠΎΠ³ΠΎΠ² Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Π² сторону React.

МнС просто нравится JavaScript ΠΈ я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΈΡΠ°Ρ‚ΡŒ всС Π½Π° JavaScript.

Волько с Π½Π΅Π΄Π°Π²Π½ΠΈΡ… ΠΏΠΎΡ€ Π²Π΅Π±-истории стало Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠΊΠΈΠ΄Π°Ρ‚ΡŒ JavaScript. Π£ вас Π΅ΡΡ‚ΡŒ Node.js для выполнСния ΠΊΠΎΠ΄Π° Π½Π° сторонС сСрвСра. Π•ΡΡ‚ΡŒ мноТСство ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Ρ‚Π°ΡΠΊΠΈΠ²Π°ΡŽΡ‚ CSS ΠΈΠ· миксов ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ стили с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript. И с React-ΠΎΠΌ ваш HTML Ρ‚ΠΎΠΆΠ΅ хранится Π²Β JavaScript.

Это всС Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠ΅-Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅. НС Π²ΠΎ всСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… это трСбуСтся, Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всС Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° сСгодняшний дСнь JavaScript, Π° вмСстС с Π½ΠΈΠΌ ΠΈ React, способСн Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ.

Π­Ρ‚ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ я знаю.

Π’Ρ‹ ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ. ΠŸΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰Π΅. ВсС учатся. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ ΠΈ Π²Ρ‹. Π§Π΅ΠΌ большС Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Π΅Π΅Β Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Но ΠΈΠ½ΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ язык, Ρ‚Π΅ инструмСнты ΠΈ Ρ‚Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ ΡƒΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Π½Π°Ρ‚Π°ΡΠΊΠ°Π»ΠΈΡΡŒ, Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с React, Ρ‚ΠΎ я Π½Π΅ Π±ΡƒΠ΄Ρƒ Ρ‚ΡƒΡ‚ вас ΠΏΠ΅Ρ€Π΅ΡƒΠ±Π΅ΠΆΠ΄Π°Ρ‚ΡŒ.

ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒΒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΡΡ‚Ρ‹.

НС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ€Π°Π½Π΅Π΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΒ Π² Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.Β Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ. Π― лишь Ρ…ΠΎΡ‡Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉΒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° лишь ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡΒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΡΡ‚Ρ‹Β (спСциалист), Π·Π½Π°ΡŽΡ‰ΠΈΠ΅ этот Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΈ ΡƒΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ с Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ React для своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ спСциалисты ΠΏΠΎ React, Π² этом Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ. Как Π·Π½Π°Ρ‚ΡŒ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΎΠ½ идСально ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ для вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

НС совсСм Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈΒ css-tricks.com

ΠŸΠΎΡ‡Π΅ΠΌΡƒ стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ React JS ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

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

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° React Π±Ρ‹Π»Π° Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Facebook Π² 2013 Π³ΠΎΠ΄Ρƒ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, насколько популярной эта тСхнология стала Π·Π° ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ врСмя, Π΄Π°Π²Π°ΠΉΡ‚Π΅ обратимся ΠΊ опросу Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ сайтом StackOverflow Π² этом Π³ΠΎΠ΄Ρƒ. Π‘ΠΎΠ»Π΅Π΅ 50 000 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² подСлились ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ своСй Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… прСдпочтСниях. Помимо Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ прСдсказуСмых Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ состоянии IT-индустрии Π½Π° сСгодняшний дСнь, Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСпосрСдствСнно React. Π­Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° стала ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… ΠΈ вострСбованных Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ самой Ρ‚Ρ€Π΅Π½Π΄ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ Π½Π° StackOverflow:

react js пСрспСктива

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React JS. ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€

React это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов. Одной ΠΈΠ· Π΅Π΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… особСнностСй являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ JSX, язык программирования с Π±Π»ΠΈΠ·ΠΊΠΈΠΌ ΠΊ HTML синтаксисом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ компилируСтся Π² JavaScript. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠ±ΠΈΠ²Π°Ρ‚ΡŒΡΡ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Virtual DOM. C React Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠΌΠΎΡ€Ρ„Π½Ρ‹Π΅ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ нСприятной ситуации, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ с Π½Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΆΠ΅ Π½Π°ΠΊΠΎΠ½Π΅Ρ† Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π° экранС Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π½Π°ΠΊΠΎΠ½Π΅Ρ† появится Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΌΠΈΠΌΠΎ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π·Π°Π½ΠΎΠ²ΠΎ Π² Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. Высокий ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΠΎΡΡ‚ΡŒ тСстами, Ρ‡Ρ‚ΠΎ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π±ΠΎΠ»Π΅Π΅ высокому ΡƒΡ€ΠΎΠ²Π½ΡŽ контроля качСства. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ React NativeΒ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния для Android ΠΈ iOS, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΡ‹Ρ‚ JavaScript ΠΈ React Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ тСхничСскиС особСнности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΏΠΈΡ‰Π΅ΠΉ для Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠΉ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ вопросу.

ΠšΠ°ΠΊΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΈΠ· React ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊ?
Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ:

  • Virtual DOM ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ высоконагруТСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ возникновСния Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… нСудобств ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΎΠΏΡ‹Ρ‚;
  • ИспользованиС ΠΈΠ·ΠΎΠΌΠΎΡ€Ρ„Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ страниц быстрСС, Ρ‚Π΅ΠΌ самым позволяя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСбя Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ с вашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠŸΠΎΠΈΡΠΊΠΎΠ²Ρ‹Π΅ систСмы ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ страницы Π»ΡƒΡ‡ΡˆΠ΅. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован ΠΊΠ°ΠΊ Π² клиСнтской, Ρ‚Π°ΠΊ ΠΈ Π² сСрвСрной части прилоТСния, Π½Π΅Ρ‚ нСобходимости Π² Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ΡΡ;
  • Благодаря ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡŽ ΠΊΠΎΠ΄Π° стало Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния. Код, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» написан Π²ΠΎ врСмя создания сайта, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ снова использован для создания мобильного прилоТСния. Если Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сайт, Π½ΠΎ ΠΈ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π΅Ρ‚ нСобходимости Π½Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π²Π΅ большиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

ΠΏΠΎΡ‡Π΅ΠΌΡƒ react

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим, Π·Π° счСт Ρ‡Π΅Π³ΠΎ Π΄ΠΎΡΡ‚ΠΈΠ³Π°ΡŽΡ‚ΡΡ Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Π΅ Π²Ρ‹Π³ΠΎΠ΄Ρ‹. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΎΠ΄Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π±ΡƒΠ΄Π΅Ρ‚ нСдостаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ всС возмоТности Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Но ΠΌΡ‹ сконцСнтрируСмся Π½Π° самых Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΈΠ· Π½ΠΈΡ… Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΌΠΎΠ³ΡƒΡ‚ Π»ΠΈ React Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ:

  1. Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° Π²Π°ΡˆΠΈΡ… сайтов ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
  2. УвСличСния скорости Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
  3. Использования Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€Π΅Π½Π΄ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π˜Π·ΠΎΠΌΠΎΡ€Ρ„Π½Ρ‹Π΅ прилоТСния. ΠŸΠΎΠΉΠΌΠ°Ρ‚ΡŒ Π΄Π²ΡƒΡ… Π·Π°ΠΉΡ†Π΅Π²

Когда ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± ΠΈΠ·ΠΎΠΌΠΎΡ€Ρ„Π½Ρ‹Ρ… прилоТСниях ΠΈΠ»ΠΈ ΠΎΠ± ΠΈΠ·ΠΎΠΌΠΎΡ€Ρ„Π½ΠΎΠΌ JavaScript, ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ ΠΊΠ°ΠΊ Π² сСрвСрной, Ρ‚Π°ΠΊ ΠΈ Π² клиСнтской части прилоТСния. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ сайт Π² своСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, содСрТимоС страницы Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ΠΎ с сСрвСра. Π’ случаС с SPA-прилоТСниями (Single Page Application), это ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя. Π’ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ видят Π»ΠΈΠ±ΠΎ ΠΏΡƒΡΡ‚ΡƒΡŽ страницу, Π»ΠΈΠ±ΠΎ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Учитывая, Ρ‡Ρ‚ΠΎ ΠΏΠΎ соврСмСнным стандартам ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π΄Π²ΡƒΡ… сСкунд ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вСсьма Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌ нСудобством для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, сокращСниС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΊΡ€Π°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌ. А Π²ΠΎΡ‚ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° вСсомая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: поисковыС ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π½Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ страницы Ρ‚Π°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΊΠ°ΠΊ Π½Π°ΠΌ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹. ИсполнСниС JavaScript ΠΊΠΎΠ΄Π° Π½Π° сторонС сСрвСра ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Если Π²Ρ‹ создаСтС ΠΈΠ·ΠΎΠΌΠΎΡ€Ρ„Π½Ρ‹Π΅ прилоТСния, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π·Π°ΠΌΠ΅Ρ‚Π½ΡƒΡŽ Π²Ρ‹Π³ΠΎΠ΄Ρƒ, производя Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Π½Π° сторонС сСрвСра. ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы Π²Ρ‹ всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Вакая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° страниц ΠΊΠ°ΠΊ Π½Π° сСрвСрС, Ρ‚Π°ΠΊ ΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌ прСимущСствам, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ индСксирования страниц поисковыми машинами ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π°. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ врСмя, Π·Π°Ρ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. ΠŸΡ€ΠΈ использовании Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… соврСмСнных Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ΡŒΡΡ Π½Π° сторонС сСрвСра, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ для клиСнтской стороны прилоТСния. React Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° ΠΎΠ±Π΅ΠΈΡ… сторонах.

Virtual DOM. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊ быстрСС

Document Object Model, ΠΈΠ»ΠΈ DOM, β€” это способ прСдставлСния ΠΈ взаимодСйствия с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π² HTML, XHTML ΠΈ XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…. Богласно этой ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π°ΠΊΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ прСдставляСт собой иСрархичСскоС Π΄Π΅Ρ€Π΅Π²ΠΎ элСмСнтов, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ DOM-Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ доступ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ элСмСнтам нашСго Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ. Когда ΠΌΡ‹ создаСм Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Π²Π΅Π±-страницу, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ DOM обновлялся Ρ‚Π°ΠΊ быстро, ΠΊΠ°ΠΊ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ послС измСнСния состояния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта. Для Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡ€ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся Β«dirty checkingΒ» ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² рСгулярном опросС состояния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² структурС Π΄Π°Π½Π½Ρ‹Ρ…. Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, подобная Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ самой настоящСй Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ болью Π² случаС высоконагруТСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Virtual DOM, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, хранится Π² памяти. ИмСнно поэтому Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° «настоящий» DOM мСняСтся, React ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Virtual DOM Π² ΠΌΠ³Π½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΎΠΊΠ°. React «собираСт» Ρ‚Π°ΠΊΠΈΠ΅ измСнСния сравниваСт ΠΈΡ… с состояниСм DOM, Π° Π·Π°Ρ‚Π΅ΠΌ пСрСрисовываСт измСнившиСся ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

ΠŸΡ€ΠΈ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ Π²Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅ рСгулярноС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ DOM. ИмСнно поэтому ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достигнута Π±ΠΎΠ»Π΅Π΅ высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ React ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ слСдствиС Π²Ρ‹Ρ‚Π΅ΠΊΠ°Π΅Ρ‚ ΠΈΠ· ΠΈΠ·ΠΎΠΌΠΎΡ€Ρ„Π½ΠΎΠΉ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ React: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Π½Π° сторонС сСрвСра совсСм ΠΊΠ°ΠΊ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Как ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ прилоТСния Π±ΠΎΠ»Π΅Π΅ эффСктивно

ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСимущСства ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с сайтами. Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· соСдинСния с Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ΠΎΠΌ. Они ΠΈΠΌΠ΅ΡŽΡ‚ доступ ΠΊ Ρ‚Π°ΠΊΠΈΠΌ возмоТностям устройства, ΠΊΠ°ΠΊ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ увСдомлСния. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π±Ρ‹Ρ‚ΡŒ Π² ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ с вашими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ 24/7. React Native β€” это Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ React. Π›ΠΎΠ³ΠΈΠΊΠ° прилоТСния ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π½Π° JavaScript, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, программисту Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. ВсС Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ β€” Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΠΈΡΠ°Ρ‚ΡŒ спСцифичный для устройства ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ€Π°Π½Π΅Π΅ созданныС для Π²Π΅Π±-сайта ΠΊ Π½ΠΎΠ²ΠΎΠΉ срСдС обитания.

Если ΠΌΡ‹ сравним Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹:

  • Π’ случаС с Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ прилоТСниями Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΡΡ‚ΡŒΡΡ Π½Π° довольно Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ довольно высокой;
  • Если Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Ρ‚Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ HTML5, CSS3 ΠΈ JavaScript, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ PhoneGap, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ. Но Π² этом случаС ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ΅Ρ‚Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π½ΠΈΠΆΠ΅;
  • Π’ случаС React Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΡΡ‚ΠΈΠ³Π½ΡƒΡ‚ΡŒ уровня ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, сравнимого с Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ прилоТСниями. ΠŸΡ€ΠΈ этом ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сравнима с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ.

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

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

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

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

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅: знакомство с React – React

Π’Π°ΠΌ Π½Π΅Β ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ React, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ это Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ

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

Π‘ΠΎΠ²Π΅Ρ‚

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

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ состоит ΠΈΠ·Β Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²:

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

Π§Ρ‚ΠΎ мы собираСмся ΠΏΠΈΡΠ°Ρ‚ΡŒ?

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

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Β ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π·Π΄Π΅ΡΡŒΒ β€” готовая ΠΈΠ³Ρ€Π°. Если Π²Ρ‹Β Π½Π΅Β ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ ΠΊΠΎΠ΄, ΠΈΠ»ΠΈ Π²Ρ‹Β Π½Π΅Β Π·Π½Π°ΠΊΠΎΠΌΡ‹ с синтаксисом, Π½Π΅Β Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡ‚Π΅ΡΡŒ. ЦСль этого ввСдСния — ΠΏΠΎΠΌΠΎΡ‡ΡŒ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с React ΠΈΒ Π΅Π³ΠΎ синтаксисом.

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

Π’Ρ‹Β ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ в крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с нСй. ΠœΡ‹Β Π½Π°Ρ‡Π½Ρ‘ΠΌ с простой Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом мы настроим ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Β ΠΌΠΎΠ³Π»ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ созданиС ΠΈΠ³Ρ€Ρ‹.

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

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

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

Настройка окруТСния

Π•ΡΡ‚ΡŒ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° прохоТдСния практичСской части — Π²Ρ‹Β ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π²Β Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Π»ΠΈΠ±ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°Β ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 1: ПишСм ΠΊΠΎΠ΄ Π²Β Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅

Π­Ρ‚ΠΎ самый быстрый способ для старта.

Для Π½Π°Ρ‡Π°Π»Π° ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ эту Π—Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ Π²Β Π½ΠΎΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. Π’Ρ‹Β ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ пустоС ΠΏΠΎΠ»Π΅ для ΠΈΠ³Ρ€Ρ‹ в крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ ΠΈΒ ΠΊΠΎΠ΄ Π½Π°Β React, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹Β Π±ΡƒΠ΄Π΅ΠΌ постСпСнно ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΒ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊΒ ΠžΠ±Π·ΠΎΡ€Ρƒ React.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 2: Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π­Ρ‚ΠΎ нС являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ и нС трСбуСтся этим Π²Π²ΠΎΠ΄Π½Ρ‹ΠΌ руководством!

ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ: Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ для написания ΠΊΠΎΠ΄Π° Π² вашСм любимом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅

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

  1. Π£Π±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ у вас установлСна послСдняя вСрсия Node.js.
  2. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ инструкции по установкС Create React App для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
npx create-react-app my-app
  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/ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€ΠΈ строчки:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';

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

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

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

Если вы застряли — ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ к сообщСству. В частности Π§Π°Ρ‚ ReactifluxΒ β€” это прСкрасноС мСсто, Π³Π΄Π΅ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚. Если Π²Ρ‹Β Π½Π΅Β Π΄ΠΎΠΆΠ΄Π°Π»ΠΈΡΡŒ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΈΠ»ΠΈ всё Π΅Ρ‰Ρ‘ Π½Π΅Β Ρ€Π΅ΡˆΠΈΠ»ΠΈ своСй ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, поТалуйста, Π·Π°Π΄Π°ΠΉΡ‚Π΅ вопрос, ΠΈΒ ΠΌΡ‹Β Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅ΠΌ.

ΠžΠ±Π·ΠΎΡ€

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Β Π³ΠΎΡ‚ΠΎΠ²Ρ‹, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ ΠΊΒ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ React!

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

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

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

class ShoppingList extends React.Component {
  render() {
    return (
      <div className="shopping-list">
        <h2>Бписок ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ для {this.props.name}</h2>
        <ul>
          <li>Instagram</li>
          <li>WhatsApp</li>
          <li>Oculus</li>
        </ul>
      </div>
    );
  }
}

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

ShoppingList являСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ классового ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° React. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ пропсами (props, сокращСниС ΠΎΡ‚Β propertiesΒ β€” свойства), ΠΈΒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ·Β ΠΌΠ΅Ρ‚ΠΎΠ΄Π° render() ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ прСдставлСний для отобраТСния.

ΠœΠ΅Ρ‚ΠΎΠ΄ render Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ описаниС Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Β Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ на экранС. React Π±Π΅Ρ€Ρ‘Ρ‚ это описаниС ΠΈΒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Если Ρ‚ΠΎΡ‡Π½Π΅Π΅, render Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ React-элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся лСгковСсным описаниСм Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ΡŒ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ React-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ синтаксис ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«JSXΒ» для упрощСния описания структуры. Во врСмя компиляции синтаксис <div /> прСобразовываСтся Π²Β React.createElement('div'). ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹ΡˆΠ΅ Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π΅Π½ Π²ΠΎΡ‚ этому:

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

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

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

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

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ShoppingList Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ встроСнныС DOM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ <div /> ΠΈΠ»ΠΈ <li />. Но вы такТС ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ΡŒ собствСнныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. НапримСр, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Β ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ на вСсь ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ со списком ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ, написав <ShoppingList />. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ инкапсулирован ΠΈΒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ нСзависимо. Π­Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ слоТный UI из простых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

РазбСрёмся со стартовым ΠΊΠΎΠ΄ΠΎΠΌ

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

Π­Ρ‚ΠΎΡ‚ стартовый ΠΊΠΎΠ΄Β β€” Π±Π°Π·Π°, с которой ΠΌΡ‹Β Π½Π°Ρ‡Π½Ρ‘ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. ΠœΡ‹Β Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ CSS-стили, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π°Β ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ React и написании ΠΈΠ³Ρ€Ρ‹ крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ.

Π˜Π·ΡƒΡ‡ΠΈΠ² ΠΊΠΎΠ΄, Π²Ρ‹Β ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ Ρ‚Ρ€ΠΈ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°:

  • Square (ΠšΠ»Π΅Ρ‚ΠΊΠ°)
  • Board (ПолС)
  • Game (Π˜Π³Ρ€Π°)

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Board Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ 9 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Square, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ·Β ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ ΠΏΠΎΒ ΠΎΠ΄Π½ΠΎΠΌΡƒ элСмСнту <button>. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Game Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ ΠΏΠΎΠ»Π΅ c Π·Π°Π³Π»ΡƒΡˆΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹Β ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅. Пока у нас Π½Π΅Ρ‚ Π½ΠΈΒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· пропсы

Для Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ из нашСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Board Π²Β ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Square.

ΠΠ°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π°Β Π½Π΅Β ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΒ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈΒ Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ ΠΌΡ‹ΡˆΠ΅Ρ‡Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ.

class Board extends React.Component {
  renderSquare(i) {
    return <Square value={i} />;  }
}

ИзмСним ΠΌΠ΅Ρ‚ΠΎΠ΄ render Π²Π½ΡƒΡ‚Ρ€ΠΈ Square, Π·Π°ΠΌΠ΅Π½ΠΈΠ² {/* TODO */} Π½Π°Β {this.props.value}:

class Square extends React.Component {
  render() {
    return (
      <button className="square">
        {this.props.value}      </button>
    );
  }
}

Π”ΠΎ:

React Devtools

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

React Devtools

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ этого шага

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

Π”ΠΎΠ±Π°Π²ΠΈΠΌ взаимодСйствиС с компонСнтом

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π°Β ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Square ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Β«XΒ».
Π’Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Ρ‚Π΅Π³ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ возвращаСтся ΠΈΠ·Β ΠΌΠ΅Ρ‚ΠΎΠ΄Π° render() ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Square:

class Square extends React.Component {
  render() {
    return (
      <button className="square" onClick={function() { alert('ΠΊΠ»ΠΈΠΊ'); }}>        {this.props.value}
      </button>
    );
  }
}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹Β ΠΊΠ»ΠΈΠΊΠ½Π΅Ρ‚Π΅ ΠΏΠΎΒ Square, Ρ‚ΠΎΒ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π²Β Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ сообщСниС.

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

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

class Square extends React.Component {
 render() {
   return (
     <button className="square" onClick={() => alert('ΠΊΠ»ΠΈΠΊ')}>       {this.props.value}
     </button>
   );
 }
}

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

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом ΠΌΡ‹Β Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Square Β«Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π»Β», Ρ‡Ρ‚ΠΎ ΠΏΠΎΒ Π½Π΅ΠΌΡƒ ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ»ΠΈ и поставили Β«XΒ».
Для «запоминания» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ состояниС.

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

Π‘ΠΏΠ΅Ρ€Π²Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ конструктор к классу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ состояниС:

class Square extends React.Component {
  constructor(props) {    super(props);    this.state = {      value: null,    };  }
  render() {
    return (
      <button className="square" onClick={() => alert('ΠΊΠ»ΠΈΠΊ')}>
        {this.props.value}
      </button>
    );
  }
}

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

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ render ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Square для отобраТСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ значСния из состояния ΠΏΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅:

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

ПослС этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ‚Π΅Π³ <button>, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ ΠΈΠ·Β ΠΌΠ΅Ρ‚ΠΎΠ΄Π° render ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Square, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

class Square extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      value: null,
    };
  }

  render() {
    return (
      <button
        className="square"        onClick={() => this.setState({value: 'X'})}      >
        {this.state.value}      </button>
    );
  }
}

Вызывая this.setState ΠΈΠ·Β ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° onClick (ΠΊΠ°ΠΊ это описано Π²Β ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ render), ΠΌΡ‹Β Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ React, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ΡŒ Square ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅ ΠΏΠΎΒ <button>. ПослС обновлСния, this.state.value Π²Π½ΡƒΡ‚Ρ€ΠΈ Square станСт X, поэтому Π½Π°Β ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΌΡ‹Β ΡƒΠ²ΠΈΠ΄ΠΈΠΌ X. Если Π²Ρ‹Β ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎΒ Π»ΡŽΠ±ΠΎΠΌΡƒ Square, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ X.

Когда Π²Ρ‹Β Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ setState Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, React Ρ‚Π°ΠΊΒ ΠΆΠ΅ автоматичСски обновляСт Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ этого шага

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ React Devtools для Chrome ΠΈΒ Firefox позволяСт Π²Π°ΠΌ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° вашСго Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

React Devtools

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ React DevTools позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ пропсы и состояниС Π²Π°ΡˆΠΈΡ… React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

ПослС установки React DevTools, Π²Ρ‹Β ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ на любой элСмСнт страницы ΠΈΒ Π½Π°ΠΆΠ°Ρ‚ΡŒ Inspect (ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠ΄), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Π’ΠΊΠ»Π°Π΄ΠΊΠΈ React (Β«βš›οΈ ComponentsΒ» ΠΈΒ Β«βš›οΈ ProfilerΒ») появятся справа. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Β«βš›οΈοΈ ComponentsΒ» для просмотра Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ Π½Π°Β CodePen Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ нСсколько дСйствий:

  1. Π’ΠΎΠΉΡ‚ΠΈ ΠΈΠ»ΠΈ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΏΠΎΡ‡Ρ‚Ρƒ (трСбуСтся для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ от спама).
  2. ΠΠ°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ForkΒ».
  3. ΠΠ°ΠΆΠ°Ρ‚ΡŒ Β«Change ViewΒ» ΠΈΒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Β«Debug modeΒ».
  4. Π’Β ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΉΡΡ Π½ΠΎΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ у вас Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹

Π’Π΅ΠΏΠ΅Ρ€ΡŒ у нас Π΅ΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ элСмСнты для создания ΠΈΠ³Ρ€Ρ‹ крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ. Для ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠΎΡ‡Π΅Ρ€Ρ‘Π΄Π½ΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Β«XΒ» ΠΈΒ Β«OΒ», Π°Β Ρ‚Π°ΠΊΠΆΠ΅ способ опрСдСлСния побСдитСля.

ΠŸΠΎΠ΄ΡŠΡ‘ΠΌ состояния

БСйчас ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Square Ρ…Ρ€Π°Π½ΠΈΡ‚ в сСбС состояниС ΠΈΠ³Ρ€Ρ‹. Для выявлСния побСдитСля ΠΌΡ‹Β Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСх 9 ΠΊΠ»Π΅Ρ‚ΠΎΠΊ Π²Β ΠΎΠ΄Π½ΠΎΠΌ мСстС.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹Β ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Board просто запросит ΡƒΒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Square Π΅Π³ΠΎ состояниС. Π₯отя Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π²Β React Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½, ΠΌΡ‹Β Π΅Π³ΠΎ нС одобряСм. Из-Π·Π° этого ΠΊΠΎΠ΄ становится Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΌ, ΠΏΡ€ΠΎΠ²ΠΎΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ошибки и услоТняСт Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³. ВмСсто этого, Π»ΡƒΡ‡ΡˆΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ состояния ΠΈΠ³Ρ€Ρ‹ Π²Β Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Board, Π°Β Π½Π΅Β Π²Β ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Square. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Board ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Square, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ, пСрСдавая ΠΏΡ€ΠΎΠΏ. ΠœΡ‹Β Ρ‚Π°ΠΊ ΡƒΠΆΠ΅ Π΄Π΅Π»Π°Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π»ΠΈ число Π²Β ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ.

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

ΠŸΠΎΠ΄ΡŠΡ‘ΠΌ состояния Π²Β Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Β β€” ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ Π΄Π΅Π»ΠΎ ΠΏΡ€ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π”Π°Π²Π°ΠΉΡ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ случаСм ΠΈΒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ конструктор ΠΊΒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Board и установим Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС Π²Β Π²ΠΈΠ΄Π΅ массива ΠΈΠ·Β 9 элСмСнтов, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ значСниями null. Π­Ρ‚ΠΈ 9 элСмСнтов ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ 9 ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π°ΠΌ:

class Board extends React.Component {
  constructor(props) {    super(props);    this.state = {      squares: Array(9).fill(null),    };  }
  renderSquare(i) {
    return <Square value={i} />;
  }

ПозТС, ΠΏΡ€ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ поля, массив this.state.squares Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

[
  'O', null, 'X',
  'X', 'X', 'O',
  'O', null, null,
]

ΠœΠ΅Ρ‚ΠΎΠ΄ renderSquare Π²Π½ΡƒΡ‚Ρ€ΠΈ Board сСйчас выглядит Ρ‚Π°ΠΊ:

  renderSquare(i) {
    return <Square value={i} />;
  }

Π’Π½Π°Ρ‡Π°Π»Π΅ ΠΌΡ‹Β ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ ΠΈΠ·Β Board ΠΏΡ€ΠΎΠΏ value Π²Π½ΠΈΠ·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΎΡ‚Β 0 Π΄ΠΎΒ 8 Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Square. На другом шагС ΠΌΡ‹Β Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ числа Π·Π½Π°ΠΊΠΎΠΌ Β«XΒ», ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ в собствСнном состоянии Square. ИмСнно поэтому сСйчас Square ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠΏ value, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ Π²Β Π½Π΅Π³ΠΎ ΠΈΠ·Β Board.

ΠœΡ‹Β ΡΠ½ΠΎΠ²Π° Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ пропсов. ИзмСним Board, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Square Π΅Π³ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ('X', 'O' ΠΈΠ»ΠΈ null). ΠœΡ‹Β ΡƒΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ массив squares в конструкторС Board. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ renderSquare, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ из этого массива:

  renderSquare(i) {
    return <Square value={this.state.squares[i]} />;  }

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ этого шага

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Square ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΏ value, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚, Π»ΠΈΠ±ΠΎ 'X' ΠΈΠ»ΠΈ 'O', Π»ΠΈΠ±ΠΎ null для пустых ΠΊΠ»Π΅Ρ‚ΠΎΠΊ.

Π”Π°Π»ΡŒΡˆΠ΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ происходит ΠΏΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π°Β Square. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Board Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΒ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… ΠΊΠ»Π΅Ρ‚ΠΊΠ°Ρ…. Нам Π½ΡƒΠΆΠ΅Π½ способ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Square смоТСт ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ состояниС Board. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ состояниС являСтся ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌ для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π³Π΄Π΅ ΠΎΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, ΠΌΡ‹Β Π½Π΅Β ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ состояниС Board Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ·Β Square.

ВмСсто этого, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΠΌ ΠΈΠ·Β Board Π²Β Square Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΈΒ Π±ΡƒΠ΄Π΅ΠΌ Π΅Ρ‘Β Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ·Β Square, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΒ Ρ‚ΠΎΠΌΡƒ ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ»ΠΈ. ИзмСним ΠΌΠ΅Ρ‚ΠΎΠ΄ renderSquare Π²Β Board-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Π½Π°:

  renderSquare(i) {
    return (
      <Square
        value={this.state.squares[i]}
        onClick={() => this.handleClick(i)}      />
    );
  }

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

ΠœΡ‹Β Ρ€Π°Π·Π±ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ элСмСнт на нСсколько строк для удобства чтСния ΠΈΒ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ скобки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ JavaScript нС вставлял Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой послС return ΠΈΒ Π½Π΅Β Π»ΠΎΠΌΠ°Π» наш код.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹Β ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ Π²Π½ΠΈΠ· Π΄Π²Π° пропса ΠΈΠ·Β Board Π²Β Square: value ΠΈΒ onClick. ΠŸΡ€ΠΎΠΏ onClickΒ β€” это функция, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Square Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅. ВнСсём ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния Π²Β ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Square:

  • Π—Π°ΠΌΠ΅Π½ΠΈΠΌ this.state.value Π½Π°Β this.props.value Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° render.
  • Π—Π°ΠΌΠ΅Π½ΠΈΠΌ this.setState() Π½Π°Β this.props.onClick() Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° render.
  • Π£Π΄Π°Π»ΠΈΠΌ constructor ΠΈΠ·Β Square, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ большС Π½Π΅Β ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π°Β Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ состояния ΠΈΠ³Ρ€Ρ‹.

ПослС этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Square выглядит Ρ‚Π°ΠΊ:

class Square extends React.Component {  render() {    return (
      <button
        className="square"
        onClick={() => this.props.onClick()}      >
        {this.props.value}      </button>
    );
  }
}

ΠŸΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π°Β Square вызываСтся функция onClick, которая Π±Ρ‹Π»Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π° ΠΈΠ·Β Board. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это происходит:

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

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

Атрибут onClick DOM-элСмСнта <button> ΠΈΠΌΠ΅Π΅Ρ‚ для React особоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это встроСнный ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π²Ρ€ΠΎΠ΄Π΅ Square Π²Ρ‹Β ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ пропсы ΠΊΠ°ΠΊ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. ΠœΡ‹Β ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏ Square onClick ΠΈΒ ΠΌΠ΅Ρ‚ΠΎΠ΄ для Board handleClick Π»ΡŽΠ±Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΈΒ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΒ ΠΆΠ΅. Но в React Π΅ΡΡ‚ΡŒ соглашСниС ΠΎΠ±Β ΠΈΠΌΠ΅Π½Π°Ρ…Β β€” on[Имя события] для пропсов, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ… за события, ΠΈΒ handle[Имя события] для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… события.

ΠŸΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π°Β Square ΠΌΡ‹Β Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ handleClick Π΅Ρ‰Ρ‘ Π½Π΅Β ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Π³ΠΎ в класс Board:

ΠΎΠ±Π·ΠΎΡ€ курса, ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ популярности React, ReactDOM ΠΈ JSX / Π‘Π»ΠΎΠ³ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ RUVDS.com / Π₯Π°Π±Ρ€

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅ΠΌ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 5 занятий ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ курса ΠΏΠΎ React для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π» курса Π½Π° английском, состоящий ΠΈΠ· 48 ΡƒΡ€ΠΎΠΊΠΎΠ², ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Scrimba.com. ВозмоТности этой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚, ΡΠ»ΡƒΡˆΠ°Ρ Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ, ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ воспроизвСдСниС Π½Π° ΠΏΠ°ΡƒΠ·Ρƒ ΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΎΠΊΠ½Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ вСдётся дСмонстрация, ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΊΠΎΠ΄ΠΎΠΌ. ΠšΡƒΡ€Ρ показался Π½Π°ΠΌ интСрСсным, ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ пСрСвСсти Π΅Π³ΠΎ Π½Π° русский ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ.

ПолагаСм, этот курс Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½ всСм, ΠΊΡ‚ΠΎ, Ρ‡Ρ‚ΠΎ называСтся, Β«Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ Π² ReactΒ», Π½ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ этот курс Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π½ΡƒΠΆΠ½Ρ‹ Π½Π΅ΠΌΠ°Π»Ρ‹Π΅ силы ΠΈ врСмя, поэтому ΠΌΡ‹, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ запускС этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ всСм ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠΌ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ курс ΠΈ ΠΏΠΎΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² опросС ΠΎ цСлСсообразности Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°.

ЗанятиС 1. ΠžΠ±Π·ΠΎΡ€ курса ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π΅Π³ΠΎ освоСнию

β†’ ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»

Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° курс Β«ΠžΡΠ½ΠΎΠ²Ρ‹ ReactΒ». МСня Π·ΠΎΠ²ΡƒΡ‚ Π‘ΠΎΠ± Π—ΠΈΡ€ΠΎΠ»Π», я расскаТу Π²Π°ΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых популярных Π² ΠΌΠΈΡ€Π΅ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ². Π― Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π² области ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ образования ΡƒΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚, Π² частности, сСйчас Ρ€ΡƒΠΊΠΎΠ²ΠΎΠΆΡƒ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ процСсса Π² V School.

β–Πž процСссС освоСния курса

Π—Π° Π³ΠΎΠ΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… курсов, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ всСм ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠΌ быстро ΠΎΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ слоТныС Π²Π΅Ρ‰ΠΈ, я Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» собствСнный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ, Π΄ΡƒΠΌΠ°ΡŽ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ.

Для Π½Π°Ρ‡Π°Π»Π° Ρ…ΠΎΡ‡Ρƒ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ самый Π»Ρ‘Π³ΠΊΠΈΠΉ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΆΠ°Π»Π΅Ρ‚ΡŒ сил ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ β€” Ρ‚ΠΎ Ρ‡Π΅ΠΌ Ρ€Π°Π½ΡŒΡˆΠ΅ Π²Ρ‹ Π½Π°Ρ‡Π½Ρ‘Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ сами, ΠΈ Ρ‡Π΅ΠΌ Ρ‡Π°Ρ‰Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ это Π΄Π΅Π»Π°Ρ‚ΡŒ β€” Ρ‚Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ ваши ΡˆΠ°Π½ΡΡ‹ Π½Π° успСх.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° я Π²Π²ΠΎΠΆΡƒ Π² курс Π΄Π΅Π»Π° учащихся V School, я ΠΏΡ€ΠΈΠ²ΠΎΠΆΡƒ ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· собствСнной ΠΆΠΈΠ·Π½ΠΈ. НСдавно мСня потянуло Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ. Π― Ρ‡ΠΈΡ‚Π°Π» ΠΊΠ½ΠΈΠ³ΠΈ, смотрСл бСсчислСнныС Π²ΠΈΠ΄Π΅ΠΎ Π½Π° YouTube, ΠΌΠ½Π΅ Π΄Π°Ρ€ΠΈΠ»ΠΈ инструмСнты. Но я Π½Π΅ ΠΌΠΎΠ³ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ достойного Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ взял инструмСнты Π² Ρ€ΡƒΠΊΠΈ. Волько ΠΌΠ½ΠΎΠ³ΠΈΠ΅ часы, ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΈΠ»ΠΎΠΉ ΠΈ Π½Π°ΠΆΠ΄Π°Ρ‡Π½ΠΎΠΉ Π±ΡƒΠΌΠ°Π³ΠΎΠΉ, Π½Π° склСиваниС ΠΈ свинчиваниС Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ ΠΌΠ½Π΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ†Π΅Π»ΠΈ. БобствСнно говоря, ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ устроСно ΠΈ освоСниС всСго, Ρ‡Π΅Π³ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ React? ΠŸΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ занятий этого курса содСрТат упраТнСния. ΠžΠΆΠΈΠ΄Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΡΡ‚Π°Ρ€Π°Π΅Ρ‚Π΅ΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΡ… ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Если ΠΆΠ΅ Π²Ρ‹, ознакомившись с Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Ρ‚ΡƒΡ‚ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘Ρ‚Π΅ ΠΊ описанию Π΅Π³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ‚ΠΎ Π²Ρ‹, Π½Π° самом Π΄Π΅Π»Π΅, Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ самый слоТный способ изучСния React. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ ΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° Π²Π°ΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ°Ρ‚ ΠΏΠΎΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ β€” Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Ρƒ Π½Π° сСбя ΠΈ ΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ всё, ΠΎ Ρ‡Ρ‘ΠΌ ΡƒΠ·Π½Π°Ρ‘Ρ‚Π΅. Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠ΄ΠΎΠΌ. Π’ частности, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡƒΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ освоитС React β€” создавайтС Π½Π΅Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ интСрСсно, испытывайтС всё, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½ΠΎ ΠΈΡΠΏΡ‹Ρ‚Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ нСприятности, ΠΊΠ°ΠΊ Β«tutorial hellΒ».

Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΡŒΠ½ΠΎΠΌ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈ Π² ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°. Π­Ρ‚ΠΎ β€” ваТнСйшиС Π²Π΅Ρ‰ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎ-настоящСму Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Π΅ΠΌΡƒ Π²Ρ‹ ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ. НС рСкомСндуСтся с Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ Π±Ρ€ΠΎΡΠ°Ρ‚ΡŒΡΡ Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ курса. Π­Ρ‚ΠΎ β€” ΠΏΡƒΡ‚ΡŒ Π² Ρ‚ΠΎΡ‚ самый Β«tutorial hellΒ». ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ Π²Ρ‹ ΠΈ ΠΏΡ€Π°Π²Π΄Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡƒΠ·Π½Π°Π»ΠΈ, Π° Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΆΠ΅ Π²Ρ‹ просто Π½Π΅ Π² состоянии Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Β«ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈΒ».

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°ΡΡΡŒ ΠΏΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°ΠΌ, Π΄Π΅Π»Π°ΠΉΡ‚Π΅ частыС ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Ρ‹. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ Π½Π΅ ΠΎ пСриодичСских ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Π°Ρ… Π² 5-10 ΠΌΠΈΠ½ΡƒΡ‚, Π° ΠΊΠΎΠ΅ ΠΎ Ρ‡Ρ‘ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΠΌ. Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Ρƒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ², ΠΏΠΎΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΉΡ‚Π΅ΡΡŒ Π² ΠΈΡ… использовании, Π° Π·Π°Ρ‚Π΅ΠΌ Π΄Π΅Π½Ρ‘ΠΊ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΡ…Π½ΠΈΡ‚Π΅. Когда Π²Ρ‹ Π²Π΅Ρ€Π½Ρ‘Ρ‚Π΅ΡΡŒ ΠΊ курсу, Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΡƒΠΆΠ΅ ΠΈΠ·ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ курс, ΡƒΠΉΠ΄Ρ‘Ρ‚ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½ΠΎ это Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ Π±Π»Π°Π³ΠΎΡ‚Π²ΠΎΡ€Π½ΠΎ скаТСтся Π½Π° вашСм ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π² Π΄Π²ΡƒΡ… словах обсудим Ρ‚ΠΎ, Ρ‡Π΅ΠΌΡƒ Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ, освоив этот курс.

▍Бостав курса ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования

Π’ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ основных Ρ‚Π΅ΠΌ курса:

  • ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Говоря ΠΎ React, нСльзя ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ обсуТдСния ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² React β€” это основной ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ для создания Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² HTML-ΠΊΠΎΠ΄Π°, подходящих для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования. И практичСски всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅, ΠΎ Ρ‡Ρ‘ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для построСния Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
  • JSX. Π­Ρ‚ΠΎ β€” синтаксичСскоС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ JavaScript, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ возмоТности HTML ΠΈ JavaScript.
  • Бтилизация ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Бтилизация позволяСт ΠΏΡ€ΠΈΠ΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ внСшний Π²ΠΈΠ΄.
  • Бвойства ΠΈ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Бвойства ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ.
  • БостояниС. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ состояния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ для управлСния ΠΈΠΌΠΈ.
  • ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий. Бобытия ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°Π»Π°Π΄ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ Π²Π·Π°ΠΈΠΌΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
  • ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ программисту Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ события, происходящиС с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ.
  • Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… API с использованиСм ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTP.
  • Π Π°Π±ΠΎΡ‚Π° с Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΏΠΎ этому курсу, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ HTML, CSS ΠΈ JavaScript (ES6).

ЗанятиС 2. Π£Ρ‡Π΅Π±Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹

β†’ ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»

Π’ процСссС прохоТдСния этого курса Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹. ВзглянСм Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ….

НашСй ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ стандартноС TODO-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

TODO-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠœΠΎΠΆΠ΅Ρ‚ ΠΈ выглядит ΠΎΠ½ΠΎ скучновато, Π½ΠΎ Π² Ρ…ΠΎΠ΄Π΅ Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ задСйствовано мноТСство возмоТностСй, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Π² курсС. По элСмСнтам списка Π΄Π΅Π» ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‰Π΅Π»ΠΊΠ°Ρ‚ΡŒ, отмСчая ΠΈΡ… ΠΊΠ°ΠΊ Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½Π½Ρ‹Π΅, ΠΈ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ мСняСтся ΠΈΡ… внСшний Π²ΠΈΠ΄.

ΠžΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ Π΄Π΅Π»Π° Π² TODO-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ

А Π²ΠΎΡ‚ β€” наш курсовой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ β€” Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΌΠ΅ΠΌΠΎΠ².

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΌΠ΅ΠΌΠΎΠ²

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с этим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² поля Top Text ΠΈ Bottom Text вводят тСксты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, соотвСтствСнно, ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ Π² Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ ΠΈ ниТнюю Ρ‡Π°ΡΡ‚ΡŒ изобраТСния. По Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Gen ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΌΠ° ΠΈΠ· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ API ΠΈ добавляСт ΠΊ Π½Π΅ΠΌΡƒ тСкст. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого прилоТСния:

Π“ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅ΠΌ

ЗанятиС 3. Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ React ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π΅Π³ΠΎ стоит ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ?

β†’ ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»

Π—Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ React, Ссли ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° чистом JavaScript? Если Π²Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΠ΅Ρ‚Π΅ΡΡŒ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ, Ρ‚ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ React позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ быстрыС прилоТСния, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ достиТимо с использованиСм лишь JavaScript. Π­Ρ‚ΠΎ достигаСтся Π·Π° счёт использования Π² React Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Virtual DOM. ΠœΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Π²Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² подробности ΠΎ Virtual DOM, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с этой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ это Π²ΠΈΠ΄Π΅ΠΎ.

БСйчас Π½Π°ΠΌ достаточно Π·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Virtual DOM ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Π΅Π±-прилоТСниям Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС, Ρ‡Π΅ΠΌ Ссли Π±Ρ‹ ΠΏΡ€ΠΈ ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ использовался ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ JS. Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ ΠΏΠΎ-настоящСму Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ прСимущСство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄Π°Ρ‘Ρ‚ Π½Π°ΠΌ React β€” это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, подходящиС для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π£ нас имССтся стандартный элСмСнт navbar (навигационная панСль) ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Bootstrap.

Навигационная панСль

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

Π’Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ React ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π±Ρ€Π°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ HTML-ΠΊΠΎΠ΄Π°, ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ ΠΈΡ… Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΈ, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½Π° страницу эти Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² состав страниц Π½Π΅Ρ‡Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ особых HTML-Ρ‚Π΅Π³ΠΎΠ², ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π½Π° Π½ΠΈΡ…. Π’ нашСм случаС, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½Π° страницу сорок строк HTML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ, достаточно Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² Π΅Ρ‘ состав ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, содСрТащий эту Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ. Π£ нас ΠΎΠ½ называСтся MySweetNavbar.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π²Π΅Π±-страниц

ΠΠ°Π·Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Как Π²ΠΈΠ΄Π½ΠΎ, Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ страницы, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…, Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»Π΅Π³Ρ‡Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ сразу Π²ΠΈΠ΄ΠΈΡ‚ ΠΎΠ±Ρ‰ΡƒΡŽ структуру Ρ‚Π°ΠΊΠΎΠΉ страницы. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈΠ· содСрТимого Ρ‚Π΅Π³Π° <body>, Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части страницы находится навигационная панСль (MySweetNavbar), Π² сСрСдинС Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ основноС содСрТимоС (MainContent), Π° Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части страницы имССтся ΠΏΠΎΠ΄Π²Π°Π» (MySweetFooter).

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‚ структуру ΠΊΠΎΠ΄Π° HTML-страниц. Они Π΅Ρ‰Ρ‘ ΠΈ подходят для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования. Как Π±Ρ‹Ρ‚ΡŒ, Ссли Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… страницах Π½ΡƒΠΆΠ½Π° ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ навигационная панСль? Как Π±Ρ‹Ρ‚ΡŒ, Ссли Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… страницах Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°? Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли всё Ρ‚Π° ΠΆΠ΅ панСль ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° мноТСствС страниц, Π° Π² Π½Π΅Ρ‘ Π½ΡƒΠΆΠ½ΠΎ внСсти Π½Π΅ΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅? Π‘Π΅Π· использования ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π°Ρ‚ΡŒ достойныС ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° эти ΠΈ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ вопросы.

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ популярности React ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ занимаСтся Facebook. Π­Ρ‚ΠΎ, ΠΏΠΎ мСньшСй ΠΌΠ΅Ρ€Π΅, ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ React Π½Π° постоянной основС, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ программисты. ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ React, ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ это опСнсорсный, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° GitHub, ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π΅Ρ‰Ρ‘ ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΊΠ»Π°Π΄ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π΄Π΅Π»Π°ΡŽΡ‚ мноТСство сторонних Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Всё это позволяСт Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ React, Π² ΠΎΠ±ΠΎΠ·Ρ€ΠΈΠΌΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠΈΡ‚ΡŒ ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ.

Говоря ΠΎ React, ΠΈ, Π² частности, ΠΎ Ρ‚ΠΎΠΌ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ стоит ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ, нСльзя Π½Π΅ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎΠ± ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΌ Ρ€Ρ‹Π½ΠΊΠ΅ Ρ‚Ρ€ΡƒΠ΄Π°, связанном с этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ. Π’ наши Π΄Π½ΠΈ React-спСциалисты ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ устойчивым спросом. Если Π²Ρ‹ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚Π΅ React с Ρ†Π΅Π»ΡŒΡŽ Π½Π°ΠΉΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² сфСрС Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ ΠΏΡƒΡ‚ΠΈ.

ЗанятиС 4. Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ReactDOM ΠΈ JSX

β†’ ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π΅ React-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с использованиСм ReactDOM ΠΈ Π·Π°Ρ‚Ρ€ΠΎΠ½Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ JSX. Но, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, Π³Π΄Π΅ этот ΠΊΠΎΠ΄ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ.

▍БрСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с React-ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, Π»ΡƒΡ‡ΡˆΠ΅ всСго Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ Π½Π°ΠΌΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρƒ React.js: понятноС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, Π² частности, ΠΊ Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Ρƒ ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ React-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. А ΠΈΠΌΠ΅Π½Π½ΠΎ, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ экспСримСнтам, Π½ΡƒΠΆΠ½ΠΎ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ create-react-app, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, послС Ρ‡Π΅Π³ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°. Если Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚ΠΎ ΠΈΡ… ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ прямо Π² стандартный Ρ„Π°ΠΉΠ» index.js, ΡƒΠ±Ρ€Π°Π² ΠΈΠ· Π½Π΅Π³ΠΎ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉΡΡ Π² Π½Ρ‘ΠΌ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π² Π΅Π³ΠΎ.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„Π°ΠΉΠ»Π° index.html Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, создаваСмом create-react-app, соотвСтствуСт Π΅Π³ΠΎ содСрТимому Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ курсС. Π’ частности, Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π½Π° страницС элСмСнта <div> с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ root.

Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ совсСм простых экспСримСнтов, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² использовании ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ codepen.io. НапримСр, Π²ΠΎΡ‚ дСмонстрационный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ React-прилоТСния Дэна Абрамова. Π‘ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Codepen-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΊ экспСримСнтам с React Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ Π½Π΅ΠΌΡƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ react ΠΈ react-dom (это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‰Ρ‘Π»ΠΊΠ½ΡƒΠ² ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Settings Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части страницы, пСрСйдя Π² появившСмся ΠΎΠΊΠ½Π΅ Π² Ρ€Π°Π·Π΄Π΅Π» JavaScript ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ² ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ найдя ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнной систСмы поиска, Π½ΡƒΠΆΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ).

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

β–ΠŸΠ΅Ρ€Π²Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

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

import React from "react"

А Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ react-dom:

import ReactDOM from "react-dom"

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ render() ReactDOM для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π° экран:

ReactDOM.render()

Если Π²Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для экспСримСнтов ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, созданный срСдствами create-react-app, Ρ‚ΠΎ сСйчас Π΅Π³ΠΎ Ρ„Π°ΠΉΠ» index.js (ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Π² VSCode), Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС.
Π’Π²ΠΎΠ΄ ΠΊΠΎΠ΄Π° Π² index.js

Если Ρƒ вас Π·Π°ΠΏΡƒΡ‰Π΅Π½ сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° страница http://localhost:3000/, Ρ‚ΠΎ Π²Ρ‹, сохранив Ρ‚Π°ΠΊΠΎΠΉ index.js, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚Π°ΠΌ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…. Π­Ρ‚ΠΎ, Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠΎΠΊΠ° Π½Π΅ сообщили систСмС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΡƒΠ΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ вывСсти ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ render().

На самом Π΄Π΅Π»Π΅, сСйчас ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с Ρ‚Π΅ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ написали. А ΠΈΠΌΠ΅Π½Π½ΠΎ, здСсь ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ React, ΠΏΠΎΡ‚ΠΎΠΌ β€” ReactDOM β€” для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ возмоТностями этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π½Π° экран.

ΠœΠ΅Ρ‚ΠΎΠ΄ render() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ вывСсти, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅ΠΌ мСстом, ΠΊΡƒΠ΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ вывСсти. Если это Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ псСвдокода, Ρ‚ΠΎ получится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ReactDOM.render(ЧВО Π’Π«Π’ΠžΠ”Π˜Π’Π¬, ΠšΠ£Π”Π Π’Π«Π’ΠžΠ”Π˜Π’Π¬)

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

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ эта страница ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ.

<html>
 Β Β Β <head>
 Β Β Β Β Β Β Β <link rel="stylesheet" href="style.css">
 Β Β Β </head>
 Β Β Β <body>
 Β Β Β Β Β Β Β <div></div>
 Β Β Β Β Β Β Β <script src="index.js"></script>
 Β Β Β </body>
</html>

Π’ΡƒΡ‚ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ всС Π±Π°Π·ΠΎΠ²Ρ‹Π΅ элСмСнты HTML-страницы, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚Π΅Π³ <link> ΠΈ Ρ‚Π΅Π³ <script>.

Если Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ create-react-app, Ρ‚ΠΎ страница index.html Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π°Ρ‡Π΅. Π’ частности, Π² Π΅Ρ‘ ΠΊΠΎΠ΄Π΅ Π½Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° index.js. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ сборкС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° связь index.html ΠΈ index.js осущСствляСтся автоматичСски.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° элСмСнт <div> с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ root. ΠœΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Ρ‚Π΅Π³Π°ΠΌΠΈ этого элСмСнта React размСстит всё, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ создадим. Π­Ρ‚ΠΎΡ‚ элСмСнт ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ для всСго нашСго прилоТСния.

Если Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ index.js ΠΈ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ render() ReactDOM, Π΅Π³ΠΎ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ, мСстом, ΠΊΡƒΠ΄Π° Π½Π°Π΄ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° элСмСнт <div> с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ root. Π’ΡƒΡ‚ ΠΌΡ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ JavaScript, послС Ρ‡Π΅Π³ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Render Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

ReactDOM.render(ЧВО Π’Π«Π’ΠžΠ”Π˜Π’Π¬, document.getElementById("root"))

ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ render() Π±Π΅Ρ€Ρ‘Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ описываСт, Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ мСсто. Π’Π΅ΠΏΠ΅Ρ€ΡŒ займёмся этим ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ. Начнём с простого элСмСнта <h2>. И, ΠΊΠ°ΠΊ это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ написании ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ тСкст Hello world!:

ReactDOM.render(<h2>Hello world!</h2>, document.getElementById("root"))

Если Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ страницу Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Ρ‚ΠΎ Π½Π° Π½Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½, Π² качСствС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ тСкст.
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π’ΡƒΡ‚ Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ вопрос ΠΎ Ρ‚ΠΎΠΌ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ это ΠΌΡ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ описаниС HTML-элСмСнта Π² Ρ‚ΠΎ мСсто, Π³Π΄Π΅ оТидаСтся Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ JavaScript-ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π’Π΅Π΄ΡŒ JavaScript, ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ²ΡˆΠΈΡΡŒ с Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ <h2>Hello world!</h2>, вСроятно, Ρ€Π΅ΡˆΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ этого выраТСния прСдставляСт собой ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «мСньшС», дальшС, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΠΈΠ΄Ρ‘Ρ‚ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΏΠΎΡ‚ΠΎΠΌ β€” ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ сравнСния «большС». JavaScript Π½Π΅ распознаСт Π² этой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов HTML-элСмСнт, Π΄Π° ΠΎΠ½ ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ этого Π΄Π΅Π»Π°Ρ‚ΡŒ.

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

ΠœΡ‹ Π²Π²Π΅Π»ΠΈ довольно ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΈ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, Π½ΠΎ Π² Π½Π΅Π΄Ρ€Π°Ρ… React ΠΏΡ€ΠΈ Π΅Ρ‘ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ происходит ΠΌΠ½ΠΎΠ³ΠΎ всСго интСрСсного. Π’Π°ΠΊ, эта инструкция прСобразуСтся Π² Π΅Ρ‘ Π²Π΅Ρ€ΡΠΈΡŽ Π½Π° JavaScript, осущСствляСтся Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ HTML-ΠΊΠΎΠ΄Π°, хотя Π² Π΄Π΅Ρ‚Π°Π»ΠΈ этого процСсса ΠΌΡ‹ Ρ‚ΡƒΡ‚ Π½Π΅ вдаёмся. ИмСнно поэтому Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ react-dom, Π½ΠΎ ΠΈ react, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° React β€” это ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ позволяСт Π½Π°ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ JSX ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ JSX-конструкции Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ оТидаСтся. Если ΠΈΠ· нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΡƒΠ±Ρ€Π°Ρ‚ΡŒ строку import React from "react", ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» скрипта ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ страницу, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ сообщСниС ΠΎΠ± ошибкС. Π’ частности, create-react-app сообщит Π½Π°ΠΌ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±Π΅Π· доступа ΠΊ React ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ JSX нСльзя ('React' must be in scope when using JSX Β react/react-in-jsx-scope).

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ хотя Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ React Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° примСняСтся для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JSX.

Π•Ρ‰Ρ‘ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΡΠ°ΡŽΡ‰Π΅Π΅ΡΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JSX, Π½Π° Ρ‡Ρ‚ΠΎ я Ρ…ΠΎΡ‡Ρƒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ вашС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ нСльзя Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ΡŒ JSX-элСмСнты, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ послС элСмСнта <h2> Π½ΡƒΠΆΠ½ΠΎ вывСсти элСмСнт <p>. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΎΠΉ конструкциСй:

ReactDOM.render(<h2>Hello world!</h2><p>This is a paragraph</p>, document.getElementById("root")) //Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ

Если послС этого ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ страницу β€” Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ сообщСниС ΠΎΠ± ошибкС (Π² create-react-app это выглядит ΠΊΠ°ΠΊ Parsing error: Adjacent JSX elements must be wrapped in an enclosing tag). Π‘ΡƒΡ‚ΡŒ этой ошибки Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ‘Ρ€Π½ΡƒΡ‚Ρ‹ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ элСмСнт. Π’ΠΎ, Ρ‡Ρ‚ΠΎ получится Π² ΠΈΡ‚ΠΎΠ³Π΅, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ элСмСнт с двумя Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² Π½Π΅Π³ΠΎ элСмСнтами.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ наш ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π», ΠΎΠ±Π΅Ρ€Π½Ρ‘ΠΌ ΠΊΠΎΠ΄ <h2>Hello world!</h2><p>This is a paragraph</p> Π² элСмСнт <div>:

ReactDOM.render(<div><h2>Hello world!</h2><p>This is a paragraph</p></div>, document.getElementById("root"))

Если Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ страницу, Ρ‚ΠΎ всё Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ оТидаСтся.
Π”Π²Π° HTML-элСмСнта Π½Π° страницС

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ½ΡƒΡ‚ΡŒ ΠΊ JSX, потрСбуСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, Π½ΠΎ послС этого Π΅Π³ΠΎ использованиС окаТСтся Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»Π΅Π³Ρ‡Π΅ ΠΈ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅, Ρ‡Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π° с HTML-элСмСнтами с использованиСм стандартных срСдств JavaScript. НапримСр, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ стандартными срСдствами ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ элСмСнт <p> ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ содСрТимоС, понадобится ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

var myNewP = document.createElement("p")
myNewP.innerHTML = "This is a paragraph."

ΠŸΠΎΡ‚ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊ элСмСнту, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π½Π° страницС. Π­Ρ‚ΠΎ β€” ΠΎΠ±Ρ€Π°Π·Π΅Ρ† ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ программирования, Π° Ρ‚ΠΎ ΠΆΠ΅ самоС, благодаря JSX, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π² Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌ стилС.

ЗанятиС 5. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌ. ReactDOM ΠΈ JSX

β†’ ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»

На ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ занятии Π²Ρ‹ познакомились с ReactDOM ΠΈ JSX, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ знания Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

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

Если Π²Ρ‹ чувствуСтС, Ρ‡Ρ‚ΠΎ Π½Π΅ ΡΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ β€” Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ Π·Π°Π½ΡΡ‚ΠΈΡŽ, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ снова.

▍ЗаданиС

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ React-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° страницу ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ список (Ρ‚Π΅Π³ <ul>). Π­Ρ‚ΠΎΡ‚ список Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ элСмСнта (<li>) с Π»ΡŽΠ±Ρ‹ΠΌ тСкстом.

β–ΠŸΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ

Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π°Π΄ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… для Π²Ρ‹Π²ΠΎΠ΄Π° элСмСнтов, сформированных с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ JSX-ΠΊΠΎΠ΄Π°, Π½Π° страницу.Π Π΅ΡˆΠ΅Π½ΠΈΠ΅Π”Π»Ρ Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. А ΠΈΠΌΠ΅Π½Π½ΠΎ β€” Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ react, ΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ собираСмся Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π° страницу, ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ react-dom.

import React from "react"
import ReactDOM from "react-dom"

ПослС этого Π½Π°Π΄ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ render() ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ReactDOM, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π΅ΠΌΡƒ описаниС элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ вывСсти Π½Π° страницу ΠΈ ΡƒΠΊΠ°Π·Π°Π² мСсто Π½Π° страницС, ΠΊΡƒΠ΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π²Π΅Π΄Π΅Π½ этот элСмСнт.

ReactDOM.render(
 Β <ul>
 Β Β Β <li>1</li>
 Β Β Β <li>2</li>
 Β Β Β <li>3</li>
 Β </ul>,
 Β document.getElementById("root")
)

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ β€” это описаниС ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ списка, Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” элСмСнт страницы, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ β€” Ρ‚Π΅Π³ <div> с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ root. HTML-ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Π² ΠΎΠ΄Π½Ρƒ строку, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π² нашСм Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

Π’ΠΎΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:

import React from "react"
import ReactDOM from "react-dom"

ReactDOM.render(
 Β <ul>
 Β Β Β <li>1</li>
 Β Β Β <li>2</li>
 Β Β Β <li>3</li>
 Β </ul>,
 Β document.getElementById("root")
)

Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Ρ‹Π΅ конструкции, Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° render() большиС ΠΎΠ±ΡŠΡ‘ΠΌΡ‹ HTML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ.

Π˜Ρ‚ΠΎΠ³ΠΈ

БСйчас, послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ознакомились с ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ занятиями курса ΠΏΠΎ React, просим вас ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ участиС Π² опросС.

Бпасибо за вниманиС!

β†’ Π§Π°ΡΡ‚ΡŒ 1: ΠΎΠ±Π·ΠΎΡ€ курса, ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ популярности React, ReactDOM ΠΈ JSX

β†’ Π§Π°ΡΡ‚ΡŒ 2: Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

β†’ Π§Π°ΡΡ‚ΡŒ 3: Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², структура ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²

β†’ Π§Π°ΡΡ‚ΡŒ 4: Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

β†’ Π§Π°ΡΡ‚ΡŒ 5: Π½Π°Ρ‡Π°Π»ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ TODO-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, основы стилизации

β†’ Π§Π°ΡΡ‚ΡŒ 6: ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… особСнностях курса, JSX ΠΈ JavaScript

β†’ Π§Π°ΡΡ‚ΡŒ 7: встроСнныС стили

β†’ Π§Π°ΡΡ‚ΡŒ 8: ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ TODO-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, знакомство со свойствами ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

β†’ Π§Π°ΡΡ‚ΡŒ 9: свойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

β†’ Π§Π°ΡΡ‚ΡŒ 10: ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ со свойствами ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ стилизации

β†’ Π§Π°ΡΡ‚ΡŒ 11: динамичСскоС Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ массивов map

β†’ Π§Π°ΡΡ‚ΡŒ 12: ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌ, Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ этап Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ TODO-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ

β†’ Π§Π°ΡΡ‚ΡŒ 13: ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, основанныС Π½Π° классах

β†’ Π§Π°ΡΡ‚ΡŒ 14: ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌ ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ, основанным Π½Π° классах, состояниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

β†’ Π§Π°ΡΡ‚ΡŒ 15: ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌΡ‹ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с состояниСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

β†’ Π§Π°ΡΡ‚ΡŒ 16: Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚Ρ‹ΠΉ этап Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ TODO-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий

β†’ Π§Π°ΡΡ‚ΡŒ 17: пятый этап Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ TODO-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, модификация состояния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

β†’ Π§Π°ΡΡ‚ΡŒ 18: ΡˆΠ΅ΡΡ‚ΠΎΠΉ этап Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ TODO-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ

β†’ Π§Π°ΡΡ‚ΡŒ 19: ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

β†’ Π§Π°ΡΡ‚ΡŒ 20: ΠΏΠ΅Ρ€Π²ΠΎΠ΅ занятиС ΠΏΠΎ условному Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Ρƒ

β†’ Π§Π°ΡΡ‚ΡŒ 21: Π²Ρ‚ΠΎΡ€ΠΎΠ΅ занятиС ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌ ΠΏΠΎ условному Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Ρƒ

β†’ Π§Π°ΡΡ‚ΡŒ 22: сСдьмой этап Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ TODO-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников

β†’ Π§Π°ΡΡ‚ΡŒ 23: ΠΏΠ΅Ρ€Π²ΠΎΠ΅ занятиС ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ

β†’ Π§Π°ΡΡ‚ΡŒ 24: Π²Ρ‚ΠΎΡ€ΠΎΠ΅ занятиС ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ

β†’ Π§Π°ΡΡ‚ΡŒ 25: ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ

β†’ Π§Π°ΡΡ‚ΡŒ 26: Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Container/Component

β†’ Π§Π°ΡΡ‚ΡŒ 27: курсовой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

Π£Ρ‡Π΅Π±Π½ΠΈΠΊ: Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² React

Π”Π°Π½Π½Ρ‹ΠΉ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ Π½Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π·Π½Π°Π½ΠΈΠΉ React.

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Π½Π°Ρ‡Π½Ρ‘ΠΌ

Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ создадим Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΈΠ³Ρ€Ρƒ. Π£ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ
соблазн ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹ Π½Π΅ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΈΠ³Ρ€Ρ‹ — Π½Π΅ Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΎΠ΅ поспСшноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ здСсь ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅, ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰Π΅Π΅
Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для создания Π»ΡŽΠ±Ρ‹Ρ… React ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° ΠΈΡ… освоСниС даст Π²Π°ΠΌ
Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ React.

Подсказка

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

Π£Ρ‡Π΅Π±Π½ΠΈΠΊ состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²:

  • Установка. Даст Π²Π°ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΡƒ.

  • ΠžΠ±Π·ΠΎΡ€. ΠŸΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ вас с основами React: ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, свойствами ΠΈ состояниСм.

  • Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹. Научит вас Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнным ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² React.

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Time Travel. Даст Π²Π°ΠΌ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… прСимущСств React.

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

Π’ΠΎ врСмя изучСния ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ΄, Π½ΠΎ
ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Ρ€Π°Π·Π²ΠΈΡ‚ΡŒ ΠΌΡ‹ΡˆΠ΅Ρ‡Π½ΡƒΡŽ
ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ происходящСго.

Π§Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ?

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

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

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

Наш ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг — произвСсти Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ настройки, Ρ‡Ρ‚ΠΎΠ±Ρ‹
Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ.

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

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

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

Установка

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

React ΠΈΠ»ΠΈ Angular ΠΈΠ»ΠΈ Vue.js β€” Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ? / Π₯Π°Π±Ρ€

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ JavaScript Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ быстрыми Ρ‚Π΅ΠΌΠΏΠ°ΠΌΠΈ, ΠΈ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сСгодня ΠΌΡ‹ часто обновляСм вСрсии Angular, React ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π½Π° этом Ρ€Ρ‹Π½ΠΊΠ΅ β€” Vue.js.

ΠœΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ основными прСимущСствами ΠΈ нСдостатками ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΈ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для использования.

ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы Angular

Angular β€” это супСргСроичСская срСда JavaScript MVVM, основанная Π² 2009 Π³ΠΎΠ΄Ρƒ, которая ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для создания ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° Angular:

  • Angular ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСстС с Typescript. Он ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ для этого.
  • Angular-language-service β€” обСспСчиваСт ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ возмоТности ΠΈ Π°Π²Ρ‚ΠΎΠ·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ шаблона HTML-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.
  • НовыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ generation Angular, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ npm ΠΈΠ· CLI, generation, ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ Angular.
  • ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ докумСнтация, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всю Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ прибСгая ΠΊ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠ»Π»Π΅Π³. Однако это Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для обучСния.
  • ΠžΠ΄Π½ΠΎΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΡΡ привязка Π΄Π°Π½Π½Ρ‹Ρ…, которая обСспСчиваСт ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ прилоТСния, Ρ‡Ρ‚ΠΎ сводит ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ риск Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ошибок.
  • MVVM (Model-View-ViewModel), которая позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ….
  • Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ зависимостСй ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², связанных с модулями ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π² Ρ†Π΅Π»ΠΎΠΌ.
  • Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданныС для большой ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

НСдостатки Angular:

  • Π Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… структур (Injectables, Components, Pipes, Modules ΠΈ Ρ‚. Π΄.) услоТняСт ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с React ΠΈ Vue.js, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Β«ComponentΒ».
  • ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСдлСнная ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, учитывая Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, это ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Β«ChangeDetectionStrategyΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².


Компании, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Angular: Microsoft, Autodesk, MacDonald’s, UPS, Cisco Solution Partner Program, AT&T, Apple, Adobe, GoPro, ProtonMail, Clarity Design System, Upwork, Freelancer, Udemy, YouTube, Paypal, Nike, Google, Telegram, Weather, iStockphoto, AWS, Crunchbase.

ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы React

React β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JavaScript, разработанная Facebook Π² 2013 Π³ΠΎΠ΄Ρƒ, которая ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для создания соврСмСнных одностраничных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° React:

  • Π›Π΅Π³ΠΊΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ, благодаря простому Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ, использованию JSX (HTML-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ синтаксис) для шаблонов ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ тратят большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° написаниС соврСмСнного JavaScript ΠΈ мСньшС бСспокоятся ΠΎ ΠΊΠΎΠ΄Π΅, спСцифичном для Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°.
  • ΠžΡ‡Π΅Π½ΡŒ быстрая, благодаря Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ React Virtual DOM ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ оптимизациям Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°.
  • ΠžΡ‚Π»ΠΈΡ‡Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π½Π° сторонС сСрвСра, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΌΠΎΡ‰Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ для ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
  • ΠŸΠ΅Ρ€Π²ΠΎΠΊΠ»Π°ΡΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Progressive Web App (PWA) благодаря Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ `create-react-app`.
  • ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… являСтся одностороннСй, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ мСньшС Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов.
  • Redux, самая популярная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для управлСния состояниСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² React, Π΅Π΅ Π»Π΅Π³ΠΊΠΎ ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.
  • React Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования (FP), создавая простой Π² тСстировании ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄.
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ TypeScript ΠΈΠ»ΠΈ Facebook’s Flow, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ JSX.
  • ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиями, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΎΡ‡Π΅Π½ΡŒ прост: Facebook прСдоставляСт Β«ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈΒ» для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ большСй части процСсса.
  • Навыки, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π² React, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π° React Native.

НСдостатки React:

  • React Π½Π΅ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π΅Π½ ΠΈ оставляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΉ способ развития. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΌ лидСрством ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌΠΈ процСссами.
  • БообщСство дСлится ΠΏΠΎ способам написания CSS Π² React, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй (CSS Modules) ΠΈ CSS-in-JS (Ρ‚.Π΅. Emotion ΠΈ Styled Components).
  • React ΠΎΡ‚Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π° основС классов, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ прСпятствиСм для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (ООП).
  • БмСшиваниС шаблонов с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ (JSX) ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ±ΠΈΡ‚ΡŒ с Ρ‚ΠΎΠ»ΠΊΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… знакомствах с React.

Компании, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ React: Facebook, Instagram, Netflix, New York Times, Yahoo, Khan Academy, Whatsapp, Codecademy, Dropbox, Airbnb, Asana, Atlassian, Intercom, Microsoft, Slack, Storybook ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅

ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы Vue.js

Vue.js β€” это JavaScript-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, основанный Π² 2013 Π³ΠΎΠ΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для создания высокоадаптируСмых ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов ΠΈ слоТных одностраничных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° Vue.js:

  • УсилСнный HTML. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Vue.js ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ характСристик схоТих с Angular, Π° это, благодаря использованию Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ HTML- Π±Π»ΠΎΠΊΠΎΠ².
  • ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ докумСнтация. Vue.js ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ процСсс обучСния для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ знания HTML ΠΈ JavaScript.
  • ΠΠ΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ осущСствлСн быстрый ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΊ Vue.js ΠΈΠ·-Π·Π° сходства с Angular ΠΈ React с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹.
  • ΠŸΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰Π°Ρ интСграция. Vue.js ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ для создания одностраничных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΈ для Π±ΠΎΠ»Π΅Π΅ слоТных Π²Π΅Π±-интСрфСйсов ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ нСбольшиС ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ элСмСнты ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ инфраструктуру Π±Π΅Π· Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… послСдствий.
  • ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Vue.js ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ довольно Π±ΠΎΠ»ΡŒΡˆΠΈΡ… шаблонов ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ использования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сдСланы ΠΏΠΎΡ‡Ρ‚ΠΈ Π·Π° Ρ‚ΠΎΠΆΠ΅ врСмя, Ρ‡Ρ‚ΠΎ ΠΈ Π±ΠΎΠ»Π΅Π΅ простыС.
  • ΠšΡ€ΠΎΡˆΠ΅Ρ‡Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€. Vue.js вСсит ΠΎΠΊΠΎΠ»ΠΎ 20 ΠšΠ‘, сохраняя ΠΏΡ€ΠΈ этом свою ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ позволяСт Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ.

НСдостатки Vue.js:

  • НСдостаток рСсурсов. Vue.js ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ довольно Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ долю Ρ€Ρ‹Π½ΠΊΠ° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с React ΠΈΠ»ΠΈ Angular, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΠΌΠ΅Π½ знаниями Π² этой срСдС всС Π΅Ρ‰Π΅ находится Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ стадии.
  • Риск Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠΉ гибкости. Иногда Ρƒ Vue.js ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π² ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΈ ΠΏΠΎΠΊΠ° Π΅Ρ‰Π΅ Π½Π΅Ρ‚ ΠΎΠΏΡ‹Ρ‚Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ появятся Π² блиТайшСС врСмя.

Компании, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Vue.js: Xiaomi, Alibaba, WizzAir, EuroNews, Grammarly, Gitlab ΠΈ Laracasts, Adobe, Behance, Codeship, Reuters.

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

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

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ JavaScript β€” Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° vc.ru

Π’ΠΎΠΏ 10 самых популярных JavaScript-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² для Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

JavaScript β€” это ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏΡ‹ программирования, управляСмыС событиями, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ (Π² Ρ‚ΠΎΠΌ числС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈ основанныС Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ°Ρ…). ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ JavaScript использовался Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ JavaScript Π΅Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС языка программирования Π½Π° сторонС сСрвСра. Подводя ΠΈΡ‚ΠΎΠ³, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ JavaScript являСтся языком Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ JavaScript Framework? Π—Π°Ρ‡Π΅ΠΌ ΠΈΡ… Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ JS β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ программирования JavaScript, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ написанный ΠΊΠΎΠ΄ для использования Π² стандартных функциях ΠΈ Π·Π°Π΄Π°Ρ‡Π°Ρ… программирования. Π­Ρ‚ΠΎ основа для создания Π²Π΅Π±-сайтов ΠΈΠ»ΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΠΎΠΊΡ€ΡƒΠ³.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ с Ρ‚ΠΎΠ³ΠΎ, Π·Π°Ρ‡Π΅ΠΌ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ JavaScript? ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΠΈΡ… использования, Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ подобранная срСда ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ бСсплатныС ΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ риска.

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

1. React

Π’ настоящСС врСмя Π»ΠΈΠ΄Π΅Ρ€ΠΎΠΌ Π² области инфраструктуры JavaScript UI являСт

Π§Ρ‚ΠΎ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ React.js

React.js — самый популярный интСрфСйсный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React.js (ΠΈΠ»ΠΈ просто React ΠΈΠ»ΠΈ Reactjs) ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Reactjs вмСсто Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² JavaScript, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Angular.

React JS

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

React.js — это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JavaScript с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для одностраничных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ слоя прСдставлСния для Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.React Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. React Π±Ρ‹Π» Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ создан Π”ΠΆΠΎΡ€Π΄Π°Π½ΠΎΠΌ Π£ΠΎΠ»ΠΊΠΎΠΌ, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠΌ-программистом, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ Π² Facebook. Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ React Π±Ρ‹Π» Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ Π² Π»Π΅Π½Ρ‚Π΅ новостСй Facebook Π² 2011 Π³ΠΎΠ΄Ρƒ ΠΈ Π½Π° Instagram.com Π² 2012 Π³ΠΎΠ΄Ρƒ.

React позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ большиС Π²Π΅Π±-прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы. Основная Ρ†Π΅Π»ΡŒ React — Π±Ρ‹Ρ‚ΡŒ быстрым, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΈ простым. Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ интСрфСйсами Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π­Ρ‚ΠΎ соотвСтствуСт ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ Π² шаблонС MVC.Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠ»ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² JavaScript, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Angular JS Π² MVC.

React JS Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ просто React ΠΈΠ»ΠΈ React.js.

ΠšΠ°ΠΊΠΎΠ²Ρ‹ особСнности React.js?

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ особСнности React.

JSX

Π’ React вмСсто ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ JavaScript для создания шаблонов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ JSX. JSX — это простой JavaScript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Ρ†ΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ HTML ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ этот синтаксис Ρ‚Π΅Π³ΠΎΠ² HTML для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².Бинтаксис HTML обрабатываСтся Π² Π²Ρ‹Π·ΠΎΠ²Π°Ρ… JavaScript React Framework. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° чистом старом JavaScript.

React JS

React Native

Π’ React Π΅ΡΡ‚ΡŒ собствСнныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, анонсированныС Facebook Π² 2015 Π³ΠΎΠ΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ для Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ IOS, Android ΠΈ UPD.

React-native — это Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для создания ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Javascript. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π΄ΠΈΠ·Π°ΠΉΠ½, Ρ‡Ρ‚ΠΎ ΠΈ React, Ρ‡Ρ‚ΠΎ позволяСт Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ / Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΎΠ³Π°Ρ‚ΡƒΡŽ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса / Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π΅ ΠΆΠ΅ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ прилоТСния для iOS ΠΈ Android. Π›ΡƒΡ‡ΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ использования response-native — Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ / ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, написанныС Π½Π° Objective-C, Java ΠΈΠ»ΠΈ Swift.

React JS

ΠžΠ΄Π½ΠΎΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…

Π’ React Π½Π°Π±ΠΎΡ€ нСизмСняСмых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ пСрСдаСтся срСдству Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΊΠ°ΠΊ свойства Π² Π΅Π³ΠΎ Ρ‚Π΅Π³Π°Ρ… HTML. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ свойства, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния.Π­Ρ‚ΠΎΡ‚ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΉ процСсс извСстСн ΠΊΠ°ΠΊ Β«ΠΏΠΎΡ‚ΠΎΠΊ свойств; дСйствия ΠΏΠ΅Ρ€Π΅Ρ‚Π΅ΠΊΠ°ΡŽΡ‚ Β».

React JS

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ модСль Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

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

React JS

(Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ-https: // липкая.gl / L7NiIT)

ΠŸΠΎΡ‡Π΅ΠΌΡƒ React?

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

1. ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π°

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

2. Π›Π΅Π³ΠΊΠΎ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ

Π›ΡŽΠ±ΠΎΠΉ, Ρƒ ΠΊΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ знания Π² области программирования, ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ React, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Angular ΠΈ Ember Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Β«ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ языками», Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΡ… слоТно Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π²Π°ΠΌ просто Π½ΡƒΠΆΠ½Ρ‹ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ знания CSS ΠΈ HTML.

3. БобствСнный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄

React ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (React Native).А React — ΡƒΠ±Π΅ΠΆΠ΄Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠΊΠ»ΠΎΠ½Π½ΠΈΠΊ возмоТности ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ поддСрТиваСтся ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΊΠΎΠ΄Π°. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния для iOS, Android ΠΈ Π²Π΅Π±-прилоТСния.

4. БвязываниС Π΄Π°Π½Π½Ρ‹Ρ…

React ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΡŽΡŽ привязку Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° прилоТСния ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Flux управляСт ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄Π½Ρƒ Ρ‚ΠΎΡ‡ΠΊΡƒ управлСния — диспСтчСр. Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ReactJS Π»Π΅Π³Ρ‡Π΅ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ.

5.ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

React Π½Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ встроСнного ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° для зависимости. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Browserify, Require JS, EcmaScript 6, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Babel, ReactJS-di для автоматичСского внСдрСния зависимостСй.

6. Π’Π΅ΡΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ReactJS ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ React ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ состояния, поэтому ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ состояниСм, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ ReactJS, ΠΈ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π²Ρ‹Π²ΠΎΠ΄ ΠΈ запускаСмыС дСйствия, события, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ‚. Π”.

НадСюсь, Π²Π°ΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ эта ΡΡ‚Π°Ρ‚ΡŒΡ. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ обсудим различия ΠΌΠ΅ΠΆΠ΄Ρƒ React JS ΠΈ Angular ΠΈ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… Π»ΡƒΡ‡ΡˆΠ΅ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ.

Learn React

.

React JS — Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅? Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ? ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ этому ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ?

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

Одно ΠΈΠ· ΡƒΠΌΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π²ΠΎ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ ΠΎΠΊΠ½Π΅, — Β«React JS.«Но Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ — это React JS? Π­Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ язык программирования? ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС? Или Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ совсСм Π΄Ρ€ΡƒΠ³ΠΎΠ΅?

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° ваши вопросы ΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒ вас с этим Ρ†Π΅Π½Π½Ρ‹ΠΌ инструмСнтом Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΌΡ‹ составили ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ What is React JS.

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

  1. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React JS?
  2. Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ React JS?
  3. JSX
  4. Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ DOM
  5. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ React JS
  6. РСсурсы сообщСства React JS
  7. Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ React JS?

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

React JS — это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JavaScript, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π² Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ для создания ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… элСмСнтов Π½Π° Π²Π΅Π±-сайтах.Но Ссли Π²Ρ‹ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с JavaScript ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ JavaScript, это ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ бСсполСзно. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΄Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм шаг Π½Π°Π·Π°Π΄ ΠΈ сначала разбСрСмся с этими Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°ΠΌΠΈ.

(Π²Π²Π΅Ρ€Ρ…)

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

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ всС ΠΎ JavaScript Π² нашСм ΠΏΠΎΠ»Π½ΠΎΠΌ руководствС Tech 101 JavaScript, Π½ΠΎ Π²ΠΎΡ‚ TL; DR:

  • JavaScript (ΠΈΠ»ΠΈ JS) — это язык сцСнариСв, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для создания ΠΈ управлСния динамичСским Π²Π΅Π±-ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ.
  • ДинамичСскоС Π²Π΅Π±-содСрТимоС Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ‚Π°ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, ΠΊΠ°ΠΊ анимированная Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, слайд-ΡˆΠΎΡƒ ΠΈΠ· Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹.
  • ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ посСщаСтС Π²Π΅Π±-сайт, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пСрСмСщаСтся, обновляСтся ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ измСняСтся Π½Π° экранС Π±Π΅Π· нСобходимости Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π²Π΅Π±-страницу, ΠΎΡ‡Π΅Π½ΡŒ высока Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ JS — это язык, благодаря ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ это происходит.

Или ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ это ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ: JavaScript — это ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΉ язык кодирования, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для добавлСния Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° Π²Π΅Π±-сайты ΠΈΠ»ΠΈ Π²Π΅Π±-прилоТСния (ΠΏΠΎΠ²Π΅Ρ€Ρ… основных статичСских структур, созданных Ρ‚Π°ΠΊΠΈΠΌΠΈ языками, ΠΊΠ°ΠΊ HTML ΠΈ CSS).

(Π²Π²Π΅Ρ€Ρ…)

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JavaScript?

Из ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ опрСдСлСния Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ JavaScript ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Π΅Π±-сайтов ΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.Но Π±Ρ‹Π²Π°ΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ JavaScript для выполнСния ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ стандартныС эффСкты Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ автозаполнСния ΠΏΠ°Π½Π΅Π»ΠΈ поиска. ΠŸΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚, прСвращаСтся Π² ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ «изобрСтСния колСса». Annnnoying. Π—Π΄Π΅ΡΡŒ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ приходят Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ JavaScript .

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ JavaScript

ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ написанного ΠΊΠΎΠ΄Π° JavaScript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΠ±Ρ‰ΠΈΡ… Π·Π°Π΄Π°Ρ‡ JS, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΉ (ΠΈ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΉ) процСсс кодирования Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.Если Π΅ΡΡ‚ΡŒ обычная функция JavaScript, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Π°ΠΌ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (ΠΈ это Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ Π²Π°ΠΌ понадобились для ΠΈΡ… собствСнных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²), вСроятно, для облСгчСния вашСй Π±ΠΎΠ»ΠΈ Π΅ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JS. Π•ΡΡ‚ΡŒ смысл?

Π₯ΠΎΡ€ΠΎΡˆΠΎ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ вСрнСмся ΠΊ React. БущСствуСт мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… JS-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΈ React JS — ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ…, Π½ΠΎ Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ? Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ React JS ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ React JS? И это Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ JavaScript?

(Π²Π²Π΅Ρ€Ρ…)

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ JavaScript ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ React JS?

React — это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JavaScript, которая спСциализируСтся Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π² создании ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов ΠΈΠ»ΠΈ UI.Π§Ρ‚ΠΎ касаСтся Π²Π΅Π±-сайтов ΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы — это Π½Π°Π±ΠΎΡ€ экранных мСню, ΠΏΠ°Π½Π΅Π»Π΅ΠΉ поиска, ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ всСго ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ, с Ρ‡Π΅ΠΌ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ взаимодСйствуСт для Π˜Π‘ΠŸΠžΠ›Π¬Π—ΠžΠ’ΠΠΠ˜Π― Π²Π΅Π±-сайта ΠΈΠ»ΠΈ прилоТСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ часто ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚: «React JS — Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ ΠΈΠ»ΠΈ бэкэнд?» ΠžΡ‚Π²Π΅Ρ‚: бСзусловно, Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ это прямо, Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠ² аспСкт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Β«Π½Π° экранС» — React ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для программирования Β«Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°Β» (созданиС Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° экранС Π² ΠΎΠΊΠ½Π΅ своСго Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°), Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ React JS Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ внСшнСго интСрфСйса.

Π”ΠΎ React JS Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ застряли Π² создании ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ «ванильного JavaScriptΒ» (Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ говорят ΠΎ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΌ языкС JavaScript) ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠΎΠ² React, ΠΌΠ΅Π½Π΅Π΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ jQuery. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π»ΠΎ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ мноТСство возмоТностСй для ошибок ΠΈ ошибок. Π˜Ρ‚Π°ΠΊ, Π² 2011 Π³ΠΎΠ΄Ρƒ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ Facebook Π”ΠΆΠΎΡ€Π΄Π°Π½ Π£ΠΎΠ»ΠΊ создал React JS ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ React (экономия Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ вСроятности ошибок кодирования), React ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² JavaScript:

Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ React JS ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° ΠΎΠ±Π°.

(Π²Π²Π΅Ρ€Ρ…)

JSX

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

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

Π­Ρ‚ΠΎ Π½Π΅ просто вопрос удобства — использованиС JSX для обновлСния ΠΌΠΎΠ΄Π΅Π»ΠΈ DOM ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ сайта ΠΈ эффСктивности Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Как? ВсС Π΄Π΅Π»ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ React — Virtual DOM.

(Π²Π²Π΅Ρ€Ρ…)

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

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

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

Допустим, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ΅ сообщСния Π² Π±Π»ΠΎΠ³Π΅ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉΒ». Π‘Π΅Π· использования React JS вся DOM Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ€Π°Π·ΠΈΡ‚ΡŒ это ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ (с использованиСм Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ мощности, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для этого обновлСния). React, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, сканируСт Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ модСль DOM, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ измСнилось послС дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС добавлСния коммСнтария), ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎ обновляСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот Ρ€Π°Π·Π΄Π΅Π» DOM.

Π­Ρ‚ΠΎΡ‚ Π²ΠΈΠ΄ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠ³ΠΎ обновлСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ мСньшС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ мощности ΠΈ мСньшСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ Ρ‚Π°ΠΊΠΈΠΌ ΡƒΠΆ большим, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ ΠΎΠ± ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² Π±Π»ΠΎΠ³Π΅, Π½ΠΎ — ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ±ΠΎ всСй Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ, связанном Π΄Π°ΠΆΠ΅ с Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ слоТный Π²Π΅Π±-сайт — Π²Ρ‹ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ составляСт Π»ΠΎΡ‚Π° .

(Π²Π²Π΅Ρ€Ρ…)

Как выглядит ΠΊΠΎΠ΄ React JS?

Если всС это ΠΈΠΌΠ΅Π΅Ρ‚ смысл, Π½ΠΎ Π²Ρ‹ всС Π΅Ρ‰Π΅ Π·Π°Π΄Π°Π΅Ρ‚Π΅ΡΡŒ вопросом: Β«Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠ΄ React?Β» Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ выглядит React, прямо Π½Π° этом Π²Π΅Π±-сайтС с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ React. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· пСрСчислСнных здСсь ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π΄Π°Π΅Ρ‚ прСдставлСниС ΠΎ возмоТностях React JS ΠΈ Π΄Π°Π΅Ρ‚ прСдставлСниС ΠΎΠ± исходном ΠΊΠΎΠ΄Π΅, использованном для Π΅Π³ΠΎ создания.

React Examples React Examples

ΠœΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ, Ссли Π²Ρ‹ всС Π΅Ρ‰Π΅ Π·Π°Π΄Π°Π΅Ρ‚Π΅ΡΡŒ вопросом, Β«Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ React JS?Β» ΠΈ вас ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ React JS для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ². Π­Ρ‚ΠΈ простыС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΊΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ сайтом React, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ React JS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ React JS.

ReactJS.org Project Examples ReactJS.org Project Examples

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Ссли Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ ΡƒΡ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ React JS, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ React JS для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сразу ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ источнику с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ReactJS.org Intro to React, ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ пособия ΠΏΠΎ React JS, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° ΠΈΠ»ΠΈ Π·Π½Π°Π½ΠΈΠ΅. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ React ΠΈΠ»ΠΈ всС Π΅Ρ‰Π΅ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ React, это ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ мСсто для Π½Π°Ρ‡Π°Π»Π°.

What is React Tutorial What is React Tutorial

(Π²Π²Π΅Ρ€Ρ…)

ЭкосистСма React JS

Часто ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ React JS описываСтся ΠΊΠ°ΠΊ ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JavaScript, Ρ‚Π°ΠΊ ΠΈ ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° JavaScript, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ это Ρ‚Π°ΠΊΠΎΠ΅? Или ΠΈ Ρ‚ΠΎ, ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅?

Π’ Skillcrush наша ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ опрСдСляСт React JS ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ JavaScript, Π° Π½Π΅ ΠΊΠ°ΠΊ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ.Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅.

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

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π² Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ React JS, ΠΈ Angular (Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Javascript с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΌΠ΅Π±Π΅Π»ΠΈ ΠΈ Π΄Π΅ΠΊΠΎΡ€Π°Ρ†ΠΈΠΉ для Π΄ΠΎΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΡƒΠΆΠ΅ построили, Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ — это модСль Π΄ΠΎΠΌΠ°. шаблон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ для постройки Π΄ΠΎΠΌΠ°.

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

  • Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° React (ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° React, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для создания ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… частСй ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса)
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ JSX для прямого управлСния вашим DOM
  • Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ модСль DOM для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ вашСго сайта

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

(Π²Π²Π΅Ρ€Ρ…)

Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ React JS?

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ интСрфСйсным Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ (Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ созданиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса), ΠΎΡ‚Π²Π΅Ρ‚ — ДА!

УспСх Π² Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ использованиС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ΄Π΅Π»Π°ΡŽΡ‚ ваш ΠΊΠΎΠ΄ максимально эффСктивным ΠΈ дСйствСнным.И — ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов — React JS — это инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ прСимущСствами.

Если Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ React (плюс Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°ΠΆΠ½Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ JavaScript, HTML ΠΈ CSS), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ сСгодня Π½Π° наш курс Skillcrush Front End Developer + React JavaScript. Π­Ρ‚ΠΎΡ‚ ΠΎΠ½Π»Π°ΠΉΠ½-курс рассчитан Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ мСсяца, ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ² Π½Π° ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² всСго час Π² дСнь.

(Π²Π²Π΅Ρ€Ρ…)

,

Leave a Comment

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