Полимерные и угловые могут выглядеть очень похожими, потому что они оба имеют шаблоны и привязку данных, но на самом деле они совершенно разные.
Полимер на самом деле не является полноценной инфраструктурой приложений, так как он является основой для создания пользовательских элементов W3C 1. Он опирается на новые, предстоящие и надежные стандарты, такие как Shadow DOM, Object.observe, Наблюдения за мутациями, Scoped CSS, элемент, привязка к шаблонам, Node.bind(), пользовательские элементы и HTML-импорт и в основном упрощают их совместное использование для создания пользовательских элементов. Вам вообще не нужно использовать Polymer для создания пользовательских элементов, это было бы просто утомительно. Проект Polymer также построил полисы для этих стандартов, поэтому иногда сложно понять, какие части являются фактической «полимерной» частью. В Dart-land это только вещи в полимерной упаковке, в основном класс Polymer, все остальное в пакетах, таких как наблюдение, template_binding или уже интегрированное в дротик: html, например Shadow DOM.
После того как вы внедрили пользовательский элемент в Polymer, пользователи элемента не обязательно должны знать о Polymer, это детали реализации. Возможно, им потребуется знать о персонализированном обновлении элементов или Node.bind(), но не в Polymer. На самом деле, Polymer настолько сосредоточен на элементах, что на самом деле не существует такой вещи, как «приложение для полимеров», есть только приложение, построенное из пользовательских элементов, которые, как оказалось, реализованы с помощью Polymer, но они могут так же легко быть реализована с библиотекой X-тегов Mozilla [2]
Угловая определенно более полнофункциональная и то, что я бы назвал «инфраструктурой приложения», а не как пользовательскую структуру элементов. Он предоставляет директивы (поведение mixin для узлов), инъекции зависимостей, всевозможные сервисы, такие как http и routing, и имеет всю эту изменчивую унаследованную идею объема, которая пронизывает приложение и имеет глобальное состояние, среди прочего, я, вероятно, отсутствует. Угловые в настоящее время не помогут вам создавать пользовательские элементы, вместо этого вы создаете угловые компоненты, которые работают в приложениях с угловыми углами.
Угловое приложение может использовать полимерные элементы, поскольку полимерные элементы - это просто элементы. Одностороннее связывание данных должно работать [3], а для двусторонней привязки данных требуется либо настраиваемая директива (использовать Object.observe или Node.bind для прослушивания изменений свойств), либо для Углового, чтобы добавить поддержку узла. bind(), что позволило бы Угловой в общем двустороннем связывании с любым элементом, от s до полимерных элементов, до элементов X-Tag.
В конце концов, я не думаю, что между ними существует справедливое сравнение яблок с яблоками, а перекрытие меньше, чем может показаться на поверхности, потому что люди, похоже, слишком завышают, насколько велики Полимер - это или как недооценивать, насколько велика Угловая, или, может быть, они не знают различий в философии. Я полностью ожидаю, что в будущем появятся больше угловые структуры, которые будут построены поверх пользовательских элементов, которые будут более сопоставимы с Angular, чем Polymer, и Polymer по-прежнему будет хорошим способом, среди других вариантов, реализовать элементы.
SOURCE