Π Π΅Π°ΠΊΡ‚ Ρ‡Ρ‚ΠΎ это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

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

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

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

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ React

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

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

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

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

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

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

Как React ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ JavaScript?

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

This heading constant is known as a JSX expression. React can use it to render that

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

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

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

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

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

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

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

Настройка вашСго ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ React прилоТСния

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

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

ΠžΡΠ½ΠΎΠ²Ρ‹ React: всё, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React, Π½ΠΎ Π²Π°ΠΌ всё Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π²Ρ‹ΠΏΠ°Π΄Π°Π΅Ρ‚ шанс ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ? Или, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π²Ρ‹ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ React, Π½ΠΎ Π½Π΅ смогли Ρ‚ΠΎΠ»ΠΊΠΎΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ? А ΠΌΠΎΠΆΠ΅Ρ‚, Π²Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ с основами, Π½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ привСсти Π² порядок знания? Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ написана ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ» хотя Π±Ρ‹ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· этих вопросов. БСгодня ΠΌΡ‹ создадим простой ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚Π΅Π»ΡŒ, раскрывая основныС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ React ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ продвиТСния ΠΊ Ρ†Π΅Π»ΠΈ.

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

Π Π°Π·ΠΎΠ±Ρ€Π°Π²ΡˆΠΈΡΡŒ с этим ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠΌ, Π²Ρ‹ освоитС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°

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

Для Π½Π°Ρ‡Π°Π»Π° создайтС Π½ΠΎΠ²ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ‚ΡƒΠ΄Π° Ρ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π°. Π’ΠΎΡ‚ ΠΎΠ½ΠΈ Π½Π° GitHub, Π° Π²ΠΎΡ‚ ΠΈΡ… ΠΊΠΎΠ΄.

Для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ прохоТдСния этого руководства Π²Π°ΠΌ понадобится свСТая вСрсия Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Google Chrome, ΠΈΠ½Π°Ρ‡Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ. Π’Ρ‹Ρ€Π°ΠΆΠ°Π΅ΠΌ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ Π‘Ρ‚ΠΈΠ²Π΅Π½Ρƒ Π€Π°Π±Ρ€Π΅ Π·Π° CSS для ΠΊΠ½ΠΎΠΏΠΊΠΈ проигрывания ΠΈ ДТастину Π’ΠΈΠ½Π΄Π»Ρƒ Π·Π° ΠΊΠΎΠ΄ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ здСсь).

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ index.html Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π° ΠΈ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с React.

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

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

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π·Π±ΠΈΠ²ΠΊΠΈ страницы Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹:

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

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ страницы, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π½Π° рисункС, считаСтся ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ. Но Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ React?

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ React β€” это, Ссли ΠΏΠΎ-простому, участок ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт Ρ‡Π°ΡΡ‚ΡŒ Π²Π΅Π±-страницы. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ β€” это JavaScript-функция, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ кусок ΠΊΠΎΠ΄Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ страницы.

Для формирования страницы ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ порядкС, собираСм вмСстС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

НапишСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π³Π°

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Ρ‚Π°ΠΊ:

React ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ язык программирования, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ JSX, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° HTML, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ JavaScript, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΎΡ‚ HTML.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ сюда ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ HTML для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΏΠΎΠΏΠ°Π» Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс:

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

МоТно ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнный ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° JSX. ДСлаСтся это Ρ‚Π°ΠΊ:

Π­Ρ‚ΠΎ β€” стандартный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€” Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ‚Π°ΠΊ, Π±ΡƒΠ΄Ρ‚ΠΎ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с HTML.

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

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ React ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄:

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

ИмСнно Ρ‚Π°ΠΊ страницы ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ ΠΈΠ· Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ², написанных Π½Π° React β€” вкладывая ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π°.

ΠšΠ»Π°ΡΡΡ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

Π”ΠΎ сих ΠΏΠΎΡ€ ΠΌΡ‹ писали ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² Π²ΠΈΠ΄Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π˜Ρ… Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. Однако, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ ΠΈΠ½Π°Ρ‡Π΅, Π² Π²ΠΈΠ΄Π΅ классов JavaScript. Π˜Ρ… Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ классами ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

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

JavaScript Π² JSX

