Vue基础_插槽

Vue基础_插槽

​ 类似于一个占位符,当有匹配的内容时,会将对应内容显示

1.默认插槽
<slot><slot>
	子组件中:
		Vue.component('Child',{
			template:`
				<button>
					<slot></slot>
				</button>
			`
		})
	父组件中:
		Vue.component('Parent',{
            template:`
				<Child>内容<Child>
`
        })
	父组件中使用Child的内容,则是会通过插槽到子组件中
2.具名插槽:
   子组件:<slot name='名字'></slot> 中间可以放默认内容,如果有对应的则会将默认内容覆盖
   父组件:	1.<template slot='名字'></template> // 将template下面的所有插入的子组件slot中
   		  2.直接在<div slot=''></div> // 将当前div中的元素插入到slot中
   无名插槽:<template></template> --> 对应<slot></slot>
       <slot name='名字'><slot>  === <template slot='名字'></template>,将对应的template插入slot所在的位置
   子组件:Vue.component('Child', {
       template: `<slot name='名字'></slot>`
   })
   父组件:Vue.component('Father', {
       template:`<template slot='名字'>内容</template>`
   })
   上述就是将template中的内容插入字组件对应名字的位置
   注意:
   	只要名字对上则会默认插入相同名字的插槽,不论顺序
   	多个template未指名,则会一起放到未指名的插槽的位置
   	如果没有默认插槽,但有未指名的template,那么其中的东西会被丢弃
3.作用域插槽:
	用于父组件要使用子组件的数据
	作用域插槽强调的则是数据作用的范围
    带参数(数据)的插槽,即在子组件的插槽中带入参数(数据)提供给父组件使用
    父组件中通过slot-scope= '设置的名字'用于接收数据
    使用:
	子组件:
		Vue.component('Child',{
            data() {retruen 数据}
            // 将父子组件数据绑定到父组件的接收的名字上,这样,父组件就可以通过此名字使用了
            template: `<slot :slot-scope设置的名字=子组件中的数据><slot>`
        })
	父组件:
		Vue.component('Father',{
            <template slot-scope='设置的名字'></template>// 获取到子组件的值
        })

	作用域插槽数据传递:
		子组件					父组件
        		 绑定(重要)
    data---->slot----->slot-scope--->通过接收的名字使用
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值