前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >v-slot匿名插槽、具名插槽及作用域插槽

v-slot匿名插槽、具名插槽及作用域插槽

作者头像
青梅煮码
发布2023-01-14 16:02:03
3800
发布2023-01-14 16:02:03
举报
文章被收录于专栏:青梅煮码

匿名插槽

只要是没有具体分配的内容,都会给到匿名插槽或者 同时在子组件中需替换为用于占位,即在modal组件中自定义的内容都会显示在slot占位的位置

代码语言:javascript
复制
// 定义组件
    Vue.component('modal', {
      template: `
      <div class="modal">
        <div class="header">
          <slot></slot>    
        </div>
      </div>
   注意<slot></slot> 等于 <slot name="default"></slot>

具名插槽

指带有名字的插槽,如果组件内需要多个插槽,因此配置了名字的插槽,才可以实现定向分发指定插入. 元素有一个特殊的attribute:name。这个attribute可以用来定义额外的插槽: (1)给插槽起名字

代码语言:javascript
复制
    // 定义组件
    Vue.component('modal', {
      template: `
      <div class="modal">
        <div class="header">
          <slot name="header"></slot>
        </div>
        <div class="main">
            <slot name="main"></slot>
        </div>
        <div class="footer">
            <slot name="default"></slot>
        </div>
      </div>
      `,
    })

(2)在分发内容时,通过template标签,将内容包裹,且里面可以添加任意标签内容,并指定分发的插槽名v-slot:插槽名。

作用域插槽

一个组件中有一个插槽,我们在插槽里写一个div,那么这个div就会被渲染到这个组件里,但是这个div又想调用这个组件里的数据或方法,那怎么办呢,我们可以加一个变量,把它带进插槽中。 简单来说:作用域插槽是一个带绑定数据的插槽。 通俗讲就是父组件需要用到子组件插槽里面数据的时候,通过v-slot:插槽名=’自定义对象名’来接收子组件插槽的数据

代码语言:javascript
复制
<template v-slot:default="scope">
     <button>{{scope.yes}}</button>
      <button>{{scope.no}}</button>
 </template>

总结

1.具名插槽的内容必须使用模板包裹 2. 等价于 3.vue >=2.6.0版本,使用v-slot替代slot 和 slot-scope 4.v-slot:slotName,slotName不需要加引号”” 5.v-slot:header可以简写成#header , v-slot:default可以简写成#default

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-08-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 匿名插槽
  • 具名插槽
  • 作用域插槽
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档