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

ИспользованиС Babel ΠΈ Webpack для настройки React-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с нуля

БущСствуСт Π½Π΅ΠΌΠ°Π»ΠΎ инструмСнтов, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ срСду для React-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. НапримСр, Π² Π½Π°ΡˆΠΈΡ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°Ρ… ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ курса ΠΏΠΎ React ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ срСдство create-react-app, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, содСрТащий всё Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ React-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Автор ΡΡ‚Π°Ρ‚ΡŒΠΈ, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ сСгодня, Ρ…ΠΎΡ‡Π΅Ρ‚ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ React-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с использованиСм Babel ΠΈ Webpack. Π­Ρ‚ΠΈ инструмСнты ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, создаваСмых срСдствами create-react-app, ΠΈ ΠΌΡ‹ ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ всСм, ΠΊΡ‚ΠΎ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚ React-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, интСрСсно Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π½ΠΈΠΌΠΈ ΠΈ с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΎΠΉ создания React-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. А ΠΈΠΌΠ΅Π½Π½ΠΎ, Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Webpack Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это срСдство использовало Π±Ρ‹ Babel для компиляции JSX-ΠΊΠΎΠ΄Π° Π² JavaScript-ΠΊΠΎΠ΄, ΠΈ ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ сСрвСр, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ React-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Webpack

Webpack ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для компиляции JavaScript-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π­Ρ‚ΠΎΡ‚ инструмСнт часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Β«Π±Π°Π½Π΄Π»Π΅Ρ€ΠΎΠΌΒ» (ΠΎΡ‚ bundler) ΠΈΠ»ΠΈ «сборщиком ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉΒ». ПослС Π΅Π³ΠΎ установки Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈΠ»ΠΈ Π΅Π³ΠΎ API. Если Π²Ρ‹ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Webpack β€” рСкомСндуСтся ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ± основных ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ сравнСниС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ сборщиками ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ, Π½Π° высоком ΡƒΡ€ΠΎΠ²Π½Π΅, выглядит Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Webpack.

ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

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

Babel

Babel β€” это транспилятор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π² основном, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для прСобразования конструкций, принятых Π² свСТих вСрсиях стандарта ECMAScript, Π² Π²ΠΈΠ΄, понятный ΠΊΠ°ΠΊ соврСмСнным, Ρ‚Π°ΠΊ ΠΈ Π½Π΅ самым Π½ΠΎΠ²Ρ‹ΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ срСдам, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ JavaScript. Babel, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΡƒΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π² JavaScript ΠΈ JSX-ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ @babel/preset-react.

ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ИмСнно благодаря Babel ΠΌΡ‹, ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ React-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ JSX. НапримСр, Π²ΠΎΡ‚ ΠΊΠΎΠ΄, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ JSX:

Выглядит Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ, ΠΎΠ½ понятСн, Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Глядя Π½Π° Π½Π΅Π³ΠΎ, сразу ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ описываСт ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ элСмСнт

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹.

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

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ React-прилоТСния, Π½Π°ΠΌ понадобятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ npm-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.

ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π“ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ здСсь Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² этом Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

Настройка Webpack

Бвойство entry Π·Π°Π΄Π°Ρ‘Ρ‚ Π³Π»Π°Π²Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства mode ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΈΠΏ окруТСния для компиляции (Π² нашСм случаС это ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” development ) ΠΈ Π½Π° Ρ‚ΠΎ, ΠΊΡƒΠ΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ скомпилированный Ρ„Π°ΠΉΠ».

Π Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ

с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ root ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π²Ρ‹Π²ΠΎΠ΄Π° React-прилоТСния.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ установим ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ react ΠΈ react-dom:

ВнСсём Π² index.js ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

Π­Ρ‚ΠΎ β€” стандартный ΠΊΠΎΠ΄ для ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² React-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ΡƒΡ‚ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ‚Π΅Π³

Π’ΠΎΡ‚ ΠΊΠΎΠ΄ Ρ„Π°ΠΉΠ»Π° app.component.js :

Π’ΠΎΡ‚ ΠΊΠΎΠ΄ Ρ„Π°ΠΉΠ»Π° app.component.css :

Настройка Babel

Благодаря этим настройкам Babel Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ прСсСты Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ настроим Webpack Π½Π° использованиС Babel.

Настройка Webpack Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с Babel

