Image

<Person /> 确实是将原本的开始标签 <Person> 和结束标签 </Person> 合并成了一个标签。

在 HTML 标准中,这种写法被称为自闭合标签

为什么可以这样写?

虽然原生 HTML 里我们常见的自闭合标签只有 <img /><input /><br /> 等“天生就没有内容”的标签,但在 Vue(以及 React、Svelte 等前端框架)的单文件组件(SFC)中,所有自定义组件都强烈推荐使用这种自闭合形式。

这样做的好处主要有两点:

  1. 语义更清晰(强调组件)
    当你看到 <Person /> 时,一眼就能认出这是一个组件,而不是原生的 <div><p> 标签。如果写成 <Person></Person>,它看起来太像普通的 HTML 容器了。

  2. 防止意外的“包裹”行为
    在 Vue 中,有些组件可能并不打算包裹其他内容(即没有 <slot>),使用自闭合标签在视觉上更安全,避免你误以为可以在里面放东西。

总结:
它和 <Person></Person> 在功能上是完全等价的,但 <Person /> 是 Vue 生态中更标准、更现代的写法。

转载请注明出处