Vous n'êtes pas le premier à poser cette question :) Permettez-moi de clarifier quelques points avant de répondre à vos questions.
-
Polymère webcomponents.js
est une bibliothèque qui contient plusieurs polyfills pour diverses API du W3C qui relèvent de l'ombrelle des composants Web. Il s'agit de :
- Éléments personnalisés
- Importations HTML
<template>
- DOM de l'ombre
- Événements relatifs aux pointeurs
- autres
Le menu de gauche dans la documentation ( projet-polymère.org ) a une page pour toutes ces "technologies de plate-forme". Chacune de ces pages contient également un pointeur vers le polyfill individuel.
-
<link rel="import" href="x-foo.html">
est un import HTML. Les importations sont un outil utile pour inclure du HTML dans d'autres HTML. Vous pouvez inclure <script>
, <link>
, le balisage ou tout autre élément dans une importation.
-
Rien "liens" <x-foo>
à x-foo.html. Dans votre exemple, on suppose que la définition de l'élément personnalisé de <x-foo>
(par exemple <element name="x-foo">
) est défini dans x-foo.html. Lorsque le navigateur voit cette définition, il l'enregistre comme un nouvel élément.
Passons aux questions !
Quelle est la différence entre Angular et Polymer ?
Nous avons abordé certains de ces points dans notre Vidéo Q&R . En général, Polymer est une bibliothèque qui vise à utiliser (et à montrer comment utiliser) les composants Web. Sa base est constituée d'éléments personnalisés (par exemple, tout ce que vous construisez est un composant Web) et elle évolue en fonction de l'évolution du Web. À cette fin, nous ne supportons que la dernière version des navigateurs modernes.
Je vais utiliser cette image pour décrire l'ensemble de l'architecture de Polymer :
Couche ROUGE : Nous obtenons le web de demain grâce à un ensemble de polyfills. N'oubliez pas que ces bibliothèques disparaissent avec le temps, à mesure que les navigateurs adoptent les nouvelles API.
Couche JAUNE : Saupoudrer de sucre avec polymer.js. Cette couche est notre opinion sur la façon d'utiliser les API spécifiées, ensemble. Elle ajoute également des éléments tels que la liaison de données, le sucre syntaxique, les observateurs de changement, les propriétés publiées... Nous pensons que ces éléments sont utiles pour construire des applications Web basées sur des composants.
VERT : L'ensemble complet des composants de l'interface utilisateur (couche verte) est toujours en cours. Il s'agira de composants web qui utiliseront l'ensemble des couches rouge et jaune.
Directives Angular ou éléments personnalisés ?
Voir l'article d'Alex Russell responder . Fondamentalement, Shadow DOM permet de composer des morceaux de HTML mais est aussi un outil pour encapsuler ce HTML. Il s'agit d'un concept fondamentalement nouveau sur le Web et d'un outil que les autres frameworks vont exploiter.
Quels sont les problèmes que Polymer résout et qu'AngularJS n'a pas résolus ou ne résoudra pas ?
Similitudes : modèles déclaratifs, liaison de données.
Les différences : Angular possède des API de haut niveau pour les services, les filtres, les animations, etc., prend en charge IE8 et, à ce stade, est un cadre beaucoup plus robuste pour la création d'applications de production. Polymer n'en est qu'à ses débuts en version alpha.
Est-il prévu de lier Polymer à AngularJS à l'avenir ?
Ils sont projets séparés . Cela dit, les deux équipes Angular et Ember a annoncé ils finiront par utiliser les API de la plate-forme sous-jacente dans leurs propres cadres.
C'est une énorme victoire, selon moi. Dans un monde où les développeurs web disposent d'outils puissants (Shadow DOM, Custom Elements), les auteurs de frameworks peuvent également utiliser ces primitives pour créer de meilleurs frameworks. La plupart d'entre eux doivent actuellement passer par de grands obstacles pour "faire le travail".
UPDATE :
Il y a un très bon article sur ce sujet : " Voici la différence entre Polymer et Angular "
0 votes
Informations utiles ici 2ality - Les rôles d'AngularJS et de Polymer