TGViewer
πŸ‡ΊπŸ‡¦ Math.random(): community of engineers πŸ‡ΊπŸ‡¦ Math.random(): community of engineers @mathrandomcommunity Β· 1.26K subscribers
Post #609 815
ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ„Ρ€ΡƒΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ разнообразия Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΈ сСгодня ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ обсудим ΠΊΠ°ΠΊ ΠΌΡ‹ описываСм 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
More from @mathrandomcommunity
  1. Oct 9, 2026Π―ΠΊ Π±Π΅Π·ΠΊΠΎΡˆΡ‚ΠΎΠ²Π½ΠΎ ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ Ρ€Ρ–ΠΊ Claude Team Ρ– $1 000 Π½Π° API. ΠŸΠΎΡ‚Ρ€Ρ–Π±Π΅Π½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ–Π· власним домСно…
  2. Oct 7, 2026πŸ“Œ ΠšΠ°Ρ€Ρ‚Π° ΠΊΠ°Π½Π°Π»Ρƒ: Π· Ρ‡ΠΎΠ³ΠΎ ΠΏΠΎΡ‡Π°Ρ‚ΠΈ «Код став Ρ‡ΠΈΡΡ‚Ρ–ΡˆΠΈΠΌΒ» β€” Ρ†Π΅ Π΄ΡƒΠΌΠΊΠ°. Π¦ΠΈΡ„Ρ€Π° β€” Π΄ΠΎΠΊΠ°Π·. Π¦Π΅ΠΉ ΠΊΠ°Π½Π°Π» пр…
  3. Oct 7, 2026Π’ΠΈΠΉΡˆΠ»Π° стаття Π½Π° DOU: як виміряти Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ AI-Π°Π³Π΅Π½Ρ‚Π° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Ρ–ΠΉ Π±Π°Π·Ρ– Ρƒ 200 000 рядків.…
  4. Oct 7, 2026Π₯ΠΎΡ‡Π΅Ρˆ Π·Ρ€ΠΎΠ·ΡƒΠΌΡ–Ρ‚ΠΈ, Ρ‰ΠΎ Ρ€ΠΎΠ±ΠΈΡ‚ΡŒ Ρ‚Π²Ρ–ΠΉ Π°Π³Π΅Π½Ρ‚ ΠΌΡ–ΠΆ ΠΏΡ€ΠΎΠΌΠΏΡ‚ΠΎΠΌ Ρ– Β«Π³ΠΎΡ‚ΠΎΠ²ΠΎΒ»? Π—Π±Π΅Ρ€ΠΈ ΠΉΠΎΠ³ΠΎ сам. Π’ ololo Ρ” г…
  5. Oct 6, 2026GitSpawn Ρ– Plugin4Shell β€” Π΄Π²Ρ– вСрСснСві вразливості Π² ΠΊΠΎΠ΄ΠΈΠ½Π³-Π°Π³Π΅Π½Ρ‚Π°Ρ…. ΠžΠ±ΠΈΠ΄Π²Ρ– Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡŒ чу…
  6. Sep 30, 2026Подивись, як AI-судді Ρ€ΠΎΠ·Π±ΠΈΡ€Π°ΡŽΡ‚ΡŒ ΠΊΠΎΠ΄ Π°Π³Π΅Π½Ρ‚Π°πŸ‘† Π¦Π΅ тСстова Π³Ρ€Π° Π½Π°ΡˆΠΎΡ— ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π² ololo. Навіщо…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook β†’Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 β†’