Vue--slot

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

元素作为承载分发内容的出口,可以理解为一个占位符,或者说是子组件暴露的一个让父组件传入自定义内容的接口。

插槽内可以包含任何模板代码,包括 HTML,甚至其他的组件。

slot有三种类型

  • 默认插槽 default
  • 具名插槽 name
  • 作用域插槽 v-slot

在子组件中:

  • 插槽用标签来确定渲染的位置,里面放如果父组件没传内容时的后备内容。一个不带 name 出口会带有隐含的名字“default”。
  • 具名插槽用name属性来表示插槽的名字
  • 作用域插槽在作用域上绑定属性来将子组件的信息传给父组件使用
// Child.vue

v-slot

  • 具名插槽通过指令参数v-slot:插槽名的形式传入,可以简化为 #插槽名
  • 作用域插槽通过v-slot:xxx="slotProps"的slotProps来获取子组件传出的属性
  • v-slot属性只能在