Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ сайт Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° 3 ΠΌΠΈΠ½.

ΠŸΠ΅Ρ€Π΅Π²Π΅ΡΡ‚ΠΈ сайт Π² мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ двумя способами. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ способ, это установка срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Β«Android StudioΒ», ΠΊ Π½Π΅ΠΉ ΠΆΠ΅ понадобится ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ Java SDK. Всё это Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ ΠΎΠ΄ΠΈΠ½ Π“Π‘, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ достаточно ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΈ ΡΠ°ΠΌΡƒΡŽ ΠΌΠ°Π»ΠΎΡΡ‚ΡŒ Π·Π½Π°Π½ΠΈΠΉ программирования.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ½Π»Π°ΠΉΠ½ сСрвисом ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡŽ сайта Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° 3 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ программирования. Π­Ρ‚ΠΎΡ‚ способ я сСгодня ΠΈ ΠΏΠΎΠΊΠ°ΠΆΡƒ Π’Π°ΠΌ. ΠšΡΡ‚Π°Ρ‚ΠΈ, сайт Π΄Π΅Π»Π°Π΅Ρ‚ сразу 2 вСрсии: ΠΏΠΎΠ΄ IOS ΠΈ Android.

Онлайн конвСртация

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·, я встрСтил сайт Β«GoNativeΒ» нСсколько Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄. Π’ΠΎΠ³Π΄Π° всС Π°Π½Π°Π»ΠΎΠ³ΠΈ Π±Ρ‹Π»ΠΈ ΠΏΠ»Π°Ρ‚Π½Ρ‹Π΅ ΠΈ этот мСня приятно ΡƒΠ΄ΠΈΠ²ΠΈΠ». Π― сдСлал сСбС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΌ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€ΠΎΠΌ для Андроид Π’Π’ Бокса. НСдавно, ΠΌΠ½Π΅ понадобилось ΠΎΠΏΡΡ‚ΡŒ Π·Π° ΠΏΠ°Ρ€Ρƒ ΠΌΠΈΠ½ΡƒΡ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· сайта ΠΈ Π½Π°ΠΉΡ‚ΠΈ этот сайт оказалось ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Π° всС Π°Π½Π°Π»ΠΎΠ³ΠΈ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΠ»Π°Ρ‚Π½Ρ‹Π΅. Всё ΠΆΠ΅ я Π΅Π³ΠΎ нашСл, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ…ΠΎΡ‡Ρƒ подСлится с Π²Π°ΠΌΠΈ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ произвСсти ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡŽ.

Π§Ρ‚ΠΎΠ± ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

По Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ счСту, Ссли Π’Π°ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ использования, достаточно Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 3 поля: 1 β€” адрСс сайта; 2 – Π½Π°Π·Π²Π°Π½ΠΈΠ΅ прилоТСния; 3 – ΠΏΠΎΡ‡Ρ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΈΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта

БобствСнно, большС Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅Ρ‡Π΅Π³ΠΎ. Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ установкС Π½Π° любоС устройство. Если Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ вопросы – всСгда ΠΎΡ‚Π²Π΅Ρ‡Ρƒ Π² коммСнтариях!

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

