Вы не первый, кто задает этот вопрос :) Позвольте мне прояснить пару вещей, прежде чем перейти к вашим вопросам.
Polymer's webcomponents.js
- это библиотека, которая содержит несколько полизаполнений для различных API-интерфейсов W3C, попадающих под зонтик веб-компонентов. Эти:
- Пользовательские Элементы
- HTML импорт
<template>
- Shadow DOM
- События указателя
- другие
Левая навигация в документации ( Polymer-Project.org ) содержит страницу для всех этих «технологий платформы». На каждой из этих страниц также есть указатель на отдельный полифилл.
<link rel="import" href="x-foo.html">
такое импорт HTML. Импорт - это полезный инструмент для включения HTML в другой HTML. Вы можете включить <script>
, <link>
разметку или что-либо еще в импорт.
Ничто не "ссылается" <x-foo>
на x-foo.html. В вашем примере предполагается, что определение пользовательского элемента <x-foo>
(например <element name="x-foo">
) определено в x-foo.html. Когда браузер видит это определение, оно регистрируется как новый элемент.
На вопросы!
В чем разница между угловым и полимерным?
Мы рассказали об этом в нашем видео . В целом, Polymer - это библиотека, цель которой - использовать (и показать, как использовать) веб-компоненты. Его основой являются пользовательские элементы (например, все, что вы создаете, является веб-компонентом), и оно развивается по мере развития сети. Для этого мы поддерживаем только последнюю версию современных браузеров.
Я буду использовать это изображение для описания всего стека архитектуры Polymer:
КРАСНЫЙ слой: мы получаем завтрашнюю сеть через набор полифилов. Имейте в виду, что эти библиотеки со временем исчезают, так как браузеры принимают новые API.
ЖЕЛТЫЙ слой: посыпать сахар сахаром poly.js. Этот уровень является нашим мнением о том, как использовать спецификации API, вместе. Он также добавляет такие вещи, как привязка данных, синтетический сахар, средства отслеживания изменений, опубликованные свойства ... Мы считаем, что эти вещи полезны для создания приложений на основе веб-компонентов.
ЗЕЛЕНЫЙ: комплексный набор компонентов пользовательского интерфейса (зеленый слой) все еще находится в процессе разработки. Это будут веб-компоненты, которые используют все красные + желтые слои.
Угловые директивы против пользовательских элементов?
Смотрите ответ Алекса Рассела . По сути, Shadow DOM позволяет создавать фрагменты HTML, но также является инструментом для инкапсуляции этого HTML. Это принципиально новая концепция в Интернете, которую могут использовать другие платформы.
Какие проблемы решает Polymer, что AngularJS не имеет или не будет?
Сходства: декларативные шаблоны, привязка данных.
Различия: Angular имеет высокоуровневые API для сервисов, фильтров, анимации и т. Д., Поддерживает IE8 и на данный момент является гораздо более надежной средой для создания производственных приложений. Полимер только начинается в альфа.
Есть ли планы связать Polymer с AngularJS в будущем?
Это отдельные проекты . Тем не менее, команды Angular и Ember объявили, что в конечном итоге перейдут на использование API-интерфейсов базовой платформы в своих собственных средах.
^ Это огромная победа ИМО. В мире, где веб-разработчики имеют мощные инструменты (Shadow DOM, Custom Elements), авторы фреймворков также могут использовать эти примитивы для создания более качественных фреймворков. Большинство из них в настоящее время проходят через большие обручи, чтобы "сделать работу".
ОБНОВИТЬ:
На эту тему есть отличная статья: « Вот разница между Полимером и Углом »