我刚开始学习 HTML 自定义元素,通过阅读一系列介绍、教程和文档,我认为我对它的工作原理有了很好的了解,但我对正确使用或不使用的方法有一个哲学问题该<template>
标签。
自定义元素使您能够封装新功能,简化 HTML 文档的结构,并允许您简单地插入<my-custom-element>...</my-custom-element>
标签而不是<div class="my-custom-element"><span class="part1">...</span><span class="part2">...</span></div>
.
元素的类定义然后设置该元素的结构和功能。一堆教程然后描述了如何使用<template>...</template>
和<slot>...</slot>
设置自定义元素的内容。然后,您必须将模板代码包含在要在其中使用该元素的每个 HTML 文档中,而不是在自定义元素类的构造函数中进行设置。这与自定义元素有助于简化和封装功能以使其更具便携性的方式背道而驰吗?还是我误解了模板在文档中的正确使用和/或放置?
通过 SO,我能找到的最接近解决这个问题的是这个问题:
如何使用vanilla js在自包含的自定义元素中删除模板?
但是答案基本上回避了这一切并说“不要使用<template>
”,因此并没有真正消除我的困惑。