Π’ JSX-ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ JavaScript. Выглядит это Ρ‚Π°ΠΊ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ тСкст Β«I am a stringΒ» окаТСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π³Π°

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ Π²Π΅Ρ‰ΠΈ послоТнСС, Π²Ρ€ΠΎΠ΄Π΅ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ страница послС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π°:

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

ΠŸΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ JSX

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ этого Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ, Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ свойством className :

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ создаваСмого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°

ΠœΠ΅Ρ‚ΠΎΠ΄ constructor ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° React всСгда Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ super(props) ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.
Π˜Ρ‚Π°ΠΊ, Π° Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ с этим «состояниСм»? Π—Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½ΠΎ?

ИзмСнСниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° React Π½Π° основС Π΅Π³ΠΎ состояния

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

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ render ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово this всСгда ссылаСтся Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½Π° находится.

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

Как ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° события?

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ, щёлкая ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ проигрывания ΠΌΡƒΠ·Ρ‹ΠΊΠΈ. ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° эти события. ДСлаСтся это посрСдством Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая занимаСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ событий. Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π°ΠΊ ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ β€” ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий.

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‰Ρ‘Π»ΠΊΠ°Π΅Ρ‚ ΠΏΠΎ тСксту, прСдставлСнному Ρ‚Π΅Π³ΠΎΠΌ

Как Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π²ΡˆΠΈΡΡŒ с этим ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ, займёмся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Ρ‰Π΅Π»Ρ‡ΠΊΠ° ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅.

ОбмСн Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ

Когда состояниС Container мСняСтся, свойство PlayButton Ρ‚Π°ΠΊΠΆΠ΅ мСняСтся, ΠΈ функция PlayButton вызываСтся снова. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π° экранС обновится.

Π’Π½ΡƒΡ‚Ρ€ΠΈ PlayButton ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° измСнСния, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ PlayButton ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ свойства ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚:

Если ΠΌΡ‹ помСняСм состояниС Π½Π° this.state = < isMusicPlaying: true >; ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ страницу, Π½Π° Π½Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΏΠ°ΡƒΠ·Ρ‹:

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

Бобытия ΠΊΠ°ΠΊ свойства

Бвойства Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅. Они ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ функциями.

НСприятная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ setState

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π½Π΅ слСдуСт:

Если Π²Ρ‹ измСняСтС состояниС, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ состоянии, Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. А ΠΈΠΌΠ΅Π½Π½ΠΎ, слСдуСт ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ setState Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π° Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π­Ρ‚Π° функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ староС состояниС ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π½ΠΎΠ²ΠΎΠ΅ состояниС.

Π­Ρ‚Π° конструкция слоТнСС, Π½ΠΎ ΠΎΠ½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ староС состояниС для формирования Π½ΠΎΠ²ΠΎΠ³ΠΎ состояния. Если Π½Π΅Ρ‚ β€” ΠΌΠΎΠΆΠ½ΠΎ просто ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ setState ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ссылки?

ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΡƒΠ·Ρ‹ΠΊΡƒ. Для Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Ρ‚Π΅Π³ :

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

React.js для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ: Ρ‡Ρ‚ΠΎ это, ΠΊΠ°ΠΊ устроСн ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½

Если стаТёр ΠΈΠ»ΠΈ совсСм Π·Π΅Π»Ρ‘Π½Ρ‹ΠΉ Π΄ΠΆΡƒΠ½ попросят вас ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ React.js, β€” просто ΠΏΠΎΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΈΠΌ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ.

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

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

OlyaSnow для Skillbox Media

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Π£ΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Ρ‚Ρ€ΠΈ состояния, Π½ΠΎ это Π½Π΅ ΠΏΡ€Π΅Π΄Π΅Π» β€” вСдь внСшний Π²ΠΈΠ΄ Π°Π²Π°Ρ‚Π°Ρ€ΠΊΠΈ различаСтся Π² мобильной ΠΈ дСсктопной вСрсии, Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ для Android, iOS ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π°Π²Π°Ρ‚Π°Ρ€ΠΊΠ° практичСски Π²Π΅Π·Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ β€” Π² составС Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² React.js, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ пост, шапка, боковая панСль ΠΈΠ»ΠΈ мСню.