Π’ΡƒΡ‚ ΠΌΡ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ babel-loader, которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Babel с Webpack. ЀактичСски, Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Babel смоТСт ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π΄ΠΎ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Webpack.

▍JS-Ρ„Π°ΠΉΠ»Ρ‹

Π’ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JS-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ (этот ΠΊΠΎΠ΄ ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ Π² Ρ„Π°ΠΉΠ» webpack.config.js ), ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΎΠ΄Π½ΠΎ ΠΈΠ· свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с настройками, экспортируСмого этим Ρ„Π°ΠΉΠ»ΠΎΠΌ:

▍CSS-Ρ„Π°ΠΉΠ»Ρ‹

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² массив rules ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° module настройки для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ CSS-Ρ„Π°ΠΉΠ»ΠΎΠ²:

▍БтатичСскиС рСсурсы

Если систСма встрСтит Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ PNG, SVG, JPG ΠΈΠ»ΠΈ GIF, Ρ‚ΠΎ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ использован file-loader. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚Π°ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π²Π°ΠΆΠ½Π° для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Настройка сСрвСра Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π’ΠΎΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„Π°ΠΉΠ»Π° webpack.config.js :

БСйчас всё Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

Если Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу http://localhost:9000, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ страницу нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

ПослС этого ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» index.html Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, запустив сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ пСрСйдя ΠΏΠΎ адрСсу http://localhost:9000.

Π˜Ρ‚ΠΎΠ³ΠΈ

Π’ этом ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ ΠΎΠ±Π·ΠΎΡ€ настройки Webpack ΠΈ Babel для ΠΈΡ… использования Π² React-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. На самом Π΄Π΅Π»Π΅, Π½Π° Ρ‚ΠΎΠΉ Π±Π°Π·Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ сСгодня Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. НапримСр, вмСсто CSS ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ LESS, вмСсто ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ JS ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° TypeScript. ΠŸΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ссли сСгодня ΡΠΎΡΡ‚ΠΎΡΠ»ΠΎΡΡŒ вашС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ знакомство с процСссом ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ настройки React-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ всё это ΠΎΡ‡Π΅Π½ΡŒ слоТно ΠΈ ΠΊΡƒΠ΄Π° Π»Π΅Π³Ρ‡Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ шаблоном. Однако послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π² этом Ρ€Π°Π·Π±Π΅Ρ€Ρ‘Ρ‚Π΅ΡΡŒ, Π²Ρ‹ ΠΏΠΎΠΉΠΌΡ‘Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ слоТности настроСк Π΄Π°Ρ‘Ρ‚ Π²Π°ΠΌ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ свободу, позволяя Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ свои ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Π°ΠΌ это Π½ΡƒΠΆΠ½ΠΎ, Π½Π΅ полагаясь ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π° Π½Π΅ΠΊΠΈΠ΅ «стандартныС» Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ снизив свою Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ Π½ΠΈΡ….

Π£Π²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! Какой ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ срСды для React-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²?

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

НастраиваСм React срСду, Ρ‡Π°ΡΡ‚ΡŒ 4

Russian (Pусский) translation by Anton L (you can also view the original English article)

РаньшС React Π±Ρ‹Π» извСстСн Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° Π½Ρ‘ΠΌ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ инструмСнты сборки ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Всё это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ хотя Π±Ρ‹ ΠΎΠ΄Π½Ρƒ строку React ΠΊΠΎΠ΄Π°.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ create-react-app Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³ с Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ любой ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ React ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π·Π½Π°Π½ΠΈΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ инструмСнтов сборки. create-react-app ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, особСнно Ссли Π²Ρ‹ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² React.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ станСтС Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с React, Ρƒ вас ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ свои потрСбности для прилоТСния ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ кастомная конфигурация Ρ„Π°ΠΉΠ»ΠΎΠ² настройки. Π’ этом случаС, слСдуСт Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ инструмСнты сборки ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ create-react-app ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ прячСт Π΄Π°Π½Π½Ρ‹Π΅ инструмСнты.

Π’ этом Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π΅ я ΠΏΠΎΠΊΠ°ΠΆΡƒ Π²Π°ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ React, ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ сконфигурировав инструмСнты сборки. НадСюсь послС это Ρƒ вас появится ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Π±ΠΎΠ»Π΅Π΅ слоТными настройками.

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

