Vue中的插槽使用

  1. Vue插槽详解(明天再更新其他插槽)
    1. 具名插槽
    2. 插槽的默认内容

Vue插槽详解(明天再更新其他插槽)

Vue插槽,是学习vue中必不可少的一节。插槽(Slot)是Vue提出来的一个概念,正如名字一样,插槽就是个坑,可以往里面填东西。
这次在做Vue仿B站移动端的项目中有略微使用到插槽,感觉还挺容易理解的。
没想到今晚去谷歌了一下,才发现这真就是个坑,不只具名插槽的用法,还有默认插槽和作用域插槽的用法
用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性。插槽显不显示、怎样显示是由父组件来控制的,而插槽在哪里显示就由子组件来进行控制。

具名插槽

  需要多个插槽的情况,slot 元素有一个特殊的属性:name,用来定义额外的插槽。一个不带 name的slot 出口会带有隐含的名字“default”。
例如:
子组件
<template>
<div class="slottwo">
<div>slottwo</div>
<slot name="header"></slot>
<slot></slot>
<slot name="footer"></slot>
</div>
</template>
在子组件中定义了三个slot标签,其中有两个分别添加了name属性header和footer

父组件
<template>
<div>
我是父组件
<slot-two>
<p>啦啦啦,啦啦啦,我是卖报的小行家</p>
<template slot="header">
<p>我是name为header的slot</p>
</template>
<p slot="footer">我是name为footer的slot</p>
</slot-two>
</div>
</template>
在父组件中使用template并写入对应的slot值来指定该内容在子组件中现实的位置(当然也不用必须写到template),没有对应值的其他内容会被放到子组件中没有添加name属性的slot中

插槽的默认内容

父组件
<template>
<div>
我是父组件
<slot-two></slot-two>
</div>
</template>

子组件
<template>
<div class="slottwo">
<slot>我不是卖报的小行家</slot>
</div>
</template>
可以在子组件的slot标签中写入内容,当父组件没有写入内容时会显示子组件的默认内容,当父组件写入内容时,会替换子组件的默认内容


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 541143263@qq.com

文章标题:Vue中的插槽使用

文章字数:627

本文作者:MK

发布时间:2020-06-10, 22:26:09

最后更新:2020-06-10, 22:50:52

原始链接:http://yoursite.com/2020/06/10/Vue中的插槽使用/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