πŸ‡ΊπŸ‡¦ Math.random(): javascript community
1.16K subscribers
363 photos
8 videos
530 links
Admin: @andrey_pk, @StartupEmulatorAdmin
YouTube ΠΊΠ°Π½Π°Π»: https://bit.ly/3cdY6HV
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
πŸͺ„ΠœΠ°Π³ΠΈΡ Π½Π° github! ΠŸΡ€ΠΎΡΡ‚ΠΎ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "." Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² любом Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° github!

πŸ”— https://twitter.com/github/status/1425505817827151872

#github #shortcut #news #tip
Если Π·Π°Π±Ρ‹Π»ΠΈ магию πŸͺ„ ΠΈ Π½Π΅ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ Π½Π° github - Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "?"

#github #tips #shortcut
- Π’Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΡ‘Ρ‚Π΅ Ρ€Ρ‹Π±ΠΎΠ²?
- НСт просто ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽ.
- ΠšΡ€Π°ΡΠΈΠ²ΠΎΠ΅...

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Ρ‹Π±ΠΎΠ² 🐟, Π΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ - fishdraw!

fishdraw - Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ svg ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ с нарисоваными Ρ€Ρ‹Π±Π°ΠΌΠΈ. Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ написан Π½Π° javascript Π±Π΅Π· зависимостСй. Π”Π»ΠΈΠ½Π½Ρ‹ΠΉ, ΠΊΠ°ΠΊ ΡΠ΅Ρ‚ΡŒ Ρ€Ρ‹Π±Π°ΠΊΠ°, Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ нарисуСт ΠΈ Π½Π°Π·ΠΎΠ²Π΅Ρ‚ тысячи ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ Ρ€Ρ‹Π±ΠΎΠ².

πŸ”— https://github.com/LingDong-/fishdraw
πŸ”— https://fishdraw.glitch.me/

#javascript #svg #meme #repo #github
ЗдравствуйтС, Π΄Ρ€ΡƒΠ·ΡŒΡ!

БСгодня ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ тСматичСскиС Π½Π΅Π΄Π΅Π»ΠΈ Π½Π° Math.random().

Π₯Π΅Π΄Π»Π°ΠΉΠ½Π΅Ρ€ΠΎΠΌ ΠΈ ΠΏΠΎΠ²Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΊΠ°Π½Π°Π»Π° Π½Π° этой Π½Π΅Π΄Π΅Π»Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠšΠΎΡΡ‚Ρ ΠŸΠ°Π»ΡŒΡ‡ΠΈΠΊ - Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ с большим ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ, Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ программирования, Π°Π΄Π΅ΠΏΡ‚ NoCode Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, Π°Π²Ρ‚ΠΎΡ€ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ReсksJS, Π°Π²Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ThinkRx.

Π—Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ вопросы ΠΈ ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Π° Π² ΠΊΠΎΠ½Ρ†Π΅ Π½Π΅Π΄Π΅Π»ΠΈ ΠΆΠ΄ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ стрим с ΠšΠΎΡΡ‚Π΅ΠΉ с ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌΠΈ Π½Π° вопросы!

#thematicweek #nocode #reactive #recksjs
ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚, мСня Π·ΠΎΠ²ΡƒΡ‚ ΠšΠΎΡΡ‚Ρ! πŸ™‚

АндрСй ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» ΠΌΠ½Π΅ "форс ΠΏΡƒΡˆ" ΠΏΡ€Π°Π²Π° Π½Π° ΠΊΠ°Π½Π°Π» Π½Π° эту нСдСлю, Ρ‡Ρ‚ΠΎΠ±Ρ‹ я рассказал ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Ρ‚Π΅ΠΌΠ΅!
Когда-Ρ‚ΠΎ я писал Π½Π° Angular(js) ΠΈ трСвоТился Ρ‡Ρ‚ΠΎ Π½Π΅ ΡƒΡ‡Ρƒ React. ΠŸΠΎΡ‚ΠΎΠΌ я ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» React ΠΈ Π½Π°Ρ‡Π°Π» мучится Ρ‡Ρ‚ΠΎ Π½Π΅ знаю Vue. ΠŸΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» Vue β€” Π° Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ Π΅ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ Ember, CycleJS, Svelte, Solid, ΠΈ Ρ‚.Π΄.
ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я Π²Ρ‹Π±Ρ€Π°Π» Ρ‚Π΅ΠΌΡƒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ². Волько я Ρ…ΠΎΡ‡Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅ ΠΏΡ€ΠΎ ΠΈΡ… отличия, Π° Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ схоТи.
НадСюсь, это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ‡ΡŒΠ΅ΠΌΡƒ-Ρ‚ΠΎ fear of missing out.

ΠœΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ ΠΊΠ°ΠΊ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ подходят ΠΊ change detection, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ UI (Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚Ρ‹/JSX), ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ SSR/SSG.
ΠŸΠΎΡΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅, Π½ΠΎ с ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ ссылками. Рассчитаны Π½Π° junior / middle JS Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².
ΠŸΠΈΡˆΠΈΡ‚Π΅ Π² коммСнтариях своё ΠΌΠ½Π΅Π½ΠΈΠ΅, нравится/Π½Π΅Ρ‚, Π·Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ вопросы.

И ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ пост прямо сСйчас:
Change detection & Reactivity

Начнём с Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΡƒΠ·Π½Π°Ρ‘Ρ‚ Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π² нашСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ измСнились ΠΈ Π΅Ρ‘ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ.
Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ славный ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Counter, Π²Ρ‹ всС Π΅Π³ΠΎ ΡƒΠΆΠ΅ ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ: [-] count [+]. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡƒ [+] ΠΈ ΠΌΡ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ Π½Π΅ΠΊΠΈΠΉ count Π½Π° +1. Π­Ρ‚ΠΎ просто. А Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ с Π½ΠΎΠ²Ρ‹ΠΌ count. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΊΠ°ΠΊ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…:


Dirty check
Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ простой ΠΌΠ΅Ρ‚ΠΎΠ΄: ΠΌΡ‹ сохраняСм ΡΠ½ΡΠΏΡˆΠΎΡ‚ состояния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΈ ΠΏΡ€ΠΈ любом взаимодСйствии с UI (ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠΊ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅) Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ всС хэнлСры, Π° Π·Π°Ρ‚Π΅ΠΌ проходимся ΠΏΠΎ всСм ΠΊΠ»ΡŽΡ‡Π°ΠΌ состояния ΠΈ провСряСм Π½Π΅ измСнился Π»ΠΈ стэйт ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со ΡΠ½ΡΠΏΡˆΠΎΡ‚ΠΎΠΌ. Если измСнился β€” пСрСрисовываСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ. Для нас это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выглядит ΠΊΠ°ΠΊ простой this.count += 1.
Π’Π°ΠΊΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Angular ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (angular Π΅Ρ‰Ρ‘ Π±ΡƒΠ΄Π΅Ρ‚ Π² reactive streams Π½ΠΈΠΆΠ΅)

Reactive atoms / Invalidation API
НСкоторыС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ API для Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠ³ΠΎ измСнСния состояния. Когда ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ этот API (измСняСм стэйт) β€” Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚ пСрСрисовку ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π’.ΠΊ. Javascript β€” довольно Π³ΠΈΠ±ΠΊΠΈΠΉ язык, Ρ‚Π°ΠΊΠΎΠΉ API ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ Ρ€Π°Π·Π½Ρ‹ΠΌ Π²ΠΈΠ΄ΠΎΠΌ: count(count() + 1) Π² Knockout, setCount(getCount() + 1) Π² React ΠΈ SolidJS.

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Svelte ΠΈ Vue, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ этот API прячут ΠΎΡ‚ Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅Ρ€ΠΎΠ²:
Svelte ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ count += 1 Π² Π²Ρ‹Π·ΠΎΠ² API (ΠΌΡ‹ ΠΎ компиляторах Π΅Ρ‰Ρ‘ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ)
Π° Vue с ΠΈΡ… this.count += 1 Π² вСрсии 2.x использовал Object.defineProperty c get/set ΠΏΠ°Ρ€ΠΎΠΉ, Π° с 3-ΠΉ вСрсии ΠΎΠ½ΠΈ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ Π½Π° Proxy для Π²Ρ‹Π·ΠΎΠ²Π° своСго API "ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ".

