Vue 中插槽的作用和原理

slot又名插槽,是vue的内容分发机制,组建内部的模版引擎使用slot元素作为承载分发内容的出口。插槽slot是子组件的一个模板标签元素,而这一个标签元素是否显示,以及怎么显示是由父组件决定的。slot又分三类,默认插槽,具名插槽和作用域插槽。
默认插槽:又叫匿名插槽,当slot没有指定的name属性值的时候一个默认显示插槽,一个组件内只能有一个匿名插槽。
具名插槽:带有具体名字的插槽,也就是带有name属性的slot,一个组件内可以出现多个具名插槽。
作用域插槽:默认插槽,具名插槽的一个变体,可以是匿名插槽,也可以是具名插槽,该插槽的不同点是子组件渲染作用域插槽时,可以将子组件内部的数据传递给父组件,让父组件根据传递过来的数据决定如何渲染该插槽。
实现原理:
当子组件vm实例化时,获取到父组件传入的slot标签内容,存放在vm.$slot 中,默认插槽为vm.slot.default,具名插槽为vm.slot.xx,,xx为插槽的名字,当组件执行渲染函数时,遇到slot标签,使用$slot中的内容进行提换,此时可以为插槽传递数据,若存在数据,则可称改插槽为作用域插槽。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值