14-组件化高级-具名插槽


什么是具名插槽

当子组件需要使用多个插槽时,可以利用slot元素的name属性来定义具名插槽,方便父组件使用时辨识,具体看看怎么使用大家就知道啦。

具名插槽的使用

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>

  <body>
    <div id="app">
   	  <cpn><span>标题</span></cpn><br> 
      <cpn>
        <span slot="left">导航占用左边的位置</span>
        <span slot="center">标题占用中间的位置</<span>
      </cpn>
      <br />
      <cpn><span slot="left">修改左边的占位</span></cpn>
      <br />
      <cpn><button slot="right">修改右边占位</button></cpn>
    </div>

    <template id="cpn">
      <div>
        <slot name="left"><span>左边</span></slot>
        <slot name="center"><span>中间</span></slot>
        <slot name="right"><span>右边</span></slot>
      </div>
    </template>

    <script src="../js/vue.js"></script>
    <script>
      const app = new Vue({
        el: "#app",
        components: {
          cpn: {
            template: "#cpn",
          },
        },
      })
    </script>
  </body>
</html>
  • 此时子组件已经定义了具保插槽,如果父组件使用时没有带上slot属性,则默认无法覆盖子组件的插槽,此时相当于父组件没有使用插槽功能,所以子组件显示默认数据。如图所示:
<cpn><span>标题</span></cpn>

在这里插入图片描述

  • 如果父组件使用时定义了slot属性绑定了子组件中的name属性,则两属性一一对应,即可实现目标替换。如图所示:
<cpn>
  <span slot="left">导航占用左边的位置</span>
  <span slot="center">标题占用中间的位置</<span>
</cpn>

在这里插入图片描述

<cpn><span slot="left">修改左边的占位</span></cpn>

在这里插入图片描述

具名插槽的应用场景

比如我们在做一个导航栏组件时,分为左中右三部分,且想到独立,不受影响,即可使用具名插槽。
在这里插入图片描述


第一次记录自己的学习笔记,如果您发现问题,欢迎指点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝带915

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值