🌐 100 Π΄Π½Π΅ΠΉ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ β€” Ρ‡Ρ‚ΠΎ я сдСлал Π½Π° 8-ΠΉ дСнь

К настоящСму Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ я ΠΈΠ·ΡƒΡ‡ΠΈΠ» ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ этой ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ JavaScript β€” React. ΠŸΠΎΡ‡Ρ‚ΠΈ ΠΎΠ±ΠΎ всСх я рассказывал Π² своих ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Π±Π»ΠΎΠ³Π°Ρ…. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ² большС Π½Π΅Π΄Π΅Π»ΠΈ Π½Π° Π΅Π΅ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅, я Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ освоился с этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ JS.

βœ” Ошибка Ρ‚ΠΈΠΏΠ° β€” ΠΎΡ‚Π»Π°ΠΆΠ΅Π½ΠΎ

НачнСм с Ρ‚ΠΎΠ³ΠΎ, Π½Π° Ρ‡Π΅ΠΌ я остановился Π²Ρ‡Π΅Ρ€Π°. Π”Π°! Ошибка. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΎ. НС ΠΌΠ½ΠΎΠΉ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π° двумя Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ людьми β€” ΠΡˆΠ°Ρ€ Π˜Ρ€Ρ„Π°Π½ ΠΈ Π‘Π°ΠΊΠΈΠ± Амин. πŸ™Œ

Π’Ρ‡Π΅Ρ€Π° Π²Π΅Ρ‡Π΅Ρ€ΠΎΠΌ ΠΡˆΠ°Ρ€ ΡƒΠ²ΠΈΠ΄Π΅Π» ΠΌΠΎΠΉ ΠΊΠΎΠ΄ ΠΈ понял, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ°Π΄Π°Π΅Ρ‚. Π‘Π°ΠΊΠΈΠ± сдСлал Ρ‚ΠΎ ΠΆΠ΅ самоС ΡƒΡ‚Ρ€ΠΎΠΌ. Он Ρ€Π΅ΡˆΠΈΠ» ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π» pull request (PR) Π½Π° GitHub.

Π’Π°ΠΊ Π² Ρ‡Π΅ΠΌ Π±Ρ‹Π»Π° ошибка!? Π― сдСлал ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ Π² своСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ прилоТСния. Π― ΠΏΠΎ ошибкС написал onDelele вмСсто onDelete Π² качСствС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΌΠΎΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° счСтчиков. Π­Ρ‚Π° нСбольшая ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠ° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»Π° ΠΊ сбою прилоТСния всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° я Π½Π°ΠΆΠΈΠΌΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡƒ удалСния. πŸ˜•

Π’Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ я допустил ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ Π² строкС β„–10. ПослС Π΅Π΅ устранСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ стало Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ пСрСстало Π²Ρ‹Π»Π΅Ρ‚Π°Ρ‚ΡŒ. Π”Π°!! πŸ₯‚

πŸ“¦ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π±Π΅Π· сохранСния состояния

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

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π±Π΅Π· сохранСния состояния Π² Π²ΠΈΠ΄Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Как!? Позволь ΠΌΠ½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚Π΅Π±Π΅.

⚑ Π­Ρ‚Π° функция называСтся Ρ„Π°Π±Ρ€ΠΈΡ‡Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½ΠΎ Π² нашСм случаС JSX-выраТСния. Как Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅, я ΠΏΠ΅Ρ€Π΅Π΄Π°Π» props Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ NavBar. Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ props Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·ΠΆΠ΅ ΠΊ Π½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

πŸš€ ДСструктурированиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Π’ ΠΌΠΎΠ΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ я ΡˆΠΈΡ€ΠΎΠΊΠΎ использовал this.props[property name] Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… мСстах. Π­Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ сдСлало ΠΌΠΎΠΉ ΠΊΠΎΠ΄ бСспорядочным. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π½Π°ΠΌ с этим Π΄Π΅Π»Π°Ρ‚ΡŒ?

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ наш ΠΊΠΎΠ΄ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡ΠΈΡ‰Π΅, дСструктурировав ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ props Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… Π±Π΅Π· сохранСния состояния. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ дСструктурированного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° вмСсто this.props[имя свойства]. 🀞

πŸ” ΠšΡ€ΡŽΡ‡ΠΊΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ React ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ряд Ρ„Π°Π· Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ своСго ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. Π­Ρ‚ΠΎ Ρ„Π°Π·Ρ‹ монтирования, обновлСния ΠΈ размонтирования. Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°Π·Ρ‹, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ. На всСх этих этапах Π΅ΡΡ‚ΡŒ нСсколько ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΊΡ€ΡŽΡ‡ΠΊΠ°ΠΌΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. React автоматичСски Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ эти ΠΊΡ€ΡŽΡ‡ΠΊΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° Π² соотвСтствии с ΠΈΡ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ„Π°Π·ΠΎΠΉ. πŸ’―

На этапС монтирования экзСмпляр ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° создаСтся ΠΈ вставляСтся Π² DOM. Π€Π°Π·Π° ΠΌΠΎΠ½Ρ‚Π°ΠΆΠ° ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€ΠΈ ΠΊΡ€ΡŽΡ‡ΠΊΠ° ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°

  • конструктор
  • ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ
  • ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΄ΠΈΠ΄ΠΌΠ°ΡƒΠ½Ρ‚

πŸ“ƒ ОбновлСниС состояния происходит ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. На этом этапС Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° ΠΊΡ€ΡŽΡ‡ΠΊΠ° ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°:

  • ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ
  • ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΄ΠΈΠ΄ΠΎΠ±Π΄Π°Ρ‚Π΅

Π­Ρ‚Π°ΠΏ размонтирования происходит, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ удаляСтся ΠΈΠ· DOM. Он содСрТит Ρ…ΡƒΠΊ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ componentWillUnmount.

Π― ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΠ» эти ΠΊΡ€ΡŽΡ‡ΠΊΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°, Π½ΠΎ я Π½Π΅ Π±ΡƒΠ΄Ρƒ большС ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚. ΠšΡ€ΡŽΡ‡ΠΊΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° Π±Ρ‹Π»ΠΈ ΠΌΠΎΠ΅ΠΉ послСднСй Ρ‚Π΅ΠΌΠΎΠΉ сСгодня. Π—Π°Π²Ρ‚Ρ€Π° я Π½Π°ΠΏΠΈΡˆΡƒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ я ΡƒΠ·Π½Π°Π» Π² свой 9-ΠΉ дСнь. А ΠΏΠΎΠΊΠ°, ΠΏΡ€ΠΈΠ²Π΅Ρ‚ ✌

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ Π½Π° https://msaad.dev 1 августа 2019 Π³.