N.B: Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ API Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ считываниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π°Ρ‚ΠΎΠΌΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ DOM Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π³Π΄Π΅ этот стэйт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

Reactive streams
ΠœΡ‹, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΈΠ½ΠΎΠ³Π΄Π° Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½Π΅ дискрСтными срСзами состояний, Π° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ смоТСм ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ часто ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΊΠ»ΠΈΠΊΠ°Π΅Ρ‚ [-] ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ особый ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ для Тёстких минусаторов. Для этого Ρ…ΠΎΡ€ΠΎΡˆΠΎ подходят Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ. Они ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ API Π½Π°ΠΌ для добавлСния Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΡƒ для "слСТСния" Π·Π° измСнСниями.

clicks$.next(1);
count$ = clicks$.scan((acc, curr) => acc + curr, 0);

Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Аngular (Π² OnPush стратСгии) ΠΈ circlejs (Π½Ρƒ, ΠΈ ΠΌΠΎΠΉ ΡΠΊΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ recksjs, Ρ‚Π°ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π²Π΅Π·Π΄Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ).
Π Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΈΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Π°Ρ‚ΠΎΠΌΠ°ΠΌ / invalidation API, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ΄ Π±Π°Π·Π°Ρ… с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ.

.

Как Π²ΠΈΠ΄Π½ΠΎ, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅, Π½ΠΎ Ρ†Π΅Π»ΡŒ ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅: ΠΏΠ½ΡƒΡ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ пСрСрисовал ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ.
Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ ΠΊΠ°ΠΊ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ… ΠΌΡ‹ Π·Π°Π΄Π°Ρ‘ΠΌ этот самый UI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ.
ΠžΡΡ‚Π°Π²Π»ΡΠΉΡ‚Π΅ свои ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ math.random ΠΊΠΎΠΌΠΌΡŒΡŽΠ½ΠΈΡ‚ΠΈ β€” ΠΌΡ‹ любим Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ тСхнологиях.
Π”ΠΎ Π·Π°Π²Ρ‚Ρ€Π°!

___

Если Ρƒ вас ΠΌΠ°Π»ΠΎ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅:
A Hands-on Introduction to Fine-Grained Reactivity β€” https://dev.to/ryansolid/a-hands-on-introduction-to-fine-grained-reactivity-3ndf
Reactivity in Depth β€” https://v3.vuejs.org/guide/reactivity.htm
Angular Change Detection - How Does It Really Work? β€” https://blog.angular-university.io/how-does-angular-2-change-detection-really-work/

#thematicweek #frameworksweek
ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ„Ρ€ΡƒΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ разнообразия Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΈ сСгодня ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ обсудим ΠΊΠ°ΠΊ ΠΌΡ‹ описываСм UI Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.
Π•ΡΡ‚ΡŒ Π΄Π²Π° Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚Ρ‹ ΠΈ JSX. Рассмотрим ΠΈΡ… ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

Π’Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚Ρ‹
Π’Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚Ρ‹ β€” это DSL языки, созданныС с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ спСцифики ΠΈ Ρ„ΠΈΡ‡ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°, с ΠΏΡ€ΠΈΡ†Π΅Π»ΠΎΠΌ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΈ обновлСния DOM. JS Π² Ρ‚Π°ΠΊΠΈΡ… языках появляСтся вкраплСниями, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ островками. Бинтаксис Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚ΠΎΠ² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° чистый HTML (Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ), добавляя ΠΊ Π½Π΅ΠΌΡƒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ "Π³Π»Π°Π³ΠΎΠ»Ρ‹" для вставки Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, {{ count }} для тСкстовых Π΄Π°Π½Π½Ρ‹Ρ…), для отобраТСния списков (`v-for / ng-for / # each`), для создания условий (`ng-if / v-if / # if`) ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅. Π’Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ строкой, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ сСкциСй (ΠΊΠ°ΠΊ Π²ΠΎ .vue Ρ„Π°ΠΉΠ»Π°Ρ…) ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ (`.component.html` ΠΊΠ°ΠΊ Π² Angular).

