Pull to refresh

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 проходился по нему и раскидывал теги по нужным деревьям ? Мне кажтся не должно быть проблем так как здесь упор делается у вас в статье на использование стандартов, но на всякий случай хотелсь бы спросить.

Не совсем понял ваш кейс с раскидыванием тегов по деревьям. Но да, там можно юзать обычный DOM API, и делать это вручную, если это какой-то особый воркфлоу, для которого стандартные возможности либы будут недостаточны.

Ссылку бы на гитхаб в конце статьи, так больше звездочек поставят, а то ходить куда-то искать еще)

Действительно. Добавил.

Интересно, надо будет взглянуть. Как раз изучаю инструменты для работы с веб-компонентами.

А описание этой библиотеки в статье и их философия буквально соответствует моими мыслями о переусложнении и абстракциях. Читал и в уме было "Вот да! Согласен! В точку!"

Здравствуйте, может быть библиотека и правда хорошая, но мне кажется все же стоило бы упомянуть в статье, что вы имеете к разработке этой библиотеки непосредственное отношение (легко проверить за 5 минут по гитхабу и по вашему профилю на хабре), а так просто создаётся ложное ощущение.

Автору статьи удачи!

Ну у меня потому и указаны ссылки в профиле, что я этого не скрываю... Зачем бы мне это делать?

Sign up to leave a comment.

Articles