彻底搞懂 Vue slot 插槽用法 (V2.6.0前后两个版本及其对比)

插槽就是子组件中的提供给父组件使用的一个占位符,用 表示,父组件可以在这个占位符中填充任何模板代码,如 HTML、组件等,填充的内容会替换子组件的标签。

值得注意的是:在 Vue 2.6.0 中,为具名插槽和作用域插槽引入了一个新的统一的语法 (即 v-slot 指令)。它取代了 slot 和 slot-scope 这两个目前已被废弃但未被移除且仍在文档中的 attribute。

1.默认插槽/匿名插槽

子组件:

// Child.vue

父组件:

//Parent.vue

当组件渲染的时候, 将会被替换为“Your Profile”。插槽内可以包含任何模板代码,包括 HTML甚至其它的组件。

如果  的 template 中没有包含一个  元素,则该组件起始标签和结束标签之间的任何内容都会被抛弃。

2. 具名插槽

具名插槽,顾名思义,也就是给插槽起名字。 匿名插槽只能有一个,而具名插槽可以有n多个,当需要多个插槽时,可以使用的特性:name。这个特性可以用来定义额外的插槽

子组件:

第一种:在