<template>
<p>Hello, {{ name }}</p>
</template>

<script>
let name = 'world';
</script>

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

Π’Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Angular, Svelte, Vue


JSX
JSX ΠΆΠ΅ β€” это Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ JavaScript с вкраплСниями HTML-like языка. Π­Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π½Π°ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² описании Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚ΠΎΠ² Π·Π° счёт JS манипуляций, Π½ΠΎ такая Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ свои минусы: Π΅Ρ‘ слоТнСС Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. JSX Ρ…ΠΎΡ€ΠΎΡˆΠΎ стандартизирован.

function () {
let name = 'world';
return <p>Hello, { name }</p>
}

Для JSX Π½ΡƒΠΆΠ΅Π½ транспайлСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ return <p>42</p> Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ return createElement('p', { children: 42 }). Ѐункция createElement(…) создаст Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ virtualDOM элСмСнт β€” JS ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ DOM элСмСнт, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ { type: 'p', children: 42 }. ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ состояния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΠ½Π° создаёт Π½ΠΎΠ²Ρ‹ΠΉ vDOM, Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ сравнит Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ vDOM с Π½ΠΎΠ²Ρ‹ΠΌ ΠΈ сдСлаСт обновлСния Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ DOM'Π° Ρ‚Π°ΠΌ, Π³Π΄Π΅ состояниС измСнилось.

JSX ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² React, Solid, Vue

.

Π’ΠΎΡ‚ я описал ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Ρ€Π°Π·Π½Ρ‹Π΅, Π½ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ эти Π΄Π²Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° довольно Ρ‚Π°ΠΊΠΈ схоТи ΠΈ Π³Ρ€Π°Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Ρ‡ΡƒΡ‚ΡŒ Ρ€Π°Π·ΠΌΡ‹Ρ‚Π°. Π’Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ я упомянул Vue Π΄Π²Π°ΠΆΠ΄Ρ‹, ΠΈ Π² Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚Π°Ρ… ΠΈ Π² JSX? Vue Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅Ρ€Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π° синтаксиса: ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ Vue ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ vDOM, Π½ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² основном с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚ΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ компилятор ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡ… Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. А компилятор Solid распарсит ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ JSX ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΊΠ°ΠΊ Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚Ρ‹. А Astro ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ JSX-like синтаксис, Π½ΠΎ это Π½Π° самом Π΄Π΅Π»Π΅ Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚Ρ‹.

Π”Π° ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ, Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ [].map Π΅ΡΡ‚ΡŒ свой *-for, Π° <p>{{ name }}</p> Π½Π΅ сильно Ρ‚ΠΎ отличаСтся ΠΎΡ‚ return <p>{ name }</p>.

ΠžΡΡ‚Π°Π²Π»ΡΠΉΡ‚Π΅ свои ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ math.random ΠΊΠΎΠΌΠΌΡŒΡŽΠ½ΠΈΡ‚ΠΈ β€” ΠΌΡ‹ любим Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ тСхнологиях.
НадСюсь, сСгодня я вас большС успокоил Ρ‡Π΅ΠΌ Π·Π°ΠΏΡƒΡ‚Π°Π» πŸ™‚
Π”ΠΎ Π·Π°Π²Ρ‚Ρ€Π°, Π·Π°Π²Ρ‚Ρ€Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ компиляторах!

#thematicweek #frameworksweek
ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚!

