vue-插槽分发内容

写文章之前呢。我想扯点杂事。今天是2020年9月30日下午两点半左右,距离我下班还有三个小时。明天就是国庆节了,你们会看大阅兵嘛?反正我会每年都看。看我们中国人的将领是多么的气宇轩昂。每次看的时候我的鸡皮疙瘩都一直往外冒。今年我也要准时收看。好了,现在正式学习一下把。
我们在定义多个插槽时。我们可以使用name属性进行区分的。如果没有name属性。则就会放入到默认的插槽中,而如果name没有匹配的,则内容就不显示。
上代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>插槽</title>
    <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app">
    <slot-test>
        <p>使用插槽分发内容</p>
        <h1 slot="header">插槽测试!</h1>
        <p>在组件中,没有指定插槽名称的元素将被置于默认插槽中</p>
        <p slot="none">指定到不存在的插槽中的内容将不会被显示</p>
    </slot-test>
</div>
<script type="text/javascript">
    let SlotTest = {
        template:'<div>'+'<slot name="header">相当于占位元素,因此这些文字也不会被渲染</slot>'
        +'<slot></slot>'//这个就是默认的插槽
        +'</div>'
    }
    let vm = new Vue({
        el:'#app',
        components:{SlotTest}
    })
</script>
</body>
</html>

上图片:
在这里插入图片描述通过上边的代码,我们就可以为Slot Test组件添加header插槽和默认插槽了。并且组件中将DOM分发到不同的插槽中。
Vue还提供了作用域插槽slot-scope(在Vue 2.5.0以下版本为scope,只可用于template元素)。我们可以使用slot-scope获取子组件回传的数据,用来在父组件中执行多态的渲染或相应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值