Comments 9
Опыта использования нет, все руки не дойдут серьезно поковырять это дело, и пока просто присматриваюсь.
Пишите, в любом случае полезно будет.
Пишите, в любом случае полезно будет.
тут же вопрос к том, на каком уровне писать, и о чем: работа только с X-Tags — которые в общем-то чистые Пользовательские Элементы — это один уровень сложности, Веб Компоненты с довольно замороченной в понимании (но простой в использовании) механикой импортов, трюками с shadow и composed DOM, хитростями тэга template, вложенными друг в друга компонентами — другой, Polymer с своим двухсторонним дата-биндингом, немного специфичным API и кучей технологий под капотом — третье.
Можно сделать некую вводную статью с основами «начального уровня» и потом еще пару статей уже более продвинутого уровня.
я, честно говоря, больше надеялся тут на реальные истории, а не опрос, опрос в общем-то дал в первую очередь понимание того, что почти половина людей даже не слышала о них, половина — только читала публикации, и ни у кого особо нет реального опыта их использования, а значит — действительно внятное и максимально простое объяснение, что такое веб компоненты — с кучей примеров и демок — будет полезным.
В опросе «Знаете ли уже о Веб Компонентах?» получается так, что человек либо знает и использует, либо не знает…
Я вот знаю о них и не использую, как же быть-то теперь…
Я вот знаю о них и не использую, как же быть-то теперь…
Я немного «поизучал» готовые библиотеки: Polymer и React.
У меня сложилось впечатление, что веб-компоненты, могут быть полезны как самостоятельные компоненты, а для создание веб-приложений они не очень удобны. Т.е. думаю связка как Angular + Polymer/React будет удобнее чем чисто Polymer/React. Но опять же в самом Angular есть директивы, которые не плохо заменяют веб-компоненты. Отсюда вытекает то, что веб-компоненты лучше использовать в случае когда в целом веб-приложении нет необходимости.
Для примера веб-приложений можете посмотреть примеры с todomvc: Polymer, React, и сравнить с решением на Angular.js
Так же считаю что веб-компоненты переоценены, их хвалят больше чем используют.
У меня сложилось впечатление, что веб-компоненты, могут быть полезны как самостоятельные компоненты, а для создание веб-приложений они не очень удобны. Т.е. думаю связка как Angular + Polymer/React будет удобнее чем чисто Polymer/React. Но опять же в самом Angular есть директивы, которые не плохо заменяют веб-компоненты. Отсюда вытекает то, что веб-компоненты лучше использовать в случае когда в целом веб-приложении нет необходимости.
Для примера веб-приложений можете посмотреть примеры с todomvc: Polymer, React, и сравнить с решением на Angular.js
Так же считаю что веб-компоненты переоценены, их хвалят больше чем используют.
Я бы просил рассказывать на уровне архитектуры приложения. Давайте на примере todomvc:polymer немного скажу что именно меня смущает:
Это только то, что касается базовых вещей. Но наверное это просто пример так ужасно создан и все можно сделать по другому.
- Напрямую к вэб компонентам это не относится, но у приложения нет никакой файловой структуры — `
/elements/td-input.html
` и `/elements/td-todos.html
` лежат на одном уровне, хотя это концептуально разные вещи. Но я привык работать с компонентами так, что о построении приложения можно уже многое сказать лишь взглянув на файловую систему — и это не мало важно.
- Структура компонент — `
/elements/*.html
` — Правда предлагаете в одном файле писать html, javasctipt и css? Ну я так делать точно не согласен. Если все импортировать по отдельности, то как быть сo сборкой и со `scoped styles`. Сборщиком замещать этот `import` непосредственно всеми стилями? Решение, но таким образом мы раздуваем конечный html файл.
В примере, меня смущает ещё следующее —<link rel="import" href="td-item.html">
. Entry point при загрузки компоненты это его шаблон? Для меня более логичное другое поведение, когда мы подключаем контроллер, а он уже сам регистрируется в системе, подгружает нужный шаблон, и как зависимости другие контроллеры, которые в свою очередь делают тоже самое. А вот инициализация уже происходит через шаблон, когда встречается определённый тэг.
- `polymer-localstorage` и `td-model` — где же разделение приложения на business logic layer и ui layer. Я не хочу выделять всё через ui компоненты. Посмотрев в `polymer-localstorage` и увидев `
display:none
` чуть не поперхнулся — в data access layer ребята используют css стили. Ну ладно там со `слоями приложения`, но посмотрите как они это ещё связывают. Передают id `localstorage` компоненты в `td-model` и связывают черезdocument.querySelector
— нет никакой композиции, никаких внедрений зависимостей.
Это только то, что касается базовых вещей. Но наверное это просто пример так ужасно создан и все можно сделать по другому.
Sign up to leave a comment.
Используете ли вы Веб Компоненты?