Π₯ΠΎΡ‡Ρƒ ΠΏΡ€ΠΈΠ³Π»Π°ΡΠΈΡ‚ΡŒ вас Π½Π° наш с АндрССм ΠšΡƒΡ‡Π΅Ρ€Π΅Π½ΠΊΠΎ math.random стрим!
ΠŸΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ…, nocode ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ πŸ™‚
Π‘Ρ‚Ρ€ΠΈΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ Π·Π°Π²Ρ‚Ρ€Π°, Π² 18:00 ΠΏΠΎ ΠšΠΈΠ΅Π²Ρƒ, ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚Π΅!

Бсылка Π±Π΅Π· рСгистрации ΠΈ смс: https://www.youtube.com/watch?v=v7qVVtjzR1Y

πŸ™Œ
ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹
ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ β€” это Π½Π΅ совсСм Developer eXperience ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Π² ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… выпусках. Но ΠΎΠ½ΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° DX ΠΈ входят Π² Π½Π°Π±ΠΎΡ€ инструмСнтов, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… для соврСмСнного Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΄Π°Π²Π°ΠΉΡ‚Π΅ сСгодня обсудим Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ ΠΈ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚:

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ (πŸ‘¨β€βœˆοΈ). Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ β€” это ΡƒΠΆΠ΅ Π½Π΅ просто JS Ρ„Π°ΠΉΠ» с Ρ€Π°Π½Ρ‚Π°ΠΉΠΌ Π΄Π²ΠΈΠΆΠΊΠΎΠΌ, это Π΅Ρ‰Ρ‘ ΠΈ Π½Π°Π±ΠΎΡ€ инструмСнтов для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ВсСм Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌ с DSL Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚Π°ΠΌΠΈ понадобится ΠΈΡ… Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π°ΡΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ, Π° для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… компиляция β€” это Π²ΠΎΠΎΠ±Ρ‰Π΅ основной шаг создания Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ°.

Angular Π±Ρ‹Π» ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΡ… Ahead of Time компилятор (Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ "Π·Π°Π±Π»Π°Π³ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ" Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ: ΠΏΡ€ΠΈ сборкС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°). Π‘ Angular ΠΈ Π½Π°Ρ‡Π½Ρ‘ΠΌ:

Angular ΠΏΡ€ΠΈ компиляции распарсит Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚ ΠΈ создаст для Π½Π΅Π³ΠΎ JS ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° обновлСниями. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΏΡ€ΠΎ Change detection ΠΈ reactivity? Π’Π°ΠΊ Π²ΠΎΡ‚ AoT компилятор Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ для dirty checking'Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ свойства состояния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚Π΅ ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ свойства.
Angular Ivy (с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Π°ΡƒΡ‚ΠΏΡƒΡ‚Π° компиляции Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚Π°): https://blog.ninja-squad.com/2019/05/07/what-is-angular-ivy/

Vue собСрёт свои .vue Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Ρ‚ Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚Ρ‹ Π² vDOM. А Π΅Ρ‰Ρ‘ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ vDOM с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… инструкций, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ состояния ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅ вСсь vDOM, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄Π²Π΅Ρ‚Π²ΠΈ Π΄Π΅Ρ€Π΅Π²Π°.
Vue template Repl: https://v3.vuejs.org/guide/render-function.html#template-compilation

Svelte Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ смоТСт Π±Π΅Π· компилятора: всС () => { a = b + c; } ΠΏΡ€ΠΈ сборкС прСвратятся Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ () => { invalidate('a', b + c) } Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ состояния. Svelte Π΄Π°ΠΆΠ΅ добавляСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ синтаксис $: a = b + c; для computed Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π’Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅, β€” это Π½Π΅ Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.
Svelte Repl: https://svelte.dev/repl/hello-world?version=3.42.1

SolidJS распарсит JSX ΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ Π΅Π³ΠΎ Π² инструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ DOM. Solid ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ состояниС ΠΊ DOM, Ρ‚.ΠΊ. ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ reactive atoms ΠΈ, ΠΊΠ°ΠΊ ΠΈ Svelte, парсит ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ наш JS ΠΊΠΎΠ΄.
Solid Repl: https://playground.solidjs.com/

React стоит особняком: Π΅ΠΌΡƒ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ компилятор. JSX ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° createElement ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° чистом JS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

.

