Vue3插槽Slots

官网:https://cn.vuejs.org/guide/components/slots.html

默认内容

在外部没有提供任何内容的情况下,可以为插槽指定默认内容。


<button type="submit">
  	<slot>
  		Submit  
	slot>
button>

当我们在父组件中使用 且没有提供任何插槽内容时:

<SubmitButton />
<SubmitButton>SaveSubmitButton>

<button type="submit">Submitbutton>
<button type="submit">Savebutton>

具名插槽

有时在一个组件中包含多个插槽出口是很有用的。举例来说,在一个 组件中,有如下模板:

<div class="container">
  <header>
    
  header>
  <main>
    
  main>
  <footer>
    
  footer>
div>

对于这种场景, 元素可以有一个特殊的 attribute name,用来给各个插槽分配唯一的 ID,以确定每一处要渲染的内容:

<div class="container">
  <header>
    <slot name="header">slot>
  header>
  <main>
    <slot>slot>
  main>
  <footer>
    <slot name="footer">slot>
  footer>
div>

这类带 name 的插槽被称为具名插槽 (named slots)。没有提供 name 出口会隐式地命名为“default”

要为具名插槽传入内容,我们需要使用一个含 v-slot 指令的