Π’ React.js Π΅ΡΡ‚ΡŒ собствСнныС срСдства для управлСния состояниями, Π½ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π² срСдних ΠΈ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Ρ‡Π°Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Redux β€” сторонний ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ состояний. Он ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ.

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ React.js, Ссли Π΅ΡΡ‚ΡŒ HTML, JavaScript ΠΈ CSS

Никаких ΠΎΠ³ΠΎΡ€ΠΎΠ΄ΠΎΠ². React.js β€” это всСго лишь способ Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ JavaScript ΠΈ HTML, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ повторяСмым ΠΈ наглядным. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ React.js ΠΏΠΈΡˆΡƒΡ‚ Π½Π° особом языкС β€” JSX, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выглядит ΠΊΠ°ΠΊ смСсь JavaScript ΠΈ HTML. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° Π½Π° этом языкС:

JSX-ΠΊΠΎΠ΄ β€” Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ каТСтся HTML-Ρ‚Π΅Π³ΠΎΠΌ

, Π½Π° самом Π΄Π΅Π»Π΅ элСмСнт JSX

Код JSX довольно наглядный, ΠΈ, кстати, Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° HTML, β€” вовсС Π½Π΅ HTML πŸ™‚ Π—Π²ΡƒΡ‡ΠΈΡ‚ Π³Π°Π»Π»ΡŽΡ†ΠΈΠ½ΠΎΠ³Π΅Π½Π½ΠΎ, Π½ΠΎ это просто синтаксис JSX.

Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€Ρƒ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ JSX Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ β€” ΠΊΠΎΠ΄ React.js транслируСтся Π² JavaScript, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π·Π½Π°ΠΊΠΎΠΌ любой ΡƒΠ²Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ сСбя Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Для этого написанноС Π½Π° React.js ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³ΠΎΠ½ΡΡŽΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· Babel β€” ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ-транспайлСр, которая ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ прСдставлСния (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ языки Π²Ρ€ΠΎΠ΄Π΅ JSX) Π² JavaScript-ΠΊΠΎΠ΄.

JSX-код JavaScript-код послС Babel

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

Π£ React.js Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΌΠΎΡ‰Π½Ρ‹Ρ… прСимущСства:

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

React: Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ

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

Π Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Π½Π° React ΠΈΠ»ΠΈ просто ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΠ΅Ρ‚Π΅ΡΡŒ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ? Π’ΠΎΠ³Π΄Π° Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠΎΠΉ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ β€” Π’ΠΎΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ React.

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

Π― Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ с React ΡƒΠΆΠ΅ 5 Π»Π΅Ρ‚, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ касаСтся структуры прилоТСния ΠΈΠ»ΠΈ Π΅Π³ΠΎ внСшнСго Π²ΠΈΠ΄Π° (Π΄ΠΈΠ·Π°ΠΉΠ½Π°), слоТно Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹.

ВмСстС с Ρ‚Π΅ΠΌ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ написания ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ долгосрочной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ создаваСмых ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

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

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

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ истинной Π² послСднСй инстанции. Π­Ρ‚ΠΎ всСго лишь ΠΌΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… способов Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ.

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

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

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

Π”ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΏΡ€Π΅Π΄ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅Π»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. ΠœΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ модСль, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π°Π΄ΠΎ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² Π³ΠΎΠ»ΠΎΠ²Π΅, Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅.

БогласованныС (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

ΠŸΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ стиля ΠΏΡ€ΠΈ создании ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ΠŸΠΎΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎΠΆΠ΅ мСсто, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ экспорт (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΠΏΠΎ названию) ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ имСнованию ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ свои прСимущСства ΠΈ нСдостатки.

НСваТно, ΠΊΠ°ΠΊ Π²Ρ‹ экспортируСтС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π² самом Π½ΠΈΠ·Ρƒ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ, просто ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°.

Названия ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

ВсСгда ΠΈΠΌΠ΅Π½ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ трассировку стСка ошибки ΠΏΡ€ΠΈ использовании инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° React.

Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π²Ρ‹ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚Π΅ΡΡŒ.

Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅, хранящиСся Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ (снаруТи) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Для этого идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ мСсто ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ свСрху Π²Π½ΠΈΠ·.

Π­Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Β«ΡˆΡƒΠΌΒ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° β€” Π² Π½Π΅ΠΌ остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ самоС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅.

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

БоблюдСниС ΠΏΡ€Π°Π²ΠΈΠ» создания «чистых» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ позволяСт Π»Π΅Π³Ρ‡Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ошибки ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.

БтатичСская (ТСсткая) Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ°

НС создавайтС ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² ΠΈΠ»ΠΈ списков. ВмСсто этого, создайтС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с настройками ΠΈ ΠΏΠ΅Ρ€Π΅Π±Π΅Ρ€ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² Ρ†ΠΈΠΊΠ»Π΅.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ, ΠΏΡ€ΠΈ нСобходимости, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΈ элСмСнты Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС.

Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ β€” это всСго лишь функция, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠΏΡ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ. Они ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ проСктирования.

Если функция выполняСт слишком ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Ρ‡, вынСситС Ρ‡Π°ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Π’ΠΎΠΆΠ΅ самоС справСдливо Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² β€” Ссли Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ содСрТится слишком слоТный Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π½Π° нСсколько ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Если Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ являСтся слоТной, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈΠ»ΠΈ условия β€” ΠΈΠ·Π²Π»Π΅ΠΊΠΈΡ‚Π΅ Π΅Π΅ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.

ΠŸΠΎΠ»Π°Π³Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° ΠΏΡ€ΠΎΠΏΡ‹ ΠΈ ΠΊΠΎΠ»Π»Π±Π΅ΠΊΠΈ для взаимодСйствия ΠΈ получСния Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ строк ΠΊΠΎΠ΄Π° Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всСгда являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅ΠΌ Π΅Π³ΠΎ качСства. ВсСгда ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎΠ± отзывчивости ΠΈ абстракции.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² JSX

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

ΠŸΡ€Π΅Π΄ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅Π»ΠΈ

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

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Π΅, Ρƒ нас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любоС количСство Π±Π»ΠΎΠΊΠΎΠ² Β«try/catchΒ». Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅Π»ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ прилоТСния, Π½ΠΎ ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΈΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π±Ρ€ΠΎΡˆΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ каскада ошибок.

ДСструктуризация ΠΏΡ€ΠΎΠΏΠΎΠ²

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² β€” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠΏΡ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ. Π’ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π΅ΠΉ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π² случаС с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°. НСт нСобходимости Π²Π΅Π·Π΄Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ Β«propsΒ».

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π΅ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ Π² Ρ€Π°Π·Π½ΠΈΡ†Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ внСшним ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ состояниями. Однако, Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π½Π΅ сущСствуСт. НС Π½ΡƒΠΆΠ½ΠΎ всС ΡƒΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒ.

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠΏΠΎΠ²

ΠžΡ‚Π²Π΅Ρ‚ Π½Π° вопрос ΠΎ количСствС ΠΏΡ€ΠΎΠΏΠΎΠ² являСтся ΠΎΡ‡Π΅Π½ΡŒ ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠΏΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, коррСлируСтся с количСством ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π§Π΅ΠΌ большС ΠΏΡ€ΠΎΠΏΠΎΠ² пСрСдаСтся Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Ρ‚Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ Π΅Π³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ (имССтся Π²Π²ΠΈΠ΄Ρƒ количСство Ρ€Π΅ΡˆΠ°Π΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Π·Π°Π΄Π°Ρ‡).

Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ количСство ΠΏΡ€ΠΎΠΏΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π΄Π΅Π»Π°Π΅Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ.

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

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ρ‡Π΅ΠΌ большС ΠΏΡ€ΠΎΠΏΠΎΠ² ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Ρ‡Π΅ΠΌ Ρ‡Π°Ρ‰Π΅ ΠΎΠ½ пСрСрисовываСтся.

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° вмСсто ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ²

Один ΠΈΠ· способов ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠΏΠΎΠ² β€” ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ вмСсто ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ². ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π΅Π³ΠΎ адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ ΠΈ Ρ‚.Π΄. ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ… ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ процСсс добавлСния Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

Условный Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях использованиС ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… вычислСний (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° «логичСскоС И» β€” &&) для условного Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ 0 Π² UI. Π’ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Π΅Ρ€Π½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€. ЕдинствСнным нСдостатком Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° являСтся Ρ‡ΡƒΡ‚ΡŒ большСС количСство ΠΊΠΎΠ΄Π°.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «&&» ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ количСство ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ. Π’Π΅Ρ€Π½Π°Ρ€Π½ΠΈΠΊ являСтся Π±ΠΎΠ»Π΅Π΅ «многословным», Π·Π°Ρ‚ΠΎ всСгда Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΠΏΡ€ΠΈ нСобходимости становится ΠΌΠ΅Π½Π΅Π΅ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΌ.

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π΅Ρ€Π½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

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

Бписки

ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ элСмСнтов списка β€” частая Π·Π°Π΄Π°Ρ‡Π°, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π΅ΡˆΠ°Π΅ΠΌΠ°Ρ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Β«map()Β». Как Π±Ρ‹ Ρ‚ΠΎ Π½ΠΈ Π±Ρ‹Π»ΠΎ, Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅, содСрТащСм ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ отступ ΠΈ синтаксис Β«map()Β» Π½Π΅ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ читаСмости.

ΠŸΡ€ΠΈ нСобходимости ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° элСмСнтов, ΠΈΠ·Π²Π»Π΅ΠΊΠΈΡ‚Π΅ ΠΈΡ… Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π΄Π°ΠΆΠ΅ Ссли Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° нСбольшая. Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π΄Π΅Ρ‚Π°Π»ΠΈ, Π΅ΠΌΡƒ достаточно Β«Π·Π½Π°Ρ‚ΡŒΒ», Ρ‡Ρ‚ΠΎ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ мСстС рСндСрится список.

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅, СдинствСнной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ списка. Если Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° списка являСтся слоТной ΠΈ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ, Π΅Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.

ΠŸΡ€ΠΎΠΏΡ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Одним ΠΈΠ· способов опрСдСлСния ΠΏΡ€ΠΎΠΏΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ являСтся добавлСния ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Β«defaultPropsΒ». Однако, ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ функция ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈ значСния для Π΅Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… мСстах.

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

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°

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

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ влоТСнная функция Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ доступ ΠΊ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌ внСшнСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ ΠΌΠ΅Π½Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ β€” Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ эта функция (Π·Π° Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚)?

ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΠΈΡ‚Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, присвойтС Π΅ΠΉ имя ΠΈ ΠΏΠΎΠ»Π°Π³Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° ΠΏΡ€ΠΎΠΏΡ‹ вмСсто замыкания.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм

Π Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Ρ‹

ΠŸΠΎΡ€ΠΎΠΉ Π½Π°ΠΌ трСбуСтся Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ способ опрСдСлСния ΠΈ управлСния состояниСм, Ρ‡Π΅ΠΌ Β«useState()Β». ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«useReducer()Β» ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ сторонним Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ. Π­Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ инструмСнт для управлСния слоТным состояниСм, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΉ использования зависимостСй.

Π’ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ с контСкстом ΠΈ TypeScript, Β«useReducer()Β» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ. К соТалСнию, Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ часто. Π›ΡŽΠ΄ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Если Π²Π°ΠΌ трСбуСтся нСсколько частСй состояния, пСрСмСститС ΠΈΡ… Π² Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€:

Π₯ΡƒΠΊΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ² HOC ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€-ΠΏΡ€ΠΎΠΏΠΎΠ²

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π½Π°ΠΌ трСбуСтся Β«ΡƒΡΠΈΠ»ΠΈΡ‚ΡŒΒ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅ΠΌΡƒ доступ ΠΊ внСшним Π΄Π°Π½Π½Ρ‹ΠΌ. БущСствуСт Ρ‚Ρ€ΠΈ способа это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ β€” ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ порядка (HOC), Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠΏΡ‹ ΠΈ Ρ…ΡƒΠΊΠΈ.

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

HOC ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ значСния Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΎΠΏΠΎΠ². НС всСгда ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΠΎΡ‚ΠΊΡƒΠ΄Π° приходят значСния, ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈΠ»ΠΈ ΠΈΠ· Π΅Π³ΠΎ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠΏΠΎΠ² являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстным источником ошибок.

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

Π’ случаС с Ρ…ΡƒΠΊΠ°ΠΌΠΈ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с простыми значСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠΌΠ΅ΡˆΠΈΠ²Π°ΡŽΡ‚ΡΡ с JSX.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для получСния Π΄Π°Π½Π½Ρ‹Ρ…

ΠžΡ‡Π΅Π½ΡŒ часто Π΄Π°Π½Π½Ρ‹Π΅ для состояния «приходят» ΠΈΠ· API. Нам Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈΡ… Π² памяти, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… мСстах.

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

Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с внСшними Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π΅Ρ‰Π΅ Π»Π΅Π³Ρ‡Π΅, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ GraphQL-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Apollo. Он Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ состояния ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для управлСния состояниСм

Π’ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π½Π°ΠΌ для управлСния состояниСм прилоТСния Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Они Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ лишь Π² ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… прилоТСниях с ΠΎΡ‡Π΅Π½ΡŒ слоТным состояниСм. Π’ Ρ‚Π°ΠΊΠΈΡ… ситуациях я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ β€” Recoil ΠΈΠ»ΠΈ Redux.

ΠœΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŒ

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, принято Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π° Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ β€” прСдставитСли ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΈΠ»ΠΈ Β«ΡƒΠΌΠ½Ρ‹Π΅Β» ΠΈ Β«Π³Π»ΡƒΠΏΡ‹Π΅Β».

Π‘ΡƒΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π΅ содСрТат состояния ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°. Они просто Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠΏΠ°ΠΌΠΈ. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, содСрТит Π½Π΅ΠΊΡƒΡŽ бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ, отправляСт запросы Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ управляСт состояниСм.

Данная ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ модСль ΠΏΠΎ Ρ„Π°ΠΊΡ‚Ρƒ описываСт ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ проСктирования MVC для сСрвСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΌ ΠΎΠ½Π° прСкрасно Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Но Π² соврСмСнных клиСнтских прилоТСниях Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ сСбя Π½Π΅ ΠΎΠΏΡ€Π°Π²Π΄Ρ‹Π²Π°Π΅Ρ‚. ΠŸΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ всСй Π»ΠΎΠ³ΠΈΠΊΠΈ Π² нСсколько ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΈΡ… Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠΌΡƒ Β«Ρ€Π°Π·Π΄ΡƒΡ‚ΠΈΡŽΒ». Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Ρ‡. Код Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° тяТСло ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ. ΠŸΡ€ΠΈ ростС прилоТСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΠ΄Π° Π² Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΌ состоянии становится практичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с состояниСм ΠΈ Π±Π΅Π·

РаздСляйтС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с состояниСм ΠΈ Π±Π΅Π·. Упомянутая Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ модСль ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ нСбольшоС количСство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ всСго прилоТСния. Данная модСль ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ Π½Π° максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ количСство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

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

НапримСр, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ значСния ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π±Π΅ΠΊΠΈ. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ ΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ Ρ‚.Π΄.

ΠšΡ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ Ρ„ΠΎΡ€ΠΌΡ‹? ПолС для Π²Π²ΠΎΠ΄Π°? Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ прилоТСния. Как ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки? Как Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ состояниС ошибки? Π‘ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ Ρ„ΠΎΡ€ΠΌΠ° Β«Π·Π½Π°Ρ‚ΡŒΒ» ΠΎ Ρ‚Π°ΠΊΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ? Если Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка, получится Π»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ?

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… вопросов становится ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ мСсто смСшиваниС обязанностСй. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Β«ΠΈΠ½ΠΏΡƒΡ‚ΡƒΒ» Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Π±Π΅Π· состояния ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΡ‹.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° прилоТСния

Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρƒ/ΠΌΠΎΠ΄ΡƒΠ»ΡŽ

Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ слоТным Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ Ρ‚ΠΎΠ³ΠΎ, ΠΊ ΠΊΠ°ΠΊΠΎΠΉ части прилоТСния относится ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Β«Π±Π»ΠΈΠ·ΠΊΠΎΠ΅Β» знакомство со всСй ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·ΠΎΠΉ.

НС всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ β€” Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΡƒΠ·ΡŽΡ‚ΡΡ глобально, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ созданы для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ спСцифичСских Π·Π°Π΄Π°Ρ‡. Вакая структура ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Однако, для срСдних ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² такая структура Π½Π΅ΠΏΡ€ΠΈΠ΅ΠΌΠ»ΠΈΠΌΠ°.

Π‘ самого Π½Π°Ρ‡Π°Π»Π° Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρƒ/ΠΌΠΎΠ΄ΡƒΠ»ΡŽ. Вакая структура обСспСчиваСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ. Π­Ρ‚ΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ пСрСрасти Π΅Π³ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ. Если ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Β«ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎ-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΡƒΒ», Ρ‚ΠΎ это ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ быстро.

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

Β«ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Β» Π½Π΅ являСтся Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ, Π½ΠΎ ΠΎΠ½Π° Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ общая (абстрактная). Она Π½Π΅ скаТСт Ρ‚ΠΎΠΌΡƒ, ΠΊΡ‚ΠΎ Π΅Π΅ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прилоТСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ React.

ΠžΠ±Ρ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

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

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

ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ части прилоТСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π»Π΅Π³ΠΊΠΎ, насколько это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π­Ρ‚ΠΎ относится Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΊΠΎΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π½ΠΎ ΠΈ ΠΊ мСсту Π΅Π³ΠΎ располоТСния. ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ придСтся Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ мСсто. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, это ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ располоТСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ прСфикс «@» Π² качСствС ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ модуля, Π½ΠΎ я Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΈΠ΄Π΅Π» ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования символа «

ΠžΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ слишком ΠΌΠ½ΠΎΠ³ΠΎ сторонних ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Боздавая Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ для Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈ нСобходимости ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… API. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС.

Π­Ρ‚ΠΎ относится ΠΊΠ°ΠΊ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Semantic UI, Ρ‚Π°ΠΊ ΠΈ ΠΊ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌ. ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ способ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ экспортС Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈΠ· ΠΎΠ±Ρ‰Π΅Π³ΠΎ модуля.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ.

Один ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ β€” ΠΎΠ΄Π½Π° дирСктория

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

Π₯ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ являСтся созданиС Ρ„Π°ΠΉΠ»Π° Β«index.jsΒ» для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ экспорта ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π­Ρ‚ΠΎ позволяСт Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡƒΡ‚ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ дублирования названия ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° β€” Β«import Form from ‘components/UserForm/UserForm’Β». Однако, Π½Π΅ слСдуСт ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² Ρ„Π°ΠΉΠ» Β«index.jsΒ», ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это сдСлаСт Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ поиск ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΠΎ названию Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°.

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

ΠŸΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ оптимизация

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

РазумССтся, Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Ρ‚Π°ΠΊΠΈΡ… Π²Π΅Ρ‰Π°Ρ…, ΠΊΠ°ΠΊ оптимизация, Π½ΡƒΠΆΠ½ΠΎ, Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ слСдуСт ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Ρ… ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π₯ΠΎΡ€ΠΎΡˆΠΎ написанный ΠΊΠΎΠ΄ Π»Π΅Π³Ρ‡Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ.

Если Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ прилоТСния, ΠΈΠ·ΠΌΠ΅Ρ€ΡŒΡ‚Π΅ Π΅Π΅ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ. НСт смысла ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒ количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ΠΎΠ² ΠΏΡ€ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ Β«Π±Π°Π½Π΄Π»Π°Β».

ПослС опрСдСлСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, устранитС ΠΈΡ… Π² порядкС влияния Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Π Π°Π·ΠΌΠ΅Ρ€ сборки

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

НС ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅ΡΡŒ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ Β«Π±Π°Π½Π΄Π»ΡƒΒ». РаздСляйтС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ² ΠΈ Π΄Π°ΠΆΠ΅ большС. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ отправляСтС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρƒ минимальноС количСство ΠΊΠΎΠ΄Π°.

ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠΉΡ‚Π΅ ΠΏΠΎΠ΄Π³Ρ€ΡƒΠ·ΠΊΡƒ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ намСрСния ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ прилоТСния. Если Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ запускаСт Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ PDF-Ρ„Π°ΠΉΠ»Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ навСдСния курсора Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ β€” ΠΊΠΎΠ»Π»Π±Π΅ΠΊΠΈ, массивы ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

НСобходимо ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΊ сниТСнию количСства ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎΠ± этом, Π½Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π²Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Π΅ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ΠΈ Ρ€Π΅Π΄ΠΊΠΎ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ сущСствСнноС влияниС Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

НС ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ»Π»Π±Π΅ΠΊΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΎΠΏΠΎΠ². ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ функция ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· создаСтся Π·Π°Π½ΠΎΠ²ΠΎ, запуская ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³.

Если Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ замыкания, ΠΈΠ·Π±Π°Π²ΡŒΡ‚Π΅ΡΡŒ ΠΎΡ‚ Π½ΠΈΡ…. Но Π½Π΅ Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄ ΠΌΠ΅Π½Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈΠ»ΠΈ слишком «многословным».

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

ВСстированиС

ВСстированиС ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ снимков

ΠžΠ΄Π½Π°ΠΆΠ΄Ρ‹, я столкнулся с интСрСсной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ snapshot-тСстирования: сравнСниС Β«new Date()Β» Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄Π°Ρ‚ΠΎΠΉ всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π»ΠΎ Β«falseΒ».

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

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ снимки Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ тСстов Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π›ΠΈΡ‡Π½ΠΎ я этим Π²ΠΈΠ΄ΠΎΠΌ тСстирования большС Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ.

ВСстированиС ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°

Основная Π·Π°Π΄Π°Ρ‡Π° тСстирования Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΊΠ°ΠΊ оТидаСтся. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΊΠ°ΠΊ с Β«Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹ΠΌΠΈΒ», Ρ‚Π°ΠΊ ΠΈ с ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠΏΠ°ΠΌΠΈ.

Π’Π°ΠΊΠΆΠ΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ отобраТаСтся Π½Π° экранС.

ВСстированиС состояния ΠΈ событий

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с состояниСм, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, мСняСтся Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° событиС. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΡŽ события ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π° Π½Π΅Π³ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚.

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π²Π΅Ρ€Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ установку Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ состояния.

ВСстированиС ΠΏΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Ρ… случаСв

ПослС покрытия ΠΊΠΎΠ΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ тСстами, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ нСсколько тСстов для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ особых случаСв.

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

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ тСстированиС

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

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΡŽΠ½ΠΈΡ‚-тСсты, Π½ΠΎ ΠΏΡ€ΠΈ этом взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Бтилизация

CSS-Π²-JS

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ спорный вопрос. Π›ΠΈΡ‡Π½ΠΎ я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²Ρ€ΠΎΠ΄Π΅ Styled Components ΠΈΠ»ΠΈ Emotion, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ стили Π² JavaScript. Одним Ρ„Π°ΠΉΠ»ΠΎΠΌ мСньшС. НС Π½Π°Π΄ΠΎ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Ρ‚Π°ΠΊΠΈΡ… Π²Π΅Ρ‰Π°Ρ…, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, названия классов.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ React являСтся ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° CSS-Π²-JS ΠΈΠ»ΠΈ, Ρ‚ΠΎΡ‡Π½Π΅Π΅, всС-Π²-JS, Π½Π° ΠΌΠΎΠΉ взгляд, являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ стилизации (SCSS, CSS-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ со стилями Ρ‚ΠΈΠΏΠ° Tailwind) Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ, Π½ΠΎ я всС ΠΆΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CSS-Π²-JS.

Π‘Ρ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, я ΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ стилизованныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚, Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΊΠΎΠ³Π΄Π° стилизованных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈΠΌΠ΅Π΅Ρ‚ смысл вынСсти ΠΈΡ… Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Π― Π²ΠΈΠ΄Π΅Π» использованиС Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π²Ρ€ΠΎΠ΄Π΅ Spectrum.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

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

ИспользованиС Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ отслСТиваниС статуса Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° HTTP-ошибок возлагаСтся Π½Π° нас. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ «многословности» ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ количСству шаблоного ΠΊΠΎΠ΄Π°.

ВмСсто этого, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠ°ΠΊ React Query ΠΈ SWR. Они Π΄Π΅Π»Π°ΡŽΡ‚ взаимодСйствиС с сСрвСром органичСской Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° идиоматичСским способом β€” с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ…ΡƒΠΊΠΎΠ².

Они ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, управлСния состояниСм Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ΠΈ ΠΈΠ·Π±Π°Π²Π»ΡΡŽΡ‚ ΠΎΡ‚ нСобходимости использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для управлСния состояниСм для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этих Π΄Π°Π½Π½Ρ‹Ρ….

Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΡŽ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π½Π΅Π΄Π΅Π»ΠΈ.

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

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

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