Π­Ρ‚ΠΎΡ‚ конспСкт Π½Π΅ сохранится

Π—Π°ΠΊΡ€ΠΎΠ΅ΡˆΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ β€” ΠΏΠΎΡ‚Π΅Ρ€ΡΠ΅ΡˆΡŒ. ЗарСгистрируйся β€” ΠΈ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ навсСгда.

Telegram

Π’Π°Ρˆ конспСкт

YouTubeΠŸΡ€Π΅ΠΏΠ°Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ Lit ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Ρ€ΠΎΠ΄ΠΎΠ²Ρ‹Π΅ Ρ‚Ρ€Π°Π²ΠΌΡ‹

🎯 Lit: Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π½Π° Π²Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… β€” Π°Π½Π°Π»ΠΈΠ· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ тСзисы:

  • Lit β€” это Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, построСнный ΠΏΠΎΠ²Π΅Ρ€Ρ… Π²Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π²ΡˆΠΈΠΉ ΠΈΡ… Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.
  • Π’Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ "Ρ€ΠΎΠ΄ΠΎΠ²Ρ‹Π΅ Ρ‚Ρ€Π°Π²ΠΌΡ‹": ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠΏΠ΅Ρ€Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ ограничСния.
  • ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ заявлСнныС прСимущСства Lit (простота, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠΏΠ΅Ρ€Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ) Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ спорными.
  • ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π² Π²Π΅Π±Π΅ β€” это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ, Π½ΠΎ Π΅Π³ΠΎ рСализация Π² Π²Π΅Π±-стандартах Π΄Π°Π»Π΅ΠΊΠ° ΠΎΡ‚ ΠΈΠ΄Π΅Π°Π»Π°.

πŸ” Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ контСкст

ИдСя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²: Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ большого прилоТСния Π½Π° малСнькиС, нСзависимыС, ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ части ("ΠΊΠΈΡ€ΠΏΠΈΡ‡ΠΈΠΊΠΈ"). ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² Ρ€Π°Π·Π½Ρ‹Ρ… контСкстах ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ: ИдСя ΠΏΡ€ΠΈΡˆΠ»Π° Π² Π²Π΅Π± 10-15 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄. Π”ΠΎ этого прилоТСния часто Π±Ρ‹Π»ΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹ΠΌΠΈ. Π’Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ β€” это стандартизация ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, Π½ΠΎ ΠΈΡ… сырая рСализация оказалась слоТной для прямого использования, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ появлСнию Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²-надстроСк (Polymer, Lit).

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Polymer (ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠ° Lit): МСдлСнная, поэтапная инициализация ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², которая Π±Ρ‹Π»Π° Π·Π°ΠΌΠ΅Ρ‚Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ "ΠΏΡ€ΠΎΡΠ²Π»ΡΠ»ΠΈΡΡŒ" ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ).


βš™οΈ АрхитСктурныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

πŸ”§ Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ рСгистрация ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅

ΠšΠ°ΡΡ‚ΠΎΠΌΠ½Ρ‹Π΅ элСмСнты Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² глобальном рССстрС, Ρ‡Ρ‚ΠΎ Π²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌ ΠΈΠΌΡ‘Π½. НСт инфраструктуры для нСймспСйсов (Π°Π½Π°Π»ΠΎΠ³Π° DNS), Ρ‡Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ для ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ. Π’Π°ΠΊΠΆΠ΅ сущСствуСт ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ имСнования: кастомныС элСмСнты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ дСфис, Ρ‡Ρ‚ΠΎ Π½Π΅ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ„ΠΈΠ»Ρ‹ для Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… элСмСнтов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, geolocation).

🧱 Жёсткая привязка ΠΊ DOM

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ всСгда соотвСтствуСт ΠΎΠ΄Π½ΠΎΠΌΡƒ DOM-элСмСнту. Π­Ρ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ: нСльзя Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ "ΠΏΡ€ΠΈΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ" ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π±Π΅Π· Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ прСдставлСния ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ нСсколько логичСских ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎΠΌ элСмСнтС.

πŸ“€ ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ…

Π§Π΅Ρ€Π΅Π· Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ HTML ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строки. Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², чисСл, Π΄Π°Ρ‚ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ костыли (сСриализация/парсинг JSON, кастомныС ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€Ρ‹), Ρ‡Ρ‚ΠΎ услоТняСт ΠΊΠΎΠ΄ ΠΈ сниТаСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

🎨 Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ стилСй (Scoped Styles) ΠΈ Shadow DOM

Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ стилСй Π² Shadow DOM Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π½Π΅ Ρ‚Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ использования Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Жёсткая изоляция ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ каскадному измСнСнию стилСй ΠΈΠ·Π²Π½Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ "лоскутному" интСрфСйсу ΠΏΡ€ΠΈ использовании ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. ИспользованиС ΠΈΠ»ΠΈ нСиспользованиС Shadow DOM ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ, Π½ΠΎ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ (ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, стилизация).

πŸ”§ ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ part ΠΈ exportparts
Для стилизации Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… элСмСнтов ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ part.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ h1 Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° my-header, Π½ΡƒΠΆΠ½ΠΎ:

  1. Π’ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ my-header для h1 ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ part="head".
  2. Π’ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Ρ‚Π΅ ΡΡ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ::part(head).

πŸ”₯ ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ систСмы:

  • Доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹. Для стилизации элСмСнтов Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½ΡƒΠΆΠ΅Π½ exportparts.
  • exportparts Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ пСрСчислСния всСх Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… part ΠΈ ΠΈΡ… ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ имСнования, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΌΡƒ Π±ΠΎΠΉΠ»Π΅Ρ€ΠΏΠ»Π΅ΠΉΡ‚Ρƒ.
  • ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅Π½ ΠΏΡ€ΠΈ экспортС.
  • Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ становятся нСкастомизируСмыми Π±Π΅Π· ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ… усилий Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

πŸ’‘ ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°: adoptedStyleSheets β€” ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Shadow DOM, ΠΊΠ°ΠΊΠΈΠ΅ стили ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Но это Π½Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ (ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹, ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹).


πŸ“Š Анализ заявлСнных прСимущСств Lit

🧩 ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° (Simple)

Π£ΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с сырыми Π²Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ β€” Π΄Π°. Но ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с соврСмСнными Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ boilerplate-ΠΊΠΎΠ΄Π° всё Π΅Ρ‰Ρ‘ ΠΌΠ½ΠΎΠ³ΠΎ. АрхитСктура ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΈΠ·Π»ΠΈΡˆΠ½Π΅ΠΌΡƒ Π±ΠΎΠΉΠ»Π΅Ρ€ΠΏΠ»Π΅ΠΉΡ‚Ρƒ ΠΈ нСудобству Π² использовании.

⚑ Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ (Fast)

  • Π Π°Π·ΠΌΠ΅Ρ€ ядра (5 Кб): Π­Ρ‚ΠΎ плюс, Π½ΠΎ Π½Π΅ Π³Π»Π°Π²Π½Ρ‹ΠΉ Ρ„Π°ΠΊΡ‚ΠΎΡ€ скорости.
  • Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния: ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° ΠΊ DOM ΠΈ Π²Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ создаёт Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы. ВзаимодСйствиС JavaScript ΠΈ Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° (хостовых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²) ΠΌΠ΅Π½Π΅Π΅ эффСктивно, Ρ‡Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π° с чистыми JS-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.
  • Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ: Часто Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽΡ‚ синтСтичСскиС сцСнарии, Π΄Π°Π»Ρ‘ΠΊΠΈΠ΅ ΠΎΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… слоТных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с тысячами ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

πŸ”Œ Π˜Π½Ρ‚Π΅Ρ€ΠΎΠΏΠ΅Ρ€Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (Web Components)

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ высокая ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Lit. ΠŸΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с React, Angular ΠΈΠ»ΠΈ сырым HTML Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈΠ·-Π·Π° Ρ€Π°Π·Π½Ρ‹Ρ… способов ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ vs свойства). Часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρ‹.


πŸ’₯ ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ костыли

πŸ”„ Π Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ состояниС

ИзмСнСния ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ свойств. ИзмСнСниС поля Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°-свойства Π½Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Ρ€Π΅Ρ€Π΅Π½Π΄Π΅Ρ€. НуТно Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ вСсь ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. НСт рСактивности "ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ" β€” Π΅Ρ‘ приходится ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ (сигналы, state). Π’Π°ΠΊΠΆΠ΅ Π½Π΅Ρ‚ ΠΌΠΈΠΊΡ€ΠΎ-гранулярной рСактивности β€” Ρ€Π΅Π½Π΄Π΅Ρ€Π΅Ρ€ Π»ΠΈΠ±ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ всё, Π»ΠΈΠ±ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ.

πŸ—οΈ Π Π°Π±ΠΎΡ‚Π° с DOM

Для доступа ΠΊ элСмСнтам ΠΈ прямой манипуляции ΠΈΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, запуск Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ) трСбуСтся многословный ΠΊΠΎΠ΄ с query-сСлСкторами, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ дСкларативности.

πŸ“ Π Π°Π±ΠΎΡ‚Π° с Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° нСстроковых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π°Ρ‚) Π² ΠΈΠ½ΠΏΡƒΡ‚Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ количСству boilerplate-ΠΊΠΎΠ΄Π°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ содСрТат ошибки (нСсинхронизированноС состояниС, лишниС ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ часовых поясов).

🎭 Π¨Π°Π±Π»ΠΎΠ½Ρ‹, Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ DOM

ИспользованиС ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Ρ… строк β€” это "ΠΏΠ΅Ρ€Π΅ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ DOM". Π’ Lit формируСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ со статичСскими строками (парсятся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·) ΠΈ динамичСскими значСниями (ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·). Π­Ρ‚ΠΎ фактичСски Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ DOM-ΡƒΠ·Π»Ρ‹ с динамичСскими частями. ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π΅Π½Π΄Π΅Ρ€Π΅ создаётся Π΄Π΅Ρ€Π΅Π²ΠΎ шаблонов, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ диффится с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ DOM.

⚠️ ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Π² списках
ΠŸΡ€ΠΈ использовании индСксов ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнта Π² Π½Π°Ρ‡Π°Π»ΠΎ списка ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅Ρ€Π΅Π½Π΄Π΅Ρ€Ρƒ всСх строк, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Ρƒ всСх мСняСтся. Π­Ρ‚ΠΎ Π°Π½Ρ‚ΠΈΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ элСмСнта Π² Π½Π°Ρ‡Π°Π»ΠΎ списка всС строки ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ идСнтификация ΠΈΠ΄Π΅Ρ‚ ΠΏΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ.
πŸ’‘ РСшСниС: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ элСмСнтов, Π° Π½Π΅ индСксы.

Условный Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ ΠΈ списки: ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ условий ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° DOM-элСмСнты Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ, Π° ΠΏΠ΅Ρ€Π΅ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ состояния.

🚫 ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: Если Π² процСссС Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, вСсь Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ остановляСтся. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ "ΡƒΠΌΠΈΡ€Π°Π΅Ρ‚", Π΄Π°ΠΆΠ΅ Ссли ошибка Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² ΠΎΠ΄Π½ΠΎΠΌ нСбольшом ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Ошибка Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ increment ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ вСсь ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ calculate, пСрСстаСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.
πŸ’‘ РСшСниС Π² Lit: КаТдоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ-ΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡˆΠΈΠ²Π°Ρ‚Π΅Π»ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, maybe). Π­Ρ‚ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±ΠΎΠΉΠ»Π΅Ρ€ΠΏΠ»Π΅ΠΉΡ‚. Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π½Π΅ прСдоставляСт Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Ρ‚ΠΈΠΏΠ° Error Boundaries.

πŸ’Ύ ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· массив статичСских частСй шаблонной строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ формируСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π­Ρ‚ΠΎΡ‚ массив ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡ для прикрСплСния состояния ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ DOM-ΡƒΠ·Π»Ρƒ.
⚠️ НСдостаток: ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€ΡƒΠΊΠ°ΠΌΠΈ (cache). По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ всё пСрСсоздаСтся. НСудобно, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½Π° ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΠΎ Ρ€Π°Π·Π½ΠΎΠ΅ состояниС для Ρ€Π°Π·Π½Ρ‹Ρ… индСксов.
πŸ’‘ ИдСальноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅: АвтоматичСскоС ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ указания ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, id) для создания ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… сущностСй.

⏳ ΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ ΠΈ guard

Для асинхронных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ комбинация async ΠΈ guard. Π­Ρ‚ΠΎ большС Π±ΠΎΠΉΠ»Π΅Ρ€ΠΏΠ»Π΅ΠΉΡ‚Π°, Ρ‡Π΅ΠΌ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Mol ΠΈΠ»ΠΈ React с Suspense). Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ… ΠΌΠΎΠΆΠ½ΠΎ просто "Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ" Promise, ΠΈ систСма Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° сама ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ состояниС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΠ² fallback ΠΈ Π·Π°Ρ‚Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.


πŸ“‰ ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ

Π’Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большС памяти. ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ >100 Π±Π°ΠΉΡ‚, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ JS ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ β€” ΠΎΠΊΠΎΠ»ΠΎ 16 Π±Π°ΠΉΡ‚ (Π² 10 Ρ€Π°Π· большС).

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°: ΠŸΡ€ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π΅ сотСн ΠΈΠ»ΠΈ тысяч элСмСнтов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 2500 ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²) это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΌΡƒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΡŽ памяти (Π΄ΠΎ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚Π°) ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Ρƒ (ΠΌΠΈΠ½ΡƒΡ‚Ρ‹).

πŸ’‘ РСшСниС: Виртуализация. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ΡŒ всС элСмСнты сразу; Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ интСрфСйс открылся быстро ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π±Π΅Π· Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΎΠ².


πŸš€ Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ с Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Mol)

  • Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²: ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π΅ привязаны ΠΊ DOM-элСмСнтам. МоТно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ "ΠΏΡ€ΠΈΠ·Ρ€Π°Ρ‡Π½Ρ‹Π΅" ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с нСсколькими прСдставлСниями.
  • ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ…: ΠŸΡ€ΡΠΌΠ°Ρ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π»ΡŽΠ±Ρ‹Ρ… JS-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Π±Π΅Π· сСриализации.
  • Π‘Ρ‚ΠΈΠ»ΠΈ: Единая систСма стилСй с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ каскадноС ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· контСкста.
  • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: ИспользованиС чистых JS-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² β€” быстрСС, Ρ‡Π΅ΠΌ созданиС хостовых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (DOM-элСмСнтов). ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ "ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ" для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… списков.
  • Π Π°Π±ΠΎΡ‚Π° с DOM: ИспользованиС JSX (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ TypeScript) для Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ описания Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π±Π΅Π· привязки ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ DOM React.

🎯 Π’Ρ‹Π²ΠΎΠ΄Ρ‹

  • Lit ΠΈ Π²Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ β€” это ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° стандартизации ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, обрСмСнённая legacy-Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΌΠΈ ограничСниями.
  • ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ β€” низкая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·-Π·Π° привязки ΠΊ DOM ΠΈ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ потрСблСния памяти, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ограничСнная Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, ΡΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠΏΠ΅Ρ€Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ Π±ΠΎΠΉΠ»Π΅Ρ€ΠΏΠ»Π΅ΠΉΡ‚ Π² стилизации (part/exportparts) ΠΈ низкая ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΊ ошибкам.
  • ЗаявлСнныС прСимущСства Lit (простота, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ) сущСствСнно Π½ΠΈΠ²Π΅Π»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ этими ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, особСнно Π² слоТных прилоТСниях.
  • ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, Π½Π΅ завязанныС Π½Π° Π²Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ элСгантныС, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для построСния соврСмСнных Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
πŸ” Lit ΠΈ Π²Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹: Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ β€” конспСкт Π½Π° EchoNote