Для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² компиляторах, Π½ΠΎ это ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΎΠ±Ρ‰Π΅Π³ΠΎ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°. Если Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² особСнностях рСактивности ΠΈ Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚ΠΎΠ² β€” Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ компилятор ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π°Π½Ρ‚Π°ΠΉΠΌ. Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» ссылки Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ output'Π° компиляции, ΠΎΡ‡Π΅Π½ΡŒ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡ.

Π’ΠΎΡ‚, это Ρ‡Ρ‚ΠΎ касаСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ части компиляторов. Для краткости я опустил сборку JS ΠΈ CSS β€” Ρ‚Π°ΠΌ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ Ρƒ всСх Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ².

ΠŸΠΎΡ…ΠΎΠΆΠ΅, Π·Π° компиляторами блиТайшСС Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅, Ρ‡Ρ‚ΠΎ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅?
ΠžΡΡ‚Π°Π²Π»ΡΠΉΡ‚Π΅ свои ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ math.random ΠΊΠΎΠΌΠΌΡŒΡŽΠ½ΠΈΡ‚ΠΈ β€” ΠΌΡ‹ любим Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ тСхнологиях.
Π—Π°Π²Ρ‚Ρ€Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± SSG ΠΈ SSR. Π”ΠΎ Π·Π°Π²Ρ‚Ρ€Π°!

#thematicweek #frameworksweek
πŸ‡ΊπŸ‡¦ Math.random(): javascript community pinned «ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚! Π₯ΠΎΡ‡Ρƒ ΠΏΡ€ΠΈΠ³Π»Π°ΡΠΈΡ‚ΡŒ вас Π½Π° наш с АндрССм ΠšΡƒΡ‡Π΅Ρ€Π΅Π½ΠΊΠΎ math.random стрим! ΠŸΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ…, nocode ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ πŸ™‚ Π‘Ρ‚Ρ€ΠΈΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ Π·Π°Π²Ρ‚Ρ€Π°, Π² 18:00 ΠΏΠΎ ΠšΠΈΠ΅Π²Ρƒ, ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚Π΅! Бсылка Π±Π΅Π· рСгистрации ΠΈ смс: https://www.youtube.com/watch?v=v7qVVtjzR1Y πŸ™ŒΒ»
Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΈΠ»ΠΈ SPA, SSR ΠΈ SSG
Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ написали нашС супСр-ΠΏΡƒΠΏΠ΅Ρ€-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, скомпилировали ΠΈ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠΈΡ€Ρƒ. А ΠΊΠ°ΠΊ?
ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Single Page App (SPA), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ наш Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, β€” это ΠΎΠ΄ΠΈΠ½ index.html с .css ΠΈ .js .
Π’.Π΅. ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ адрСс …/about-us β€” ΠΌΡ‹ Π΅ΠΌΡƒ ΠΎΡ‚Π΄Π°Π΄ΠΈΠΌ наш index.html, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ .js, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ ΠΎΡ‚Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ about-us страничку. Π•Ρ‰Ρ‘ Ρ…ΡƒΠΆΠ΅ обстоят Π΄Π΅Π»Π° ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, список постов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ Π½Π° сСрвСрС: index.html β†’ main.js β†’ xhr:/api/posts β†’ Render . Π­Ρ‚ΠΎ особСнно Π½Π΅Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ссли Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ сайт ΠΏΠΎΠΏΠ°Π΄Π°Π» Π² google. А ΡŽΠ·Π΅Ρ€, посмотря сСкунду Π½Π° наш fancy loading indicator, ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‚Π°Ρ‚ΡŒ ΠΈ ΡƒΠΉΡ‚ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ сайт.

Как Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹? ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² (Π½Ρƒ, ΠΈΠ»ΠΈ "компиляторы компиляторов")!
Π’ зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° прилоТСния, Π΅ΡΡ‚ΡŒ Π΄Π²Π° основных ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°: SSR ΠΈ SSG. Рассмотрим ΠΈΡ… ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