Как ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π΅Π±-сайт Π² мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ 7 строк JSON

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

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта
ΠŸΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π²Π΅Π±-сайта Π² мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠžΠ±Π·ΠΎΡ€

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

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

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²ΠΎΡ‚ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ вопрос: «МоТно Π»ΠΈ, просто рСдактируя JSON, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ API, с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ систСмными ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ страницами?Β».

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

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ я встроил Π² это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ страницу с github.com, ΠΎΠ΄Π½Π°ΠΊΠΎ всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ β€” это Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π²Ρ€ΠΎΠ΄Π΅ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния. ΠŸΡ€ΠΈ этом ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ страницами прилоТСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ систСмныС возмоТности. ДСлаСтся это автоматичСски ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π² ΠΊΠΎΠ΄ сайта.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ я расскаТу ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ это сдСлано, Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π²ΠΏΠΎΠ»Π½Π΅ Ρ€Π΅Π·ΠΎΠ½Π½Ρ‹ΠΉ вопрос: «Всё это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ΄Ρ‘Ρ‚ Ρ€Π΅Ρ‡ΡŒ, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅, Π° Π½Π΅ Π½Π΅Ρ‡Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ простого «просмотрщика» Π²Π΅Π±-страниц Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ прилоТСния?Β».

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ вопрос. БобствСнно говоря, ΠΎΡ‚Π²Π΅Ρ‚Ρƒ Π½Π° Π½Π΅Π³ΠΎ ΠΈ посвящСна данная ΡΡ‚Π°Ρ‚ΡŒΡ. Если Π² Π΄Π²ΡƒΡ… словах, Ρ‚ΠΎ ΡΡƒΡ‚ΡŒ рассматриваСмой здСсь ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² создании двустороннСго ΠΊΠ°Π½Π°Π»Π° связи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ для Π²Ρ‹Π²ΠΎΠ΄Π° Π²Π΅Π±-содСрТимого ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ это даст Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ JavaScript-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, находящиСся Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅, Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ API, располоТСнным Π·Π° Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ.

ВзглянСм Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅.

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для создания QR-ΠΊΠΎΠ΄ΠΎΠ²

Π’ΠΎΡ‚ основныС составныС части этого прилоТСния:

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΈ взаимодСйствиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² прилоТСния. А ΠΈΠΌΠ΅Π½Π½ΠΎ, QR-ΠΊΠΎΠ΄ мСняСтся послС Π²Π²ΠΎΠ΄Π° Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. ДСлаСтся это благодаря возмоТности Π²Ρ‹Π·ΠΎΠ²Π° JavaScript-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, располоТСнной Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²Π΅Π±-прилоТСния, которая ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° созданиС QR-ΠΊΠΎΠ΄ΠΎΠ² Π½Π° основС ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ….

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

Когда говорят ΠΎ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ всё крутится Π²ΠΎΠΊΡ€ΡƒΠ³ вопроса ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚: основанный Π½Π° HTML5 ΠΈΠ»ΠΈ Π½Π° Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… API. Π§Ρ‚ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎ, Π² ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… рассуТдСниях Π½Π΅ поднимаСтся Ρ‚Π΅ΠΌΠ° сосущСствования этих Π΄Π²ΡƒΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², ΠΈ, Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ рассматриваСтся эффСкт синСргии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, благодаря совмСстному использованию Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π΄ΠΎΡΡ‚ΠΈΠ³Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΡΡ‚ΠΈΠ³Π½ΡƒΡ‚ΡŒ, полагаясь лишь Π½Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎ.

Π’ этом ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π²Π΅Ρ‰Π°Ρ…:

Π—Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Π±-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… прилоТСниях?

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ сначала ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Π»ΠΈ это β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ возмоТности HTML ΠΈ JS Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… прилоТСниях, ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Π’ΠΎΡ‚ нСсколько ситуаций, ΠΊΠΎΠ³Π΄Π° смСшиваниС Π²Π΅Π±-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ с Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ возмоТностями ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ кстати.

▍1. ИспользованиС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, созданных для Π²Π΅Π±

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… частСй ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ смысл использованиС Π²Π΅Π±-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. НапримСр, WebSocket β€” это тСхнология, ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ориСнтированная Π½Π° Π²Π΅Π±. Для Π΅Ρ‘ использования ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ встроСнный Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Π²Π΅Π±-Π΄Π²ΠΈΠΆΠΎΠΊ ( WKWebView для iOS ΠΈ WebView для Android) вмСсто установки стороннСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, которая попросту «эмулируСт» WebSocket.

ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, достаточно, примСняя стандартныС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ. Π­Ρ‚ΠΎ Π²Π΅Π΄Ρ‘Ρ‚ нас ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ситуации.

