vue slot html,Vue新指令:v-slot

slot是Vue组件的一个重要机制,因为它使得完全解耦的组件之间可以灵活地被组合。在《Vue组件内容分发》和《Vue的作用域插槽》文章中我们深入的学习了slot怎么在Vue中的使用,但在Vue 3.0版本为slot引入了一套全新的模版语法。为了更好的从2.x过渡到3.0,Vue的v2.6版本引入了新的slot语法,即 v-slot。接下来我们来学习新指令v-slot的使用。

v-slot指令简介

在v2.6中,我们为具名插槽和作用域插槽引入了一个新的统一语法,即 v-slot。它取代了slot和slot-scope这两个目前已被废弃但未被移除且仍在文档中的特性。这是一个较重大的改变,主要包含了:

v-slot指令结合了slot和slot-scope的功能

scoped slots的简写

有关于v-slot指令形成的讨论过程可以阅读RFC-0001和RFC-0002中的描述。

回顾slot的使用

从官网上我们可以获知,Vue中的slot主要分为:单个插槽、具名插槽和作用域插槽三种。而其使用也较为简单,比如我们有一个SlotDemo组件,可以在该组件中通过元素作为承载分发内容的出口:

export default {

name: 'SlotDemo',

}

然后它允许你像下面这样使用SlotDemo组件,在使用该组件时,可以通过承载你想要的任何内容:

Slot Demo

This is slot demo!

渲染出来的内容可以看出,div.box中的内容替代了(也可以理解为该内容插入到了slot)中:

faf23d5e4f3aed3fb148a2378bd252f8.png

使用slot的时候,我们还可以为其设置一个默认的内容,也就是说没有提供内容的时候被渲染。比如下面这个SubmitButton组件中,默认情况下该按钮显示的文本内容是"提交",这个时候可以在标签内设置其内容为“提交”:

提交

export default {

name: 'SubmitButton',

}

当我们引用SubmitButton并不给slot插入任何内容时:

这个时候渲染出来的内容就是slot标签中的默认内容:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值