SSR (server side rendering) β€” ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° запрос ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ страницы, ΠΌΡ‹ Π½Π° сСрвСрС отрисуСм ΠΈ ΠΎΡ‚Π΄Π°Π΄ΠΈΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ .html, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ сразу ΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ² ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Π°Π»Π°ΡΡŒ страница, ΠΌΡ‹ ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ нашС .js, оТивляСм отрисованный html (hydration) ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ сайт Π² Ρ€Π΅ΠΆΠΈΠΌ CSR'Π° (client side rendering) β€” Ρ‚Π°ΠΊ для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ страницам сайта ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΡƒΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ сСрвСра. SSR ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ€Π°Π½Ρ‚Π°ΠΉΠΌ Π΄Π²ΠΈΠΆΠΊΠ° Π½Π° сСрвСрС (Π²Ρ€ΠΎΠ΄Π΅ nodejs) ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ страницы с контСкстом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ваш wish list Π½Π° e-commerce сайтС). НСкоторыС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ (ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Next ΠΈ Nuxt) Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ для нашСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° сСрвСрС ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. НапримСр, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ список Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΈΠ· нашСго Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ API β€” ΠΊΠ»ΠΈΠ΅Π½Ρ‚ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, Π° просто ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ список Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ².

SSG (server side generation) β€” ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° SSR, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ Π·Π°Ρ€Π°Π½Π΅Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ .html Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° сСрвСрС ΠΈ просто ΠΎΡ‚Π΄Π°Ρ‘ΠΌ ΠΈΡ… ΠΊΠ°ΠΊ статику. Для этого ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ страницы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ. НапримСр, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС страницы со ΡΡ‚Π°Ρ‚ΡŒΡΠΌΠΈ для нашСго Π±Π»ΠΎΠ³Π°. SSG для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ список URL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ΡŒ. НСкоторыС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΊΡ€Π°ΡƒΠ»Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запустит наш сайт ΠΈ сам собСрёт всС доступныС URL, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΡƒΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ .html. SSG Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с CDN, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ сильно ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Π’Π°ΠΊΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Ρ€Π°Π·ΠΌΡ‹Π²Π°ΡŽΡ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ front-end ΠΈ back-end, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π³Π΄Π΅ наши прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ.
Π’ Ρ†Π΅Π»ΠΎΠΌ, SSR ΠΈ SSG β€” это Π½Π°Π±ΠΎΡ€ инструмСнтов ΠΈ API Π½Π°Π΄ нашими "клиСнтскими" JS Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ.
ΠžΡΡ‚Π°Π²Π»ΡΠΉΡ‚Π΅ свои ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ math.random ΠΊΠΎΠΌΠΌΡŒΡŽΠ½ΠΈΡ‚ΠΈ β€” ΠΌΡ‹ любим Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ тСхнологиях.

β€”β€”β€”
Для ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ: jamstack.org
Для ΠΏΠΎΠΊΠΎΠ²Ρ‹Ρ€ΡΡ‚ΡŒΡΡ:
React: Next, Gatsby, Blitz, React Server Components
Vue: Nuxt, Gridsome
Svelte: SvelteKit
Angular: Scully
Π•Ρ‰Ρ‘: Astro β€” ΠΎΠ½ для всСх.

#thematicweek #frameworksweek
ЗдравствуйтС, Π΄Ρ€ΡƒΠ·ΡŒΡ! Π§Π΅Ρ€Π΅Π· нСдСлю состоится конфСрСнция OdessaJS!

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Π½Π°ΡˆΠΈΡ… подписчиков прСдоставляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΈΠ³Ρ€Π°Ρ‚ΡŒ 50% скидки Π½Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π±ΠΈΠ»Π΅Ρ‚, для этого Π½ΡƒΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΏΠΎΠ΄ этим постом с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΊΠ»Π°Π΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ-Π±Ρ‹ ΠΏΠΎΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ. Бписок Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ² Π½Π° сайтС - https://odessajs.org/

ΠŸΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ объявлСн Π² понСдСльник!

#odessajs #conference #discount
πŸ‡ΊπŸ‡¦ Math.random(): javascript community
ЗдравствуйтС, Π΄Ρ€ΡƒΠ·ΡŒΡ! БСгодня ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ тСматичСскиС Π½Π΅Π΄Π΅Π»ΠΈ Π½Π° Math.random(). Π₯Π΅Π΄Π»Π°ΠΉΠ½Π΅Ρ€ΠΎΠΌ ΠΈ ΠΏΠΎΠ²Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΊΠ°Π½Π°Π»Π° Π½Π° этой Π½Π΅Π΄Π΅Π»Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠšΠΎΡΡ‚Ρ ΠŸΠ°Π»ΡŒΡ‡ΠΈΠΊ - Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ с большим ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ, Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ программирования, Π°Π΄Π΅ΠΏΡ‚ NoCode Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉβ€¦
ΠŸΡ€ΠΈΠ²Π΅Ρ‚, math.random!

БСгодня заканчиваСтся #frameworksweek ΠΈ я ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΠ½Π΄Ρ€Π΅ΡŽ ΠšΡƒΡ‡Π΅Ρ€Π΅Π½ΠΊΠΎ πŸ–
НадСюсь Π±Ρ‹Π»ΠΎ интСрСсно! ΠŸΠΈΡˆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅ ΠΎΠ± этой Π½Π΅Π΄Π΅Π»Π΅ ΠΈ ΠΎ Ρ‡Ρ‘ΠΌ Π²Ρ‹ Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… #thematicweek Π² коммСнтариях!

НапослСдок скаТу: Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π΅Ρ‰Ρ‘ Π½Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ с ΠΎΠ΄Π½ΠΈΠΌ β€” Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ. А Ссли Ρƒ вас Π²Ρ‹ΠΏΠ°Π»ΠΎ ΠΏΠ°Ρ€Ρƒ ΠΌΠΈΠ½ΡƒΡ‚ свободного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ β€” для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π΅ΡΡ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΏΠ»Π΅ΠΉΠ³Ρ€Π°ΡƒΠ½Π΄Ρ‹ (Π΄Π°ΠΆΠ΅ для SSR), с Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ быстро ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ.

Π”Π° ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π±Ρ‹ сначала Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Π½ΡŒΡŽΠ°Π½ΡΠ°Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π°ΠΌ сСйчас Π½ΡƒΠΆΠ΅Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹. Как говорят, Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с ΡƒΡ‚ΠΊΠΎΠΉ ΠΏΠΎΠ΄ ΠΊΡ€ΠΎΠ²Π°Ρ‚ΡŒΡŽ, Ρ‡Π΅ΠΌ Ρ€Π°Π·Π³Π»ΡΠ΄Ρ‹Π²Π°Ρ‚ΡŒ всСх синиц Π² Π½Π΅Π±Π΅.

ВсСм Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ…!

πŸ™Œ
Π’ субботу Π½Π° VinnytsiaJS ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΏΡ€ΠΎ обрасти примСнСния JavaScript.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹ΠΉ пост, Π΅ΡΡ‚ΡŒ шанс ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π½Π° OdessaJS

ΠŸΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ ΠΏΠΎ ссылкС:

πŸ”— https://slides.com/andreykucherenko/deck-39f096

#slides #conference #vinnytsajs
Forwarded from Node.js Recipes
30 seconds of code – сборник ΠΊΠΎΠ΄-снипСтов
#list #code_pattern

Π’ Π½Π°Ρ‡Π°Π»Π΅ Π»Π΅Ρ‚Π° я дСлился ссылкой Π½Π° 1loc.dev. Π’ коммСнтариях Π±Ρ‹Π»Π° ссылка Π½Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ рСсурс – 30 seconds of code. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° Ρ‡ΡƒΡ‚ΡŒ Π΄Π»ΠΈΠ½Π½Π΅ΠΉ, Π½ΠΎ ΡΡƒΡ‚ΡŒ Ρ‚Π° ΠΆΠ΅ самая. Π•ΡΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎ #nodejs сниппСтам.