Комментарии 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 для полноценной реализации.
Так Web Components и используется.
caniuse.com/custom-elementsv1
caniuse.com/custom-elementsv1
В следующем разделе, «Регистрация компонента», приведен необходимый JS-код, который заставляет это работать. Сам не проверял, но должно…
Автор, укажите, что это перевод и укажите ссылку на оригинал статьи
Перевод и автор указаны в начале статьи


Странно.
В мобильной версии не отображается.
Прошу прощения за неуместное замечание
Прошу прощения за неуместное замечаниеЭто Хабр. И проблема с «невидимостью» для многих перевода (того то статья есть перевод) это родимое пятно Хабра.
Это можно вылечить. И «лекарство» не раз предлагали Хабру, но… редакторы Хабра категорически не приемлют этого и упрямо держатся за плашку «перевод», которая многим не видна никак.
Традиция Хабра.
Бывает.
Мне кажется, или Vue использует эту технологию?!
Не использует, про синтаксис шаблонов похож.
Vue использует те же названия (template и slot), но имплементация у них своя и поведение элементов может отличаться
Под капотом Vue, как и React, использует модель виртуального DOM (VDOM). Она создает абстракцию в виде объекта представления иерархии компонентов для их сравнивания. Однако это разные концепции.
VDOM согласует изменения для оптимизированного рендеринга и вставляет их в DOM, в то время как Shadow DOM скорее позволяет включать поддерево элементов DOM в рендеринг, но не в основное DOM. Хотя соглашусь, что концепции похожи. Так же есть слоты, компоненты и т.д.
VDOM согласует изменения для оптимизированного рендеринга и вставляет их в DOM, в то время как Shadow DOM скорее позволяет включать поддерево элементов DOM в рендеринг, но не в основное DOM. Хотя соглашусь, что концепции похожи. Так же есть слоты, компоненты и т.д.
Svelte может взять на себя обвязку (отслеживание свойств, стилизация и тп) и скомпилироваться в вебкомпонент. Как пример такого компонента: https://reddec.net/demo/github-card/ (исходный код https://github.com/reddec/github-card)
а зачем тут ручной js? вы не знаете что недавно появились модули из коробки?
Красавчик!!! Рекомендую!!! Статья качественно выполнена !
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Веб-компоненты проще, чем вы думаете