Π’Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ вашС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ React ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с нуля? Π”Π°Π²Π°ΠΉΡ‚Π΅ приступим.

Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ структуру прилоТСния

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ инструмСнты сборки React, ΠΌΡ‹ создадим Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅, ΠΎΡ‡Π΅Π½ΡŒ простоС, React ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π°Ρ… этой сСрии.

Если Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ всС ΠΎΠΏΡ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, package.json Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ React ΠΈ ReactDOM скрипты Π² наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. ΠœΡ‹ сдСлаСм это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ npm, ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Node.js.

Π’ Ρ‚ΠΎΠΉ ΠΆΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π²Π²Π΅Π΄ΠΈΡ‚Π΅:

ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ„Π°ΠΉΠ» index.html, со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π² эту ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΡƒ:

Нам Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΠ΄ΠΈΠ½ JavaScript Ρ„Π°ΠΉΠ» ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ этом JSX, ES6 классы ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Для этого установим ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Webpack ΠΈ Babel, посрСдством npm.

Π”Π°Π²Π°ΠΉΡ‚Π΅ спСрва поставим Babel. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π² ΠΎΠΊΠ½Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки:

Π‘ΡƒΠ΄ΡƒΡ‚ установлСны всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для Babel, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ES6 ΠΈ JSX ΠΊΠΎΠ΄, Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ JavaScript.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ установим Webpack, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ:

ПослС этого Π±ΡƒΠ΄ΡƒΡ‚ установлСны Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, наш package.json Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

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

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Webpack

Webpack Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ Π²Π΅Ρ‰ΠΈ

НС стоит слишком Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ синтаксисС Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚; просто ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ΡΡŒ ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит.

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΈ тСстированиС

Π”ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΠΎ, Ссли Π²Ρ‹ Π΄ΠΎ этого Ρ‡ΠΈΡ‚Π°Π»ΠΈ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Ρ‹ ΠΈΠ· этой сСрии.

Из ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, запуститС:

ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° JavaScript Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ для нас ΠΈ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π±Ρ‹Π» ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΡ‘Π½ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ DOM элСмСнта.

Автоматизация процСсса компиляции

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

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

Π€ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΡˆΡ‚Ρ€ΠΈΡ…ΠΈ для нашСго прилоТСния

Π§Ρ‚ΠΎΠ±Ρ‹ всё Π±Ρ‹Π»ΠΎ Π³ΠΎΡ‚ΠΎΠ²ΠΎ. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΄Π²Π° Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ использовали Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π°Ρ….

ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‡Ρ‚ΠΎ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π° этот Ρ€Π°Π· ΠΌΡ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ настроили сборку React прилоТСния.

ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ настройки React для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ настроили ΠΈ создали Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π²Π°ΠΌ Π½Π΅ придётся Π΄Π΅Π»Π°Ρ‚ΡŒ это снова с нуля. Для Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‚Π΅ΠΌ самым ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π° React ΠΌΠΎΠΆΠ½ΠΎ быстро Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π°ΠΆΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… сборок с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ React прилоТСниями, послС Ρ‡Π΅Π³ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° GitHub. Π—Π°Ρ‚Π΅ΠΌ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, послС Ρ‡Π΅Π³ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ npm init для установки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Node.js ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

Π‘ΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅ ΠΈ установитС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ React ΠΈΠ· этого Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π° доступСн, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Π³ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌ, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ шаблон для Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, для установки ΠΈ компиляции React прилоТСния.

ΠŸΠ΅Ρ€Π²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° скачаСт ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Node.js, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, Π½Π° это потрСбуСтся ΠΌΠΈΠ½ΡƒΡ‚Π° ΠΈΠ»ΠΈ Π΄Π²Π΅. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° скомпилируСт React ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ запустит ΠΌΠΈΠ½ΠΈ сСрвСр, ΠΏΠΎΠΊΠ°Π·Π°Π² Π²Π°ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ измСнСния Π² React ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· сохранив ΠΈΡ…, вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ скомпилируСтся ΠΈ ΠΎΠΊΠ½ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° автоматичСски обновится, ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΠ² Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ прилоТСния.

Когда Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для распространСния, запуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

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

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

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΎΡΠ²ΠΎΠΈΡ‚Π΅ΡΡŒ с настройкой сборки React, я Π΄ΡƒΠΌΠ°ΡŽ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡ€Π°Π΄ΡƒΠ΅Ρ‚ вас. Π― Π±ΡƒΠ΄Ρƒ Ρ€Π°Π΄ ΡƒΡΠ»Ρ‹ΡˆΠ°Ρ‚ΡŒ ваши ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. Π”Π°ΠΉΡ‚Π΅ ΠΌΠ½Π΅ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ с React!

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

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Full-Stack React-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€! ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ вашСм вниманию ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Β«How to Build and Deploy a Full-Stack React-AppΒ» Π°Π²Ρ‚ΠΎΡ€Π° Frank Zickert.

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

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡΡ‚Π°Ρ‚ΡŒ full-stack Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ? Full-stack ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ дополняСт ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π΅Π±-интСрфСйс React сСрвСром ΠΈ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. Но Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС настроСк, Ρ‡Π΅ΠΌ простоС одностраничноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ инфраструктуры. Π­Ρ‚ΠΈ React-ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π°ΡˆΡƒ ΠΈΠ½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ нашСго React-прилоТСния. Нам большС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ настройки, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Webpack, Babel ΠΈΠ»ΠΈ Serverless.

Π‘Ρ‚Π°Ρ€Ρ‚

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ трСмя способами:

Π‘ΠΊΡ€ΠΈΠΏΡ‚ сборки добавляСт Π΅Ρ‰Π΅ Ρ‚Ρ€ΠΈ скрипта Π² package.json:

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ вашСго прилоТСния

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, основанныС Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… инфраструктуры, ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‡Π΅Ρ‚ΠΊΡƒΡŽ структуру. Π£ вас Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня. Π­Ρ‚ΠΎ опрСдСляСт ΠΎΠ±Ρ‰ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ вашСго прилоТСния.

ΠŸΠΎΠ΄ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹) ΡƒΡ‚ΠΎΡ‡Π½ΡΡŽΡ‚(Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚) ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ прилоТСния ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

опрСдСляСт врСмя выполнСния вашСго прилоТСния. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ dev ΠΈ prod Π²Π΅Ρ€ΡΠΈΡŽ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

β€” это страница вашСго прилоТСния. ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π² react-router. Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π» ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°ΠΌΠΈ.

опрСдСляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая выполняСтся Π½Π° сторонС сСрвСра. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько β€” ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² качСствС Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ….

Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Express.js-middleware.
добавляСт Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… NoSQL Π² вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ β€” ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊΠ°ΠΊ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅. описываСт Ρ‚ΠΈΠΏ элСмСнтов Π² вашСй Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ β€” всС, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ для создания нашСго full-stack прилоТСния. Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚: ΠΎΠ΄Π½Ρƒ срСду выполнСния, ΠΎΠ΄Π½Π° страница, Π΄Π²Π° сСрвиса ΠΈ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΎΠ΄Π½ΠΎΠΉ записью.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² обСспСчиваСт Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ прСдставлСниС ΠΎ вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π§Π΅ΠΌ большС становится вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‚Π΅ΠΌ Π²Π°ΠΆΠ½Π΅Π΅ это.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

создаСт Amazon DynamoDB. Π­Ρ‚ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (NoSQL). Она обСспСчиваСт Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² любом ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅. Но Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ рСляционных Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ½Π° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ слоТныС запросы.

Обладая этими знаниями, Π΄Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° наш :

описываСт структуру Π½Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΡ‹ опрСдСляСм ΠΈΠΌΠ΅Π½Π° для Π½Π°ΡˆΠΈΡ… primaryKey ΠΈ rangeKey. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любоС имя, ΠΊΡ€ΠΎΠΌΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов DynamoDB, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ здСсь. Но ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ, ΠΈΠΌΠ΅ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ послСдствия:

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнты Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ β€” ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Ρ€ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:

DataLayer обСспСчиваСт доступ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ ΠΊΠ°ΠΊ!

Асинхронная функция mutate примСняСт измСнСния ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² нашСй Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΡƒΡ‚Π°Ρ†ΠΈΠΈ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Π”Π°Π½Π½Ρ‹Π΅ элСмСнта β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Javascript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ нашСм сСрвисС ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· Ρ‚Π΅Π»Π° запроса. Для User ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ элСмСнты ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ элСмСнты ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°ΠΊ ΠΆΠ΅ просто, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ….

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° своС Full-Stack ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² дСйствии

