2017-01-11 3 views
2

Мне было интересно, есть ли дорожная карта, опубликованная на том, когда/как Angular (2.0+) планирует полностью поддерживать собственные веб-компоненты (https://www.webcomponents.org/).Угловая интеграция с веб-компонентами - Дорожная карта

Да, я знаю, что есть ViewEncapsulation.Native и CUSTOM_ELEMENTS_SCHEMA. Но я спрашиваю, есть ли план полной поддержки веб-компонентов. Поэтому мы можем использовать удивительные библиотеки, такие как google polymer (https://www.polymer-project.org/).

Я знаю, что есть vaadin lib (https://github.com/vaadin/angular2-polymer), который обрабатывает интеграцию. Но опять же: я говорю о родной поддержки.

ответ

1

Ну, это прекрасная вещь о веб-компонентах. Если браузер поддерживает их изначально, они будут работать изначально в любой среде. Это будет то же самое, что использовать тег <input> в Angular. Браузер делает это, а не фреймворк.

Все, что вам нужно сделать, это указать Угловое, что вы используете пользовательские элементы, о которых он не знает. CUSTOM_ELEMENTS_SCHEMA.

Теперь, когда речь идет о библиотеках веб-компонентов, таких как Polymer, это совсем другая история.

Polymer 1.x использует специальный элемент v0 spec и опирается на множество пользовательских логических элементов для управления DOM через Polymer.dom(). Он не совместим с Angular без сторонней поддержки, потому что Angular использует собственные методы манипуляции DOM вместо Polymer. Он будет никогда не поддерживается Angular, потому что спецификация v0 - это не то, что браузеры реализуют.

Polymer 2.x использует спецификацию пользовательского элемента v1, браузер которой реализует (или уже реализовал). Он ведет себя как обычные элементы, поэтому он, естественно, поддерживается угловым.

Любой дополнительный сахар, который такие библиотеки, как полимер, дает, например, штамповку шаблонов и привязку к ним, может не работать изначально.

TL; DR;

Угловая изначально поддерживает веб-компоненты, соответствующие спецификации v1.

Библиотеки (такие как Polymer), которые строятся поверх веб-компонентов, могут предлагать функции, которые не работают в Angular.

Если вы хотите использовать Полимер и Угол вместе, сфокусируйтесь на Polymer 2.x, который реализует спецификацию v1.

Смежные вопросы