Ви не перший, хто задає це питання :) Дозвольте мені уточнити пару речей, перш ніж перейти до ваших питань.
Polymer's webcomponents.js
- це бібліотека, яка містить декілька поліфілів для різних API W3C, які підпадають під парасольку веб-компонентів. Це:
- Спеціальні елементи
- Імпорт HTML
<template>
- Тінь 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.
ЖОВТИЙ шар: Посипте трохи цукру полімером.js. Цей шар - наша думка щодо того, як разом використовувати API spec'd. Він також додає такі речі, як прив'язка даних, синтатичний цукор, динаміки змін, опубліковані властивості ... Ми вважаємо, що ці речі корисні для створення програм на базі веб-компонентів.
ЗЕЛЕНИЙ: всеосяжний набір компонентів інтерфейсу (зелений шар) ще триває. Це веб-компоненти, які використовують усі червоні та жовті шари.
Кутові директиви проти користувацьких елементів?
Див Alex Рассела відповідь . В основному, Shadow DOM дозволяє складати біти HTML, але також є інструментом для інкапсуляції цього HTML. Це принципово нова концепція в Інтернеті, і дещо інші рамки будуть корисними.
Які проблеми вирішує Polymer, що AngularJS не має чи не буде?
Подібність: декларативні шаблони, прив'язка даних.
Відмінності: Angular має API високого рівня для сервісів, фільтрів, анімації тощо, підтримує IE8, і в цей момент є набагато більш надійною основою для створення виробничих додатків. Полімер тільки починається з альфа.
Чи плануєте в майбутньому пов'язати «Полімер» з AngularJS?
Це окремі проекти . При цьому як Angular, так і Ember команди оголосили, що врешті-решт перейдуть до використання базових API платформ у своїх власних рамках.
^ Це величезний виграш IMO. У світі, де веб-розробники мають потужні інструменти (Shadow DOM, Custom Elements), автори фреймворків також можуть використовувати ці примітиви для створення кращих рамок. Більшість із них зараз проходять великі обручі, щоб "виконати роботу".
ОНОВЛЕННЯ:
На цю тему дійсно чудова стаття: " Ось різниця між полімером та кутовим "