Size: a a a

Веб-компоненты

2019 June 19

SK

Serhii Kulykov in Веб-компоненты
проблем, которые он решает, иногда меньше, чем тех, которые он приносит. focus и selection как примеры
источник

SK

Serhii Kulykov in Веб-компоненты
меня в принципе тревожит то, что браузеры пилят новые фичи, а допилить вот такие базовые штуки у них руки не доходят
источник

АР

Алексей Родионов in Веб-компоненты
Web Components — это совокупность спецификаций, но нигде не сказано, что чтобы называться веб-компонентом нужно использовать одновременно их все. Если используется только Custom Elements, то это кастомный элемент, а если 2 и более, например, Custom Elements и HTML Templates, то уже веб-компонент.

Ситуация аналогична Progressive Web Apps (PWA). Это тоже совокупность нескольких (малосвязных между собой) Web API. Но от того, что ваше веб-приложение не будет использовать хотя бы одно из этих API не следует, что оно перестаёт быть PWA.
источник

DM

Denys Mishunov in Веб-компоненты
Алексей Родионов
Web Components — это совокупность спецификаций, но нигде не сказано, что чтобы называться веб-компонентом нужно использовать одновременно их все. Если используется только Custom Elements, то это кастомный элемент, а если 2 и более, например, Custom Elements и HTML Templates, то уже веб-компонент.

Ситуация аналогична Progressive Web Apps (PWA). Это тоже совокупность нескольких (малосвязных между собой) Web API. Но от того, что ваше веб-приложение не будет использовать хотя бы одно из этих API не следует, что оно перестаёт быть PWA.
все правильно. Спасибо за пояснение и согласие в этом вопросе 🙂
источник

АР

Алексей Родионов in Веб-компоненты
Времена, когда всё приложение целиком было одним большим веб-компонентом типа <my-app></my-app> с ShadowDOM, который импортировался в index.html уже прошли. )
источник

DM

Denys Mishunov in Веб-компоненты
если это решает какую-то проблему, то почему нет? Тут принцип тот же самый – ни спека, ни что-то другое не запрещает это делать 🙂 Другой вопрос, что это треш, да 🙂
источник

DM

Denys Mishunov in Веб-компоненты
если серьезно, то я могу загнать приложение в один компонент и добавлять его в какой-то аггрегатор сервисов так, чтобы он у меня работал четко и предсказуемо в этом контексте. Это очень валидный юзкейс для всё приложение целиком было одним большим веб-компонентом типа <my-app></my-app>
источник

АР

Алексей Родионов in Веб-компоненты
Denys Mishunov
если серьезно, то я могу загнать приложение в один компонент и добавлять его в какой-то аггрегатор сервисов так, чтобы он у меня работал четко и предсказуемо в этом контексте. Это очень валидный юзкейс для всё приложение целиком было одним большим веб-компонентом типа <my-app></my-app>
Ну Polymer Starter Kit так и был устроен. У меня до сих пор в продакшене есть такое приложение — https://gdezerno.ru

Этот подход имеет смысл, если это, например, виджет погоды, который может встраиваться на другие сайты (сам стягивает данные по API и отрисовывает их). Тут важен и custom elements, чтобы скрыть все потроха, и shadow dom, чтобы изолировать всё.

И решающим фактором здесь является — переиспользуемость. Рефакторить что-то в веб-компонент нужно только если это планируется переиспользовать. Виджет погоды — переиспользуемый компонент.

Но если у вас веб-приложение, которое не подразумевает, что оно целиком всё будут встроено куда-то ещё, то делать его всё в виде одного большого компонента, ИМХО, нет смысла.
источник

АР

Алексей Родионов in Веб-компоненты
Я до сих пор не пришёл к окончательному пониманию, как правильно бить приложение на веб-компоненты: должны ли компоненты сами стягивать данные или они должны их только отображать, а данные попадать в них снаружи и т.д...
источник

DM

Denys Mishunov in Веб-компоненты
Алексей Родионов
Ну Polymer Starter Kit так и был устроен. У меня до сих пор в продакшене есть такое приложение — https://gdezerno.ru

Этот подход имеет смысл, если это, например, виджет погоды, который может встраиваться на другие сайты (сам стягивает данные по API и отрисовывает их). Тут важен и custom elements, чтобы скрыть все потроха, и shadow dom, чтобы изолировать всё.

И решающим фактором здесь является — переиспользуемость. Рефакторить что-то в веб-компонент нужно только если это планируется переиспользовать. Виджет погоды — переиспользуемый компонент.

Но если у вас веб-приложение, которое не подразумевает, что оно целиком всё будут встроено куда-то ещё, то делать его всё в виде одного большого компонента, ИМХО, нет смысла.
абсолютно точно! Это я и имею в виду, когда говорю, что это иснтрумент и он имеет свою область применения. Тем не менее, Shadow DOM все равно имеет смысл как инкапсулятор стилей даже без цели переиспользования. Но это уже другая история
источник

PM

Pavel 🦇 Malyshev in Веб-компоненты
Denys Mishunov
верное замечание. Но, мне кажется, использование всего лишь одной спецификации – это еще не веб компонент
а если используется Custom Element + Template (lit-html) - это уже можно назвать веб-компонентом?
источник

DM

Denys Mishunov in Веб-компоненты
пожалуйста. Тут же уже больше одной спецификации, насколько я помню из уроков математики 🙂
источник

PM

Pavel 🦇 Malyshev in Веб-компоненты
Denys Mishunov
пожалуйста. Тут же уже больше одной спецификации, насколько я помню из уроков математики 🙂
Ну тогда все, GitHub официально юзает веб-компоненты:
https://github.com/

document.querySelectorAll('template')
NodeList [template#site-details-dialog]
источник

PM

Pavel 🦇 Malyshev in Веб-компоненты
😉
источник

DM

Denys Mishunov in Веб-компоненты
как скажешь  🙂
источник

PM

Pavel 🦇 Malyshev in Веб-компоненты
Denys Mishunov
как скажешь  🙂
Следую за твоей мыслью 😜
источник

DM

Denys Mishunov in Веб-компоненты
ты, как мне кажется, утрируешь, а не следуешь за мыслью, но я это переживу 🙂
источник

IF

Infant Frontender in Веб-компоненты
Denys Mishunov
ты, как мне кажется, утрируешь, а не следуешь за мыслью, но я это переживу 🙂
Ты главное держишь 😐
источник

PM

Pavel 🦇 Malyshev in Веб-компоненты
Denys Mishunov
ты, как мне кажется, утрируешь, а не следуешь за мыслью, но я это переживу 🙂
Да не, выстраиваю логическую цепочку:

Как github могут использовать веб-компоненты без Shadow DOM? -> Они юзаеют Custom Elements и HTML Templates -> Ок, значит github используют веб-компоненты без Shadow DOM
👍
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in Веб-компоненты
источник