Pull to refresh

Comments 9

Опыта использования нет, все руки не дойдут серьезно поковырять это дело, и пока просто присматриваюсь.
Пишите, в любом случае полезно будет.
тут же вопрос к том, на каком уровне писать, и о чем: работа только с X-Tags — которые в общем-то чистые Пользовательские Элементы — это один уровень сложности, Веб Компоненты с довольно замороченной в понимании (но простой в использовании) механикой импортов, трюками с shadow и composed DOM, хитростями тэга template, вложенными друг в друга компонентами — другой, Polymer с своим двухсторонним дата-биндингом, немного специфичным API и кучей технологий под капотом — третье.
Можно сделать некую вводную статью с основами «начального уровня» и потом еще пару статей уже более продвинутого уровня.
я, честно говоря, больше надеялся тут на реальные истории, а не опрос, опрос в общем-то дал в первую очередь понимание того, что почти половина людей даже не слышала о них, половина — только читала публикации, и ни у кого особо нет реального опыта их использования, а значит — действительно внятное и максимально простое объяснение, что такое веб компоненты — с кучей примеров и демок — будет полезным.
Пиши, обязательно почитаем.
В опросе «Знаете ли уже о Веб Компонентах?» получается так, что человек либо знает и использует, либо не знает…
Я вот знаю о них и не использую, как же быть-то теперь…
Я немного «поизучал» готовые библиотеки: Polymer и React.
У меня сложилось впечатление, что веб-компоненты, могут быть полезны как самостоятельные компоненты, а для создание веб-приложений они не очень удобны. Т.е. думаю связка как 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.

Articles