▍2. УмСньшСниС Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΏΠ°ΠΊΠ΅Ρ‚Π° прилоТСния

ИспользованиС Π²Π΅Π±-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… прилоТСниях ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±Π΅Π· этих Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎ Π±Ρ‹ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ… сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

НапримСр, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ QR-ΠΊΠΎΠ΄ΠΎΠ², понадобится сторонняя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, которая ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚Π° прилоТСния. Однако Ссли ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ для этого стандартноС срСдство для просмотра Π²Π΅Π±-страниц ΠΈ JS-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΡƒΡŽ ΠΊ страницС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ простой конструкции

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

Π”Π΅Π»Π°Π΅ΠΌ соврСмСнноС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с нуля

Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. И ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ этот β€” Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Бколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΡƒΠΉΠ΄Ρ‘Ρ‚ Π½Π° созданиС Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ°? Насколько это слоТно? Π§Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΆΠ΅ со старта ΡƒΠΌΠ΅Ρ‚ΡŒ соврСмСнный Π²Π΅Π±-сайт?

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π½Π°Π±Ρ€ΠΎΡΠ°Ρ‚ΡŒ boilerplate ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π³ΠΎ Π²Π΅Π±-прилоТСния со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ:

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта

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

ΠŸΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, спСрва Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ! Π’ качСствС модСльного прилоТСния для этой ΡΡ‚Π°Ρ‚ΡŒΠΈ я Ρ€Π΅ΡˆΠΈΠ» ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ wiki-Π΄Π²ΠΈΠΆΠΎΠΊ. Π£ нас Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹Π΅ Π² Markdown; ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈ (ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ) ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΊΠΈ. Всё это ΠΌΡ‹ ΠΎΡ„ΠΎΡ€ΠΌΠΈΠΌ Π² Π²ΠΈΠ΄Π΅ одностраничного прилоТСния с server-side rendering (Ρ‡Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для индСксации Π½Π°ΡˆΠΈΡ… Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°).

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ пройдёмся ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ для этого понадобятся:

Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°: git

НавСрноС, ΠΏΡ€ΠΎ это ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈ Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ вСсти Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π² git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

Π˜Ρ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Github. КаТдой сСкции ΡΡ‚Π°Ρ‚ΡŒΠΈ соотвСтствуСт ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚ (я Π½Π΅ΠΌΠ°Π»ΠΎ Ρ€Π΅Π±Π΅ΠΉΠ·ΠΈΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ этого!).

Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°: docker-compose

Начнём с настройки окруТСния. ΠŸΡ€ΠΈ Ρ‚ΠΎΠΌ ΠΈΠ·ΠΎΠ±ΠΈΠ»ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρƒ нас имССтся, вСсьма Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ использованиС docker-compose.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Ρ„Π°ΠΉΠ» docker-compose.yml ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТания:

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅, Ρ‡Ρ‚ΠΎ Ρ‚ΡƒΡ‚ происходит.

НС ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΉ docker/backend/.dockerignore :

Π’ΠΎΡ€ΠΊΠ΅Ρ€ Π² Ρ†Π΅Π»ΠΎΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ бэкСнду, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вмСсто gunicorn Ρƒ нас ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ запуск ΠΏΠΈΡ‚ΠΎΠ½ΡΡ‡ΡŒΠ΅Π³ΠΎ модуля:

НаконСц, Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄. ΠŸΡ€ΠΎ Π½Π΅Π³ΠΎ Π½Π° Π₯Π°Π±Ρ€Π΅ Π΅ΡΡ‚ΡŒ цСлая ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ, Π½ΠΎ, судя ΠΏΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠΉ дискуссии Π½Π° StackOverflow ΠΈ коммСнтариям Π² Π΄ΡƒΡ…Π΅ «РСбят, ΡƒΠΆΠ΅ 2018, Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всё Π΅Ρ‰Ρ‘ Π½Π΅Ρ‚?Β» Ρ‚Π°ΠΌ всё Π½Π΅ Ρ‚Π°ΠΊ просто. Π― остановился Π½Π° Ρ‚Π°ΠΊΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Π΄ΠΎΠΊΠ΅Ρ€Ρ„Π°ΠΉΠ»Π°.

