Size: a a a

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

2017 August 23

D

Dave in Веб-компоненты
ID:309556
пиво будет в @beerjs
О, спасибо
источник

l(

lolmaus (Andrey Mikhaylov) in Веб-компоненты
Прошу прощения, что дублирую баян, но именно это я себе представляю , когда думаю о Полимере.

Меня пугает в первую очередь не сырость технологий, а отсутствие единой инфраструктуры, необходимость писать -- и потом поддерживать -- тонны прослоечного кода.
источник

l(

lolmaus (Andrey Mikhaylov) in Веб-компоненты
источник
2017 August 24

Б

Богдан in Веб-компоненты
Давайте поговорим о недостатках сабджекта. У полимера/веб-компонентов есть огромный такой недостаток в виде невозможности вывести больше одного раза контент слотов. Вот доспустим нужен компонент который выводит контент который ему передали и продублирует этот контент в маленьком окошке ака превью. В реакте я просто напишу
function WithPreview(props) {
return (
  <div>
   <div>{props.children}</div>
   <div style={{tranform: 'scale(0.1)',...}}>{props.children}</div>
 </div>
)
}
А вот как мне это реализовать на полимере или веб-компонентах?
источник

SE

Stanislav Eremenko in Веб-компоненты
Богдан
Давайте поговорим о недостатках сабджекта. У полимера/веб-компонентов есть огромный такой недостаток в виде невозможности вывести больше одного раза контент слотов. Вот доспустим нужен компонент который выводит контент который ему передали и продублирует этот контент в маленьком окошке ака превью. В реакте я просто напишу
function WithPreview(props) {
return (
  <div>
   <div>{props.children}</div>
   <div style={{tranform: 'scale(0.1)',...}}>{props.children}</div>
 </div>
)
}
А вот как мне это реализовать на полимере или веб-компонентах?
Именованные слоты? Но это, конечно, придется контент дублировать в твоем <with-preview>
источник

MB

Mikhail Bashkirov in Веб-компоненты
lolmaus (Andrey Mikhaylov)
Прошу прощения, что дублирую баян, но именно это я себе представляю , когда думаю о Полимере.

Меня пугает в первую очередь не сырость технологий, а отсутствие единой инфраструктуры, необходимость писать -- и потом поддерживать -- тонны прослоечного кода.
такого нет, на самом деле для этого и существует Полимер, чтобы не писать тонны прослоечного кода
он единственная прослойка, которая скрывает большую часть несовместимостей
но изредка (пока это случилось один раз) нужно мигрировать и на новую версию Полимера (сейчас с 1 на 2), и это конечно расстраивает
в перспективе не будет Полимера, когда спецификации достигнут определенного уровня зрелости и поддержки в браузерах
источник

MB

Mikhail Bashkirov in Веб-компоненты
Богдан
Давайте поговорим о недостатках сабджекта. У полимера/веб-компонентов есть огромный такой недостаток в виде невозможности вывести больше одного раза контент слотов. Вот доспустим нужен компонент который выводит контент который ему передали и продублирует этот контент в маленьком окошке ака превью. В реакте я просто напишу
function WithPreview(props) {
return (
  <div>
   <div>{props.children}</div>
   <div style={{tranform: 'scale(0.1)',...}}>{props.children}</div>
 </div>
)
}
А вот как мне это реализовать на полимере или веб-компонентах?
думаю это работает, щас проверю в своей песочнице
источник

MB

Mikhail Bashkirov in Веб-компоненты
проверил, не работает ни с дефолтным слотом, ни с именоваными
конечно бывают кейсы, когда нужно имено дерево спроецировать внутрь более одного раза, но обычно все-таки такое происходит с обычными свойствами, а не слотами
для меня странно, что не предусмотрели такой синтаксис в спецификации... очень будет интересно почитать что обсуждали при разработке спецификации, наверняка там были причины так не делать, но так себе отмазка
источник

MB

Mikhail Bashkirov in Веб-компоненты
кстати частый ответ в таких случаях - создайте компонент, запишите туда все дерево, которое нужно повторять
и потом просто в 2 разных слота передавайте этот новый компонент, таким образом DRY и компонентизация
источник

MB

Mikhail Bashkirov in Веб-компоненты
полагаю, что где-то в процессе именно такая стратегия была предложения как альтернатива, и таким образом удалось упростить спецификацию и имплеметанцию на стороне браузеров, которая и так сложна
источник

MB

Mikhail Bashkirov in Веб-компоненты
я вот полгода уже работаю и до сих пор предпочитаю дебажить в режиме ShadyDOM, если только какие-то проблемы не специфичны для нативного Shadow
а все потому, что рассматривать отдельно Local DOM и Light DOM в дебаггере Хрома так себе удовольсвтие) со всеми нажатиями Reveal и переходами туда, откуда дерево прилетело
источник

MB

Mikhail Bashkirov in Веб-компоненты
фанаты Virtual DOM, как вам https://github.com/PolymerLabs/lit-html то?
доклад тут https://www.youtube.com/watch?v=ruql541T7gc
источник

MB

Mikhail Bashkirov in Веб-компоненты
там самое интересное на последних 6 минутах
источник

NK

ID:309556 in Веб-компоненты
мне по этому поводу сказать пока нечего, но могу подкинуть таблицу сравнения huperHTML и lit
https://gist.github.com/WebReflection/fadcc419f5ccaae92bc167d8ff5c611b
источник

MB

Mikhail Bashkirov in Веб-компоненты
да, как раз смотрел щас на нее
источник

at

andrei tshurotshkin! 🎄 in Веб-компоненты
это откуда логотип?
источник

MB

Mikhail Bashkirov in Веб-компоненты
сравнение явно не в пользу lit-html
не понял одного: в чем же проблема взять hyperHTML и юзать с Polymer 3, там нет никакой глубокой завязки, ну может только с SSR будуть проблемы, но Google другие решения для SSR предложил и на эту тему было аж 3 доклада (спойлер: Chrome headless mode)
источник

MB

Mikhail Bashkirov in Веб-компоненты
andrei tshurotshkin! 🎄
это откуда логотип?
официальный логотип веб-компонентов
источник

MB

Mikhail Bashkirov in Веб-компоненты
источник

MB

Mikhail Bashkirov in Веб-компоненты
источник