Если Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ запустили своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, сСйчас самоС врСмя ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это: npm run start- .

Π­Ρ‚ΠΎΡ‚ пост Π½Π΅ описываСт, ΠΊΠ°ΠΊ Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹. callAddUserService ΠΈ callGetUserService ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ всС, Ρ‡Ρ‚ΠΎ являСтся спСцифичСским для сСрвисов ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹ просто ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ Ρ‚ΡƒΠ΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Javascript ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

Π’Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ исходный ΠΊΠΎΠ΄ этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² этом GitHub-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΎΡ‡Π΅Π½ΡŒ простой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.

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

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ настройка ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° React с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прилоТСния Create React App

Published on April 29, 2020

Автор Π²Ρ‹Π±Ρ€Π°Π» Creative Commons для получСния поТСртвования Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Write for DOnations.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

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

РаньшС для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° React трСбовался слоТный процСсс, состоящий ΠΈΠ· мноТСства шагов ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ систСму для сборки, компилятор для ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ соврСмСнного синтаксиса Π² Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ всСми Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ ΠΊΠΎΠ΄, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±Π°Π·ΠΎΠ²ΡƒΡŽ структуру Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ. Однако сСйчас появилось ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Create React App, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ JavaScript, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для запуска ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° React, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ систСмы компиляции ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ соблюдСния стандартов кодирования, тСстирования ΠΈ сборки. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ сСрвСр с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ горячСй ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‰Π΅ΠΉ страницу ΠΏΡ€ΠΈ внСсСнии ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ΠΎ создаСт структуру Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², позволяя ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΡƒΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· нСсколько ΠΌΠΈΠ½ΡƒΡ‚.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ настройкС Webpack ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ систСмы сборки. Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Babel для компиляции ΠΊΠΎΠ΄Π° для совмСстимости с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ. Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ со слоТными систСмами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ соврСмСнных клиСнтских интСрфСйсов. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ созданиС ΠΊΠΎΠ΄Π° React с ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠΎΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ.

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

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

Для прохоТдСния этого ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ руководства Π²Π°ΠΌ потрСбуСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Node.js вСрсии 10.16.0, установлСнный Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² macOS ΠΈΠ»ΠΈ Ubuntu 18.04, слСдуйтС указаниям руководства Установка Node.js ΠΈ созданиС локальной срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² macOS ΠΈΠ»ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π° Установка с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ PPA руководства Установка Node.js Π² Ubuntu 18.04.

Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ основы языка JavaScript, для изучСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Π°ΠΌ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ сСрия ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° JavaScript, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ знаниями языков HTML ΠΈ CSS.

Π¨Π°Π³ 1 β€” Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прилоТСния Create React App

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

Для установки Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° запустит процСсс сборки, Π²ΠΎ врСмя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ вмСстС с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ числом зависимостСй.

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ выполнСния скрипта Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС:

Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ список ΠΊΠΎΠΌΠ°Π½Π΄ npm для выполнСния, сборки, запуска ΠΈ тСстирования вашСго прилоТСния. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΎΠ± этом Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ настроСн Π² Π½ΠΎΠ²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π½ΠΎΠ²ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ:

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

Π¨Π°Π³ 2 β€” ИспользованиС скриптов react-scripts

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ Π΅Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ всю Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΈΠ»ΠΈ вывСсти Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· Π½Π΅Π³ΠΎ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Π’ любом случаС Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

РасскаТСм ΠΎΠ±ΠΎ всСх элСмСнтах ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅:

node_modules/ содСрТит всС внСшниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ JavaScript, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π’Π°ΠΌ нСчасто потрСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ.

ДирСктория public/ содСрТит Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ HTML, JSON ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΊΠΎΡ€Π½Π΅Π²Ρ‹Π΅ рСсурсы вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’Ρ‹ смоТСтС ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Π½ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π½Π° шагС 4.

Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ src/ содСрТится ΠΊΠΎΠ΄ React JavaScript для вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’ основном Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ с этой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ΅ΠΉ. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΌΡ‹ расскаТСм ΠΎΠ± этой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° шагС 5.

README.md β€” это Ρ„Π°ΠΉΠ» Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ, содСрТащий ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Create React App, Π² Ρ‚ΠΎΠΌ числС ΠΎΠ±Π·ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ссылки Π½Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. БСйчас Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» README.md Π² ΠΏΠ΅Ρ€Π²ΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. По ΠΌΠ΅Ρ€Π΅ развития ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» package.json Π² ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌ тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅:

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

Π‘ΠΊΡ€ΠΈΠΏΡ‚ build

Π’Ρ‹ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ сообщСниС:

Π­Ρ‚ΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Create React App ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ваш ΠΊΠΎΠ΄ Π² ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΉ для использования ΠΏΠ°ΠΊΠ΅Ρ‚.

ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ содСрТимоС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ нСсколько Π½ΠΎΠ²Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ:

Π‘ΠΊΡ€ΠΈΠΏΡ‚ test

Для запуска скрипта test Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ПослС запуска этого скрипта Π½Π° вашСм Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования, Π° командная строка Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π±ΡƒΠ΄Π΅Ρ‚ скрыта. Он Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Jest Π½Π΅ просто запускаСт тСст ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈ закрываСтся. Он ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅. Если Π²Ρ‹ внСсСтС измСнСния Π² исходный ΠΊΠΎΠ΄, ΠΎΠ½ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Ρ‚ тСсты снова.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ eject

Π¦Π΅Π½Π½ΠΎΡΡ‚ΡŒ прилоТСния Create React App Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ количСствС аспСктов настройки ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Для создания соврСмСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ JavaScript трСбуСтся мноТСство Ρ€Π°Π·Π½Ρ‹Ρ… инструмСнтов, ΠΎΡ‚ Webpack ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… сборочных систСм Π΄ΠΎ Babel ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… срСдств компиляции. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Create React App выполняСт Π·Π° вас всС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ настройкС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, поэтому ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ· прилоТСния ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ придСтся Π²Π½ΠΎΡΠΈΡ‚ΡŒ всС слоТныС настройки ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

ΠœΠΈΠ½ΡƒΡ прилоТСния Create React App Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² это Π½Π΅Π²Π°ΠΆΠ½ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ Ссли Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС аспСкты процСсса сборки, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. Однако, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅, послС извлСчСния ΠΊΠΎΠ΄Π° Π²Ρ‹ Π½Π΅ смоТСтС ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Π΅Π³ΠΎ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ вСрсиями прилоТСния Create React App, ΠΈ Π²Π°ΠΌ придСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ всС ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ.

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ скрипты для сборки ΠΈ тСстирования вашСго ΠΊΠΎΠ΄Π°. На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ шагС ΠΌΡ‹ запустим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ сСрвСрС.

Π¨Π°Π³ 3 β€” Запуск сСрвСра

На этом шагС Π²Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр ΠΈ запуститС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² своСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

ΠŸΠ΅Ρ€Π΅Π΄ запуском сСрвСра Π²Ρ‹ Π½Π΅Π½Π°Π΄ΠΎΠ»Π³ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π·Π°ΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΠΉ тСкст, Π° ΠΏΠΎΡ‚ΠΎΠΌ появится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ экран:

Если Π²Ρ‹ запускаСтС скрипт Π² локальной систСмС, ΠΎΠ½ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ΠΎΠΊΠ½Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ фокус с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π½Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€.

Π’ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаблон ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° React:

ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Пока скрипт Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр. Для остановки скрипта слСдуСт Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ ΠΈΠ»ΠΈ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈΠ»ΠΈ ввСсти CTRL+C ΠΈΠ»ΠΈ ⌘-+c Π² ΠΎΠΊΠ½Π΅ ΠΈΠ»ΠΈ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Π³Π΄Π΅ выполняСтся ваш скрипт.

Π’Ρ‹ запустили сСрвСр, ΠΈ ваш ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠ΄ React ΡƒΠΆΠ΅ выполняСтся. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ измСнСния Π² ΠΊΠΎΠ΄ React JavaScript, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ React Π½Π° страницС.

Π¨Π°Π³ 4 β€” ИзмСнСниС Π³Π»Π°Π²Π½ΠΎΠΉ страницы

Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ вывСсти список Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls :

Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ список Ρ„Π°ΠΉΠ»ΠΎΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°:

Π€Π°ΠΉΠ» manifest.json содСрТит структурированный Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Помимо ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, Π² Π½Π΅ΠΌ указываСтся, ΠΊΠ°ΠΊΠΈΠ΅ Π·Π½Π°Ρ‡ΠΊΠΈ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² экрана.

