vue 插槽scope_Vue 插槽slot / slot-scope的使用

一、slot 插槽的使用

1.功能:

通过slot可以对组件进行扩展。

2.使用场景:

对组件可能的不同显示部分,由外部进行 内容 的指定,起到拓展的作用。

3.基本使用方法:

在组件中使用slot标签

写在需要被替代的部分

2.在组件的使用时,在内部添加需要替换的东西即可XXX

// 定义

A

B

//使用

AA

效果即为在A、B之间插入AA的显示

3.显示默认内容的slot

在定义的时候加上默认显示的内容

// 定义

定义默认内容

//使用

AA

效果上面的是显示定义默认内容,下面的显示AA。slot是全部替换,并不会对原来slot中的内容进行merge。

4.进阶使用:

一个组件中可以添加多个slot, 如果直接使用,这外部传入的会把slot全部都替换。为了进行区分,则需要对slot设置name属性,使用时用slot属性进行区分

// 定义

A

B

C

//使用

mmm

此时的显示只替换中间的slot

二、slot-scope 作用域插槽的使用

1.功能:

组件进行扩展。

2.使用场景:

对组件可能的不同显示部分,由外部进行样式 的指定,起到拓展的作用。但数据仍然来源于子组件内部。

3.基本使用方法:

1.先声明一个slot ,并自定义一个属性(名字任意)绑定这个子组件的数据

我是子组件:{{mydata}}}

这里用 customname绑定子组件数据mydata,customname可以任意命名,后面会用到

2.父组件中通过slot-scope获取slot引用

{{usename.customname}}

这里 usename可以随便命名,表示对子元素slot的引用变量名称,customname即是上一步中定义的。在里面即可使用usename.customname获取子组件中的数据了,然后在父组件中去写样式等,对子组件的slot进行替换。

注意点:

template这里是Vue 2.5.X以下的版本必须的语法格式,以上的可以为任意的标签了如div等

完整代码如下:

content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

AA

{{mydata}}}

BB

{{usename.customname}}

const app = new Vue({

el:"#app",

data:{

msg:'m1',

},

components:{

mycomponent: {

template: '#abc',

data(){

return{

mydata:['a1','a2','a3']

}

}

},

},

})

显示效果如下:

网页显示.png

和普通的slot作用一样,都是替换子组件中的slot的全部内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值