Vue插槽


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

插槽内容

Vue实现了一套内容分发的 API, 将元素作为承载分发内容的出口。
它允许你像这样合成组件:


  Your Profile

然后你在的模板中可能会写为:


  

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


  
  
  Your Profile

或者是组件


  
  
  Your Profile

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

后备内容

简单点说,在中设置默认值


当我在一个父级组件中使用并且不提供任何插槽内容时,后备内容“Submit”将会被渲染

但当我们提供内容时,默认的值会被替代掉


  Save

具名插槽

将用处不同的插槽,设置不同的名字,我们就可以将我们指定的内容,填写到我们需要的插槽中
例如对于一个带有如下模板的组件:

对于这样的情况, 元素有一个特殊的 attribute:name。这个 attribute 可以用来定义额外的插槽:

一个不带 name 的 出口会带有隐含的名字“default”。
在向具名插槽提供内容的时候,我们可以在一个