类型:string
用于标记往哪个具名插槽中插入子组件内容。<slot>
元素可以用一个特殊的特性 name 来进一步配置如何分发内容。多个插槽可以有不同的名字。具名插槽将匹配内容片段中有对应 slot 特性的元素。
仍然可以有一个匿名插槽,它是默认插槽,作为找不到匹配的内容片段的备用插槽。如果没有默认插槽,这些找不到匹配的内容片段将被抛弃。
例如,假定我们有一个 app-layout 组件,它的模板为:
<div class="container"> <header> <slot name="header"></slot> </header> <main> <slot></slot> </main> <footer> <slot name="footer"></slot> </footer> </div>
父组件模板:
<app-layout> <h1 slot="header">这里可能是一个页面标题</h1> <p>主要内容的一个段落。</p> <p>另一个主要段落。</p> <p slot="footer">这里有一些联系信息</p> </app-layout>
渲染结果为:
<div class="container"> <header> <h1>这里可能是一个页面标题</h1> </header> <main> <p>主要内容的一个段落。</p> <p>另一个主要段落。</p> </main> <footer> <p>这里有一些联系信息</p> </footer> </div>
在设计组合使用的组件时,内容分发 API 是非常有用的机制。
1.匿名slot使用
//定义组件my-component <div class="myComponent"> <slot></slot> </div> //使用方法 <my-component> <p>我就是slot的替代内容,这里可以放任何标签元素,即使是一长串ul>li列表</p> </my-component>
2.具名slot使用
//定义组件my-component <div class="myComponent"> <slot name="mySlot"></slot> </div> //使用方法 <my-component> <p slot="mySlot">我就是这个叫mySlot的slot替代内容,这里可以放任何标签元素,即使是一长串ul>li列表,但是我是一个有名字的宝宝,所以你必须给我加上slot="mySlot",不然我就报错给你看!</p> </my-component>
通常情况下,子组件的内容只能在子组件中定义。
但是通过 slot,父组件定的内容可以传到子组件中去。
1. 普通用法 //父组件中 <my-cmp></mycmp> //子组件中 balabala //渲染结果 balabala 2.slot 用法(这并不是必要的,视需求而定) //父组件中 <my-cmp> biubiubiu </my-cmp> //子组件中 balabala <slot></slot> //渲染结果 balabala biubiubiu
转载请注明: Vue教程中文网 - 打造国内领先的vue学习网站-vue视频,vue教程,vue学习,vue培训 » vue中的slot方法详解