Π˜Ρ‚Π°ΠΊ, наш каркас ΠΈΠ· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π³ΠΎΡ‚ΠΎΠ² ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ содСрТимым!

БэкСнд: каркас Π½Π° Flask

Π’Π΅ΠΏΠ΅Ρ€ΡŒ наш бэкСнд ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠŸΠžΠ”ΠΠ―Π’Π¬!

Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄: каркас Π½Π° Express

Π’ дальнСйшСм Π½Π°ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ потрСбуСтся Node.js Π½Π° машинС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° (хотя ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈ сСйчас ΠΈΠ·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ npm init Ρ‡Π΅Ρ€Π΅Π· Docker, Π½Ρƒ Π΄Π° Π»Π°Π΄Π½ΠΎ).

Π’ Dockerfile ΠΌΡ‹ упомянули npm run build ΠΈ npm run start β€” Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² package.json ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Команда build ΠΏΠΎΠΊΠ° Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚, Π½ΠΎ ΠΎΠ½Π° Π½Π°ΠΌ Π΅Ρ‰Ρ‘ пригодится.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² зависимости Express ΠΈ создадим Π² index.js простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ docker-compose up frontend ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ‚ наш Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄! Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π° http://localhost:40002 ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΊΡ€Π°ΡΠΎΠ²Π°Ρ‚ΡŒΡΡ классичСскоС β€œHello, world”.

Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄: сборка с webpack ΠΈ React-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΈΠ·ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² нашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅Ρ‡Ρ‚ΠΎ большС, Ρ‡Π΅ΠΌ plain text. Π’ этой сСкции ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ App ΠΈ настроим сборку.

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° React ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ JSX β€” Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ JavaScript, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ синтаксичСскими конструкциями Π²ΠΈΠ΄Π°

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

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта

2014 Π³ΠΎΠ΄. apt-cache search java

Π˜Ρ‚Π°ΠΊ, ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ выглядит ΠΎΡ‡Π΅Π½ΡŒ просто.

Он просто Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π½Π° экран нашС привСтствиС Π±ΠΎΠ»Π΅Π΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ΅Π³Π»Π΅ΠΌ.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π°:

Для сборки всСй этой красоты Π½Π°ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ:

webpack β€” ΠΌΠΎΠ΄Π½Ρ‹ΠΉ ΠΌΠΎΠ»ΠΎΠ΄Ρ‘ΠΆΠ½Ρ‹ΠΉ сборщик для JS (хотя я ΡƒΠΆΠ΅ Ρ‚Ρ€ΠΈ часа Π½Π΅ Ρ‡ΠΈΡ‚Π°Π» статСй ΠΏΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Ρƒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ насчёт ΠΌΠΎΠ΄Ρ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½);
babel β€” компилятор для всСвозмоТных ΠΏΡ€ΠΈΠΌΠΎΡ‡Π΅ΠΊ Π²Ρ€ΠΎΠ΄Π΅ JSX, Π° Π·Π°ΠΎΠ΄Π½ΠΎ поставщик ΠΏΠΎΠ»ΠΈΡ„ΠΈΠ»Π»ΠΎΠ² Π½Π° всС случаи IE.

Если прСдыдущая итСрация Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π° Ρƒ вас всё Π΅Ρ‰Ρ‘ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π°, Π²Π°ΠΌ достаточно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ

для установки Π½ΠΎΠ²Ρ‹Ρ… зависимостСй. Π’Π΅ΠΏΠ΅Ρ€ΡŒ настроим webpack:

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π» babel, Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ frontend/.babelrc :

НаконСц, сдСлаСм осмыслСнной Π½Π°ΡˆΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ npm run build :

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта

БэкСнд: Π΄Π°Π½Π½Ρ‹Π΅ Π² MongoDB

ΠŸΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС ΠΈ Π²Π΄Ρ‹Ρ…Π°Ρ‚ΡŒ Π² нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Тизнь, Π½Π°Π΄ΠΎ спСрва Π΅Ρ‘ Π²Π΄ΠΎΡ…Π½ΡƒΡ‚ΡŒ Π² бэкСнд. ΠšΠ°ΠΆΠ΅Ρ‚ΡΡ, ΠΌΡ‹ ΡΠΎΠ±ΠΈΡ€Π°Π»ΠΈΡΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ Π² Markdown ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ β€” ΠΏΠΎΡ€Π° это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Π’ Ρ‚ΠΎ врСмя, ΠΊΠ°ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ORM для MongoDB Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅, я ΡΡ‡ΠΈΡ‚Π°ΡŽ использованиС ORM ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ ΠΏΠΎΡ€ΠΎΡ‡Π½ΠΎΠΉ ΠΈ ΠΎΡΡ‚Π°Π²Π»ΡΡŽ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π½Π° вашС усмотрСниС. ВмСсто этого сдСлаСм ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΈΠΉ класс для ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ DAO:

(Если Π²Ρ‹ Π΄ΠΎ сих ΠΏΠΎΡ€ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π² Python, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π³Π»ΡΠ½ΡŒΡ‚Π΅ эти ΡΡ‚Π°Ρ‚ΡŒΠΈ!)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ MongoCardDAO ΠΈ Π΄Π°Ρ‚ΡŒ Flask-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΊ Π½Π΅ΠΌΡƒ доступ. Π₯отя сСйчас Ρƒ нас ΠΎΡ‡Π΅Π½ΡŒ простая иСрархия ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (настройки β†’ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ pymongo β†’ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… pymongo β†’ MongoCardDAO ), Π΄Π°Π²Π°ΠΉΡ‚Π΅ сразу создадим Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ†Π°Ρ€ΡŒ-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π΄Π΅Π»Π°ΡŽΡ‰ΠΈΠΉ dependency injection (ΠΎΠ½ пригодится Π½Π°ΠΌ снова, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Π²ΠΎΡ€ΠΊΠ΅Ρ€ ΠΈ tools).

ВрСмя Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€ΠΎΡƒΡ‚ Π² Flask-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π²ΠΈΠ΄ΠΎΠΌ!

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта

Упс… ΠΎΡ…, Ρ‚ΠΎΡ‡Π½ΠΎ. Нам ΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚! Π—Π°Π²Π΅Π΄Ρ‘ΠΌ ΠΏΠ°ΠΏΠΊΡƒ tools ΠΈ слоТим Π² Π½Π΅Ρ‘ скриптик, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ΄Π½Ρƒ Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ:

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта

УспСх! Π’Π΅ΠΏΠ΅Ρ€ΡŒ врСмя ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ это Π½Π° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π΅.

Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄: Redux

Начнём с добавлСния Redux. Redux β€” JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для хранСния состояния. ИдСя Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вмСсто тысячи нСявных состояний, измСняСмых вашими ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… дСйствиях ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… интСрСсных событиях, ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ состояниС, Π° любоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ дСйствий. Π’Π°ΠΊ, Ссли Ρ€Π°Π½ΡŒΡˆΠ΅ для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΌΡ‹ спСрва Π²ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈ Π³ΠΈΡ„ΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΏΠΎΡ‚ΠΎΠΌ Π΄Π΅Π»Π°Π»ΠΈ запрос Ρ‡Π΅Ρ€Π΅Π· AJAX ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π² success-ΠΊΠΎΠ»Π»Π±Π΅ΠΊΠ΅ прописывали ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½ΡƒΠΆΠ½Ρ‹Ρ… частСй страницы, Ρ‚ΠΎ Π² Redux-ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅ Π½Π°ΠΌ прСдлагаСтся ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ дСйствиС β€œΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π½Π° Π³ΠΈΡ„ΠΊΡƒ с анимациСй”, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ глобальноС состояниС Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π²Ρ‹ΠΊΠΈΠ½Π΅Ρ‚ ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈ поставит Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ, ΠΏΠΎΡ‚ΠΎΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ запрос, Π° Π² Π΅Π³ΠΎ success-ΠΊΠΎΠ»Π»Π±Π΅ΠΊΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ дСйствиС, β€œΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π½Π° подгруТСнный”. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, сСйчас ΠΌΡ‹ это сами ΡƒΠ²ΠΈΠ΄ΠΈΠΌ.