Π€Π°ΠΉΠ» index.html прСдставляСт собой ΠΊΠΎΡ€Π½Π΅Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ вашСго прилоТСния. ИмСнно этот Ρ„Π°ΠΉΠ» считываСт сСрвСр, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ваш Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΈ посмотритС Π½Π° Π½Π΅Π³ΠΎ.

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅:

Π’ тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅Π³Π° с React App Π½Π° Sandbox :

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ измСнСния ΠΈ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ отобраТаСтся Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ автоматичСски. Если этого Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ страницу ΠΈ посмотритС Π½Π° измСнСния.

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

Π’ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ сообщСниС ΠΎΠ± ошибкС:

ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ имя с base Π½Π° root :

Π’Ρ‹ запустили сСрвСр ΠΈ внСсли нСбольшоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΡ€Π½Π΅Π²ΡƒΡŽ страницу HTML. Пока Π΅Ρ‰Π΅ Π²Ρ‹ Π½Π΅ мСняли ΠΊΠΎΠ΄ JavaScript. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ React JavaScript.

Π¨Π°Π³ 5 β€” ИзмСнСниС Ρ‚Π΅Π³Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ стилСй

Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΈΠ»ΠΈ тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹.

Рассмотрим ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» App.test.js :

Когда Π²Ρ‹ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚Π΅ этот Ρ„Π°ΠΉΠ», Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ простой тСст:

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

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» App.css Π² ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌ тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

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

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это выглядСло Ρ€Π°Π½ΡŒΡˆΠ΅:

ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ послС измСнСния:

ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΈ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ».

Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Пока Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ Π²ΠΈΠ΄Π΅Π»ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ это, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» App.js :

Код Π² этом Ρ„Π°ΠΉΠ»Π΅ выглядит ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ стандартных элСмСнтов HTML. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ содСрТимоС Ρ‚Π΅Π³Π°

с Edit src/App.js and save to reload. Π½Π° Hello, world ΠΈ сохранитС измСнСния.

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ измСнСния:

ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’Ρ‹ внСсли ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ React.

Π—Π΄Π΅ΡΡŒ происходит Π΅Ρ‰Π΅ нСсколько Π²Π΅Ρ‰Π΅ΠΉ. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° элСмСнт img :

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ logo Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ строками ΠΈΠ»ΠΈ числами, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки. React ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡ… ΠΊΠ°ΠΊ элСмСнты JavaScript, Π° Π½Π΅ ΠΊΠ°ΠΊ строки. Π’ этом случаС Π²Ρ‹ Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Π·, Π° ΡΡΡ‹Π»Π°Π΅Ρ‚Π΅ΡΡŒ Π½Π° Π½Π΅Π³ΠΎ. Когда Webpack выполняСт сборку ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΎΠ½ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π· ΠΈ Π·Π°Π΄Π°Π΅Ρ‚ для источника ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ мСсто.

Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€.

Если Π²Ρ‹ посмотритС Π½Π° элСмСнты DOM Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ добавляСт ΠΏΡƒΡ‚ΡŒ. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Chrome, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ элСмСнт, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Ρ€Π°Π² ΠΏΡƒΠ½ΠΊΡ‚ Inspect.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅:

ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ react ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’ DOM содСрТится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка:

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

Π’Ρ‹ внСсли нСбольшоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄ React JavaScript. На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ шагС ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ build для ΠΌΠΈΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Π² нСбольшой Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½Π° сСрвСрС.

Π¨Π°Π³ 6 β€” Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

На этом шагС ΠΌΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ сборку ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½Π° Π²Π½Π΅ΡˆΠ½ΠΈΡ… сСрвСрах.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ build/index.html Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.

Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

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

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

Π’ этом ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΌ руководствС Π²Ρ‹ создали своС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ React ΠΈ настроили ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов сборки JavaScript Π±Π΅Π· нСобходимости Π²Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² тСхничСскиС Π΄Π΅Ρ‚Π°Π»ΠΈ. Π’ этом ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ польза прилоТСния Create React App: Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ всС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ позволяСт ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ слоТныС этапы сборки ΠΈ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° ΠΊΠΎΠ΄Π΅ React.

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

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ React Π² дСйствии, ΠΏΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅Π΅ руководство ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· DigitalOcean API с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ React.

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

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

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