为什么Vue.js使用单字标签<component>,这违反了他们自己的风格指南?

Dmi*_*lov 10 html javascript vue.js

因此,Vue.js有自己的样式指南,它明确指出(在"必要"部分)组件名称应该是多字的,以防止"与现有和未来的HTML元素冲突,因为所有HTML元素都是单个单词" .

然而,他们将<component>标签用于动态组件.我<component>在现有HTML标签列表中找不到.这是否意味着如果有一天HTML采用<component>标签,Vue.js会尝试解析它们并打破?

请澄清.

who*_*boy 2

我相信 Vue.js 正在尽力遵守 W3C 标准。

\n

与自定义元素的关系

\n
\n

您可能已经注意到,Vue 组件与 Custom\nElements 非常相似,后者是Web Components Spec的一部分。\xe2\x80\x99s 因为\nVue\xe2\x80\x99s 组件语法是根据规范松散建模的。例如,\nVue 组件实现了Slot API和 is 特殊属性。\n但是,有一些关键区别:

\n

Web组件规范已最终确定,但并未在每个浏览器中\n本地实现。Safari 10.1+、Chrome 54+ 和 Firefox 63+\native 支持 Web 组件。相比之下,Vue 组件不需要\xe2\x80\x99t\n需要任何polyfill,并且可以在所有支持的浏览器\n(IE9 及更高版本)中一致工作。需要时,Vue 组件也可以包装在原生自定义元素内。

\n

Vue 组件提供了普通自定义元素所不具备的重要功能,最显着的是跨组件数据流、自定义事件通信和构建工具集成。

\n
\n

其他阅读

\n

HTML 组件

\n
\n

<COMPONENT> 元素用作标识 HTML\n组件的容器。不是必需的;然而,在许多情况下,它可能很有用,\n可以帮助 HTML 组件的使用者确定\n事件实际上是从该特定组件触发的。<COMPONENT> 元素用于将属性、方法和事件绑定在一起,并为该 HTC 的标识符提供位置。

\n
\n

其中还指定了 <template> 和 <slot>

\n

网络组件

\n
\n

HTML 模板:<template> 和 <slot> 元素使您能够编写\n不显示在呈现的页面中的标记模板。然后可以多次重复使用它们作为自定义元素结构的基础。

\n
\n

我不知道<transition>。

\n