Начнём с установки Π½ΠΎΠ²Ρ‹Ρ… зависимостСй Π² наш ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ β€” собствСнно, Redux, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ β€” ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для скрСщивания React ΠΈ Redux (written by mating experts), Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ β€” ΠΎΡ‡Π΅Π½ΡŒ нуТная ΡˆΡ‚ΡƒΠΊΠ°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ обоснована Π² Π΅Ρ‘ ΠΆΠ΅ README, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚ΠΎΠ΅ β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡ΠΊΠ°, нСобходимая для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Redux DevTools Extension.

Начнём с Π±ΠΎΠΉΠ»Π΅Ρ€ΠΏΠ»Π΅ΠΉΡ‚Π½ΠΎΠ³ΠΎ Redux-ΠΊΠΎΠ΄Π°: создания Ρ€Π΅Π΄ΡŒΡŽΡΠ΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚, ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ состояния.

Наш ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ видоизмСняСтся, ΠΌΠΎΡ€Π°Π»ΡŒΠ½ΠΎ Π³ΠΎΡ‚ΠΎΠ²ΡΡΡŒ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с Redux:

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта

Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄: страница ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ

ΠŸΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ страницы с SSR, Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ страницы Π±Π΅Π· SSR! Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°ΠΊΠΎΠ½Π΅Ρ† Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ нашим Π³Π΅Π½ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ API для доступа ΠΊ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌ ΠΈ свСрстаСм страницу ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π΅.

ВрСмя Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΠΎΠΌ ΠΈ Π·Π°Π΄ΠΈΠ·Π°ΠΉΠ½ΠΈΡ‚ΡŒ структуру нашСго состояния. ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π½Π° эту Ρ‚Π΅ΠΌΡƒ довольно ΠΌΠ½ΠΎΠ³ΠΎ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΠΎΠΌ Π½Π΅ Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ ΠΈ остановится Π½Π° простом. НапримСр, Ρ‚Π°ΠΊΠΎΠΌ:

Π—Π°Π²Π΅Π΄Ρ‘ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Β«ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°Β», ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ Π² качСствС props содСрТимоС cardData (ΠΎΠ½ΠΎ ΠΆΠ΅ β€” фактичСски содСрТимоС нашСй ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ Π² mongo):

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°Π²Π΅Π΄Ρ‘ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ для всСй страницы с ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. Он Π±ΡƒΠ΄Π΅Ρ‚ отвСтствСнСн Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· API ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΈΡ… Π² Card. А Ρ„Π΅Ρ‚Ρ‡ΠΈΠ½Π³ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ сдСлаСм React-Redux way.

Для Π½Π°Ρ‡Π°Π»Π° создадим Ρ„Π°ΠΉΠ»ΠΈΠΊ frontend/src/redux/actions.js ΠΈ создадим дСйствиС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ достаёт ΠΈΠ· API содСрТимоС ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ, Ссли Π΅Ρ‰Ρ‘ Π½Π΅:

ΠžΡ…, Ρƒ нас появилось дСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ЧВО-ВО ДЕЛАЕВ! Π­Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² Ρ€Π΅Π΄ΡŒΡŽΡΠ΅Ρ€Π΅:

(ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° свСрхмодный синтаксис для клонирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ.)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° вся Π»ΠΎΠ³ΠΈΠΊΠ° унСсСна Π² Redux actions, сама ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° CardPage Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ просто:

Π”ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ page.type Π² наш ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ App:

И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ остался послСдний ΠΌΠΎΠΌΠ΅Π½Ρ‚ β€” Π½Π°Π΄ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ page.type ΠΈ page.cardSlug Π² зависимости ΠΎΡ‚ URL страницы.

Но Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π΅Ρ‰Ρ‘ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², ΠΌΡ‹ ΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ качСствСнноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ прямо сСйчас. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ сдСлаСм это ΠΊΠ°ΠΊ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π³Π»ΡƒΠΏΠΎ. Π’ΠΎΡ‚ прям совсСм Π³Π»ΡƒΠΏΠΎ. НапримСр, рСгуляркой ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ прилоТСния!

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта

Π’Π°ΠΊ, сСкундочку… Π° Π³Π΄Π΅ ΠΆΠ΅ наш ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚? ΠžΡ…, Π΄Π° ΠΌΡ‹ вСдь Π·Π°Π±Ρ‹Π»ΠΈ Ρ€Π°ΡΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ Markdown!

Π’ΠΎΡ€ΠΊΠ΅Ρ€: RQ

ΠŸΠ°Ρ€ΡΠΈΠ½Π³ Markdown ΠΈ гСнСрация HTML для ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° β€” типичная «тяТёлая» Π·Π°Π΄Π°Ρ‡Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ прямо Π½Π° бэкСндС ΠΏΡ€ΠΈ сохранСнии ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ставят Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… β€” Π²ΠΎΡ€ΠΊΠ΅Ρ€Π°Ρ….

Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ опСнсорсных Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ Π·Π°Π΄Π°Ρ‡; ΠΌΡ‹ Π²ΠΎΠ·ΡŒΠΌΡ‘ΠΌ Redis ΠΈ ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡ΠΊΡƒ RQ (Redis Queue), которая ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π·Π°Π΄Π°Ρ‡ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ pickle ΠΈ сама ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ Π½Π°ΠΌ спаунинг процСссов для ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ВрСмя Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ рСдис Π² зависимости, настройки ΠΈ Π²Π°ΠΉΡ€ΠΈΠ½Π³!

НСмного Π±ΠΎΠΉΠ»Π΅Ρ€ΠΏΠ»Π΅ΠΉΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° для Π²ΠΎΡ€ΠΊΠ΅Ρ€Π°.

Для самого парсинга ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡ΠΊΡƒ mistune ΠΈ напишСм ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

ΠœΡ‹ объявили свой класс Π΄ΠΆΠΎΠ±Ρ‹, ΠΏΡ€ΠΎΠΊΠΈΠ΄Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π²Π°ΠΉΡ€ΠΈΠ½Π³ Π² качСствС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ kwargs-Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π²ΠΎ всС таски. (ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ создаёт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΠžΠ’Π«Π™ Π²Π°ΠΉΡ€ΠΈΠ½Π³, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ нСльзя ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Ρ„ΠΎΡ€ΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ происходит Π²Π½ΡƒΡ‚Ρ€ΠΈ RQ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ.) Π§Ρ‚ΠΎΠ±Ρ‹ всС наши таски Π½Π΅ стали Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Π²Π°ΠΉΡ€ΠΈΠ½Π³Π° β€” Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚ Π’Π‘Π•Π₯ Π½Π°ΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², β€” Π΄Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒ ΠΈΠ· Π²Π°ΠΉΡ€ΠΈΠ½Π³Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠΆΠ½ΠΎΠ΅:

ДобавляСм Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ ΠΊ нашСй таскС ΠΈ радуСмся ΠΆΠΈΠ·Π½ΠΈ:

РадуСмся ΠΆΠΈΠ·Π½ΠΈ? Π’ΡŒΡ„Ρƒ, я Ρ…ΠΎΡ‚Π΅Π» ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, запускаСм Π²ΠΎΡ€ΠΊΠ΅Ρ€:

