Comments 9
Интересное прежставление. Спасибо.
А как эта библиотека работает с shadow dom ? Может ли так получиться, что появятся моменты, когда мне надо работать с shadow dom и библиотека его не увидит или что то еще похожее ?
По умолчанию, у Симбиот-компонентов Shadow DOM нет, это сделано для производительности и он далеко не всегда нужен. Но его можно включить флагом:
export class MyComponent extends Symbiote {
renderShadow = true;
}
После этого в шаблонах заработают слоты, и в стилях можно будет использовать селекторы :host
`, все по стандарту. Интересная деталь, там есть интерфейсы для работы со стилями shadowStyles
и rootStyles
. Эти штуки можно использовать как по отдельности, так и совместно. Так вот, rootStyles
определяет стили компонента в ближайшем по иерархии Shadow DOM (если есть) и влияет на компонент только в своем скоупе, даже если сам не имеет собственной теневой разметки. Если Shadow DOM не используется вообще - стили будут добавлены в контекст самого документа. Положение компонента определяется им самим в рантайме, и вам не нужно об этом специально думать.
Ну хорошо если так, хотя это надо все проверять.
Я пользуюсь сборщиком esbuild сейчас. Там есть плагин для добавления css.
Я им писал не один месяц, что у них не правильно работает это добавление, перед тем, как они согласились со мной и исправили баг.
После этой ситуации я немного опасаюсь словосочетаний само добавляется )) Но верю что это на самом деле так )
А как насчет web components ? У меня структура прокта сделана так, что у меня темплейт компонента делится на две части.
1. Это нативные теги. Они всегда попадают в shadow Dom
2. Кастомные компоненты. Они всегда попадают в light Dom
Не будет проблемы сделать цикл, который бы брал template проходился по нему и раскидывал теги по нужным деревьям ? Мне кажтся не должно быть проблем так как здесь упор делается у вас в статье на использование стандартов, но на всякий случай хотелсь бы спросить.
Ссылку бы на гитхаб в конце статьи, так больше звездочек поставят, а то ходить куда-то искать еще)
Интересно, надо будет взглянуть. Как раз изучаю инструменты для работы с веб-компонентами.
А описание этой библиотеки в статье и их философия буквально соответствует моими мыслями о переусложнении и абстракциях. Читал и в уме было "Вот да! Согласен! В точку!"
Здравствуйте, может быть библиотека и правда хорошая, но мне кажется все же стоило бы упомянуть в статье, что вы имеете к разработке этой библиотеки непосредственное отношение (легко проверить за 5 минут по гитхабу и по вашему профилю на хабре), а так просто создаётся ложное ощущение.
Автору статьи удачи!
Symbiote.js 2.0