2 votes

Intégration d'Angular avec des composants web - Feuille de route

Je me demandais s'il y avait une feuille de route publiée sur quand/comment Angular (2.0+) prévoit de supporter entièrement les composants web natifs ( https://www.webcomponents.org/ ).

Oui, je suis conscient qu'il y a un ViewEncapsulation.Native et un CUSTOM_ELEMENTS_SCHEMA . Mais je demande s'il y a un plan pour supporter complètement les composants web. Ainsi nous pourrons utiliser des bibliothèques géniales comme google polymer ( https://www.polymer-project.org/ ).

Je sais qu'il existe une librairie vaadin ( https://github.com/vaadin/angular2-polymer ) qui gère l'intégration. Mais encore une fois : Je parle de indigène soutien.

1voto

abmitchell Points 1451

Eh bien, c'est un peu la belle chose sur les composants web. Si le navigateur les prend en charge de manière native, ils fonctionneront de manière native dans n'importe quel framework. Ce serait la même chose que d'utiliser un <input> dans Angular. C'est le navigateur qui en assure le rendu, pas le framework.

Il vous suffit d'indiquer à Angular que vous utilisez des éléments personnalisés qu'il ne connaît pas avec CUSTOM_ELEMENTS_SCHEMA .

Lorsqu'il s'agit de bibliothèques de composants Web comme Polymer, c'est une autre histoire.

Polymer 1.x utilise la spécification v0 de l'élément personnalisé, et s'appuie sur une logique personnalisée pour manipuler le DOM par le biais de Polymer.dom() . Il n'est pas compatible avec Angular sans l'aide d'un tiers, car Angular utilise des méthodes natives de manipulation du DOM au lieu de celles de Polymer. Il sera jamais être pris en charge par Angular, car la spécification v0 ne correspond pas à ce que les navigateurs mettent en œuvre.

Polymer 2.x utilise la spécification v1 des éléments personnalisés, que les navigateurs mettent en œuvre (ou ont déjà mis en œuvre). Il se comporte exactement comme les éléments ordinaires, et est donc naturellement pris en charge par Angular.

Tout ce que les bibliothèques telles que Polymer offrent en plus, comme l'estampillage de modèles et la liaison de données, peut ne pas fonctionner en mode natif.

TL;DR ;

Angular prend en charge de manière native les composants web conformément à la spécification v1.

Les bibliothèques (telles que Polymer) qui reposent sur des composants Web peuvent offrir des fonctionnalités qui ne fonctionnent pas dans Angular.

Si vous souhaitez utiliser Polymer et Angular ensemble, concentrez-vous sur Polymer 2.x, qui met en œuvre la spécification v1.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X