Π˜ΠΈΠΈΠΈβ€¦ ΠΎΠ½ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚! ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, вСдь ΠΌΡ‹ Π½Π΅ ставили Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ таски!

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΠ΅ΠΌ Π½Π°ΡˆΡƒ Ρ‚ΡƒΠ»Π·Ρƒ, которая создаёт Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π°: Π°) Π½Π΅ ΠΏΠ°Π΄Π°Π»Π°, Ссли ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ° ΡƒΠΆΠ΅ создана (ΠΊΠ°ΠΊ Π² нашСм случаС); Π±) ставила таску Π½Π° парсинг ΠΌΠ°Ρ€ΠΊΠ΄Π°ΡƒΠ½Π°.

ΠŸΠ΅Ρ€Π΅ΡΠΎΠ±Ρ€Π°Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с бэкСндом, ΠΌΡ‹ Π½Π°ΠΊΠΎΠ½Π΅Ρ† ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ нашСй ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅:

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта

Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄: навигация

ΠŸΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ ΠΊ SSR, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всю Π½Π°ΡˆΡƒ возню с React Ρ…ΠΎΡ‚ΡŒ сколько-Ρ‚ΠΎ осмыслСнной ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нашС single page application Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ single page. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ Π½Π°ΡˆΡƒ Ρ‚ΡƒΠ»Π·Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ создавалось Π΄Π²Π΅ (НЕ ΠžΠ”ΠΠ, А Π”Π’Π•! МАМА, Π― Π’Π•ΠŸΠ•Π Π¬ Π‘Π˜Π“ ДАВА Π”Π•Π’Π•Π›ΠžΠŸΠ•Π !) ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°, ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ займёмся Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠ΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ ссылкам ΠΈ ΡΠΎΠ·Π΅Ρ€Ρ†Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· нашС чудСсноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ пСрСзагруТаСтся. Π₯Π²Π°Ρ‚ΠΈΡ‚ это Ρ‚Π΅Ρ€ΠΏΠ΅Ρ‚ΡŒ!

Π‘ΠΏΠ΅Ρ€Π²Π° навСсим свой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° ΠΊΠ»ΠΈΠΊΠΈ ΠΏΠΎ ссылкам. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ HTML со ссылками Ρƒ нас ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ с бэкСнда, Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρƒ нас Π½Π° React, потрСбуСтся нСбольшой React-спСцифичСский фокус.

ДобавляСм Π³Π»ΡƒΠΏΠ΅Π½ΡŒΠΊΠΈΠΉ Ρ€Π΅Π΄ΡŒΡŽΡΠ΅Ρ€ ΠΏΠΎΠ΄ это Π΄Π΅Π»ΠΎ:

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта. Π€ΠΎΡ‚ΠΎ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для сайта

Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ URL страницы Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ β€” Π΄Π°ΠΆΠ΅ Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Hello, world-ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΏΠΎ адрСсу demo-ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ. БоотвСтствСнно, навигация Π²ΠΏΠ΅Ρ€Ρ‘Π΄-Π½Π°Π·Π°Π΄ Ρ‚ΠΎΠΆΠ΅ ΠΎΡ‚Π²Π°Π»ΠΈΠ»Π°ΡΡŒ. Π”Π°Π²Π°ΠΉΡ‚Π΅ сразу Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Ρ‘Ρ€Π½ΠΎΠΉ ΠΌΠ°Π³ΠΈΠΈ с history, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‡ΠΈΠ½ΠΈΡ‚ΡŒ это!

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°Ρ… ΠΏΠΎ ссылкам URL Π² адрСсной строкС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ. Однако, ΠΊΠ½ΠΎΠΏΠΊΠ° «Назад» сломаСтся!

А Π²ΠΎΡ‚ ΠΊΠ°ΠΊ β€” дСйствиС navigate:

Π’ΠΎΡ‚ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ история Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄: server-side rendering

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

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

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

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