Как стать автором
Обновить

Комментарии 19

<apocalyptic-warning>
  <span slot="whats-coming">Halitosis Laden Undead Minions</span>
</apocalyptic-warning>

<template>
  <p>The <slot name="whats-coming">Zombies</slot> are coming!</p>
</template>



Вставил в блокнот, сохранил как .html — не работает. Если вы пишете/переводите статью о конкретном фреймворке, то, пожалуйста, потрудитесь упомянуть во введении, о каких фреймворках речь.
В данном случае речь идет не о фреймворке, а о нативной реализации веб-компонентов через Shadow DOM, но, чтобы он окончательно заработал, необходимо дописать код на JavaScript. Что касается отображения в вашем случае, вот пример с рабочим кодом: codepen.io/sldo/pen/ExNMXEV. Браузер отображает текст, но необходимо дописывать JS для полноценной реализации.
В следующем разделе, «Регистрация компонента», приведен необходимый JS-код, который заставляет это работать. Сам не проверял, но должно…

Получается ситуация "каши из топора".


Технически, мы закончили писать собственный компонент

И показывают несколько строк html как будто все уже готово. И только потом вспоминают, что нужно еще JS и CSS...

Дополнил примечанием, чтобы было понятнее

спасибо, теперь перевод стал в чем-то лучше оригинала :)

Автор, укажите, что это перевод и укажите ссылку на оригинал статьи

Странно.
В мобильной версии не отображается.
Прошу прощения за неуместное замечание

Прошу прощения за неуместное замечание
Это Хабр. И проблема с «невидимостью» для многих перевода (того то статья есть перевод) это родимое пятно Хабра.
Это можно вылечить. И «лекарство» не раз предлагали Хабру, но… редакторы Хабра категорически не приемлют этого и упрямо держатся за плашку «перевод», которая многим не видна никак.
Традиция Хабра.
Бывает.
Мне кажется, или Vue использует эту технологию?!

Vue использует те же названия (template и slot), но имплементация у них своя и поведение элементов может отличаться

Под капотом Vue, как и React, использует модель виртуального DOM (VDOM). Она создает абстракцию в виде объекта представления иерархии компонентов для их сравнивания. Однако это разные концепции.

VDOM согласует изменения для оптимизированного рендеринга и вставляет их в DOM, в то время как Shadow DOM скорее позволяет включать поддерево элементов DOM в рендеринг, но не в основное DOM. Хотя соглашусь, что концепции похожи. Так же есть слоты, компоненты и т.д.
Достаточно давно использую Svelte и некоторые вещи в нем казались не совсем логичными, что ли. В один момент заинтересовался веб-компонентами и решил реализовать свой Svelte, но «типа, как надо» и с веб-компонентами на выходе. В результате изобрел… Svelte :) Зато теперь он стал для меня логичен :)
а зачем тут ручной js? вы не знаете что недавно появились модули из коробки?

Красавчик!!! Рекомендую!!! Статья качественно выполнена !

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации