<Person /> 确实是将原本的开始标签 <Person> 和结束标签 </Person> 合并成了一个标签。
在 HTML 标准中,这种写法被称为自闭合标签。
为什么可以这样写?
虽然原生 HTML 里我们常见的自闭合标签只有 <img />、<input />、<br /> 等“天生就没有内容”的标签,但在 Vue(以及 React、Svelte 等前端框架)的单文件组件(SFC)中,所有自定义组件都强烈推荐使用这种自闭合形式。
这样做的好处主要有两点:
-
语义更清晰(强调组件)
当你看到<Person />时,一眼就能认出这是一个组件,而不是原生的<div>或<p>标签。如果写成<Person></Person>,它看起来太像普通的 HTML 容器了。 -
防止意外的“包裹”行为
在 Vue 中,有些组件可能并不打算包裹其他内容(即没有<slot>),使用自闭合标签在视觉上更安全,避免你误以为可以在里面放东西。
总结:
它和 <Person></Person> 在功能上是完全等价的,但 <Person /> 是 Vue 生态中更标准、更现代的写法。
转载请注明出处