Webcomponents: [modèles] Un registre global de processeurs de modèles est-il une bonne idée ?

Créé le 2 nov. 2017  ·  5Commentaires  ·  Source: WICG/webcomponents

L'alternative, à mon avis, nécessite un code impératif pour instancier des modèles donnés aux processeurs, comme dans l'API à https://github.com/domenic/template-parts#the -templateinstantiate-method ou similaire. (Inspiré de nos discussions précédentes.)

Cela nécessiterait que les bibliothèques et les frameworks proposent leur propre syntaxe, éventuellement fragmentée, pour créer des modèles déclaratifs. Mais il semble difficile d'imposer un autre registre global aux personnes étant donné le nombre de plaintes que nous avons autour du registre global des noms d'éléments dans les éléments personnalisés. Là, c'était inévitable, mais ici, cela semble assez évitable.

Peut-être devrions-nous avoir les deux, c'est-à-dire avoir une API impérative sous-jacente, puis si vous souhaitez utiliser un registre global fourni par le navigateur, le pouvez-vous ? L'idée étant que des frameworks plus avancés seraient alors en mesure de profiter de la fonctionnalité ici sans nécessairement s'enfermer dans le registre global fourni par le navigateur.

templates

Commentaire le plus utile

Chez TPAC, nous avons décidé que pour la v1, il n'y aurait pas de registre global, donc si vous souhaitez utiliser une syntaxe purement déclarative, vous devrez accepter le processeur par défaut. Affectation à @rniwa pour mettre à jour la proposition dans cette direction (peut-être en extrayant des éléments dans un document v2 distinct).

Tous les 5 commentaires

Nous pensons que la possibilité de spécifier un type de modèle de manière déclarative en HTML est importante afin que l'utilisateur d'une bibliothèque de modèles n'ait pas besoin de le spécifier à chaque fois qu'il crée une instance de modèle.

Soutenir les deux, c'est bien. Alternativement, nous pouvons prendre en charge une portée au niveau de l'arborescence shadow.

Pourquoi le registre mondial des éléments personnalisés était-il inévitable ? Le fait qu'il existe est l'une des raisons pour lesquelles j'évite toujours les éléments personnalisés pour la plupart. Je ne vois pas pourquoi il ne serait pas possible d'avoir shadowRoot.customElements en plus de window.customElements .

Quoi qu'il en soit, je pense que les types de modèles ne devraient pas faire la même erreur, sinon il y aura un risque encore plus élevé de collisions d'espaces de noms pour les modèles distribués, des noms tels que for-each / if /etc seront presque certainement banal.

Oui, je pense qu'il est hautement souhaitable d'avoir un registre de type modèle au niveau de la racine fantôme.

Chez TPAC, nous avons décidé que pour la v1, il n'y aurait pas de registre global, donc si vous souhaitez utiliser une syntaxe purement déclarative, vous devrez accepter le processeur par défaut. Affectation à @rniwa pour mettre à jour la proposition dans cette direction (peut-être en extrayant des éléments dans un document v2 distinct).

En expérimentant les polyfills pour cette fonctionnalité, j'ai trouvé plus pratique de spécifier le processeur de modèle lorsque HTMLTemplateElement.prototype.createInstance est invoqué, de la même manière que @domenic a démontré dans sa proposition de pièces de modèle. Par exemple, template.createInstance(myProcessor, optionalValues) .

Cette page vous a été utile?
0 / 5 - 0 notes