vue插槽

Vue中有插槽的概念,可以是一个标签<slot></slot>,也可以是普通标签上的一个属性slot;

  • name - string:用于命名插槽。
  • slot - string:用于标记往哪个具名插槽中插入子组件内容;
  • slot-scope:用于将元素或组件表示为作用域插槽。
  • scope:用于表示一个作为带作用域的插槽的 <template> 元素

类似于我们代码中的重载,通过子类代码覆盖父类代码实现相关功能;

也可以理解为占位符,组件模板中占好了位置,当使用该组件标签时候,组件标签里面的内容就会自动填充;

我们在封装一些组件时非常有用,通过插槽保留一个口子,共别人进行扩展;

下面我们进行代码演示

首先我们声明一个Button.vue组件

<template>
  <button>
    <slot name="text"></slot>
  </button>
</template>

然后我们使用可以通过两种方式

1、使用slot标注标签(2.6.11已废弃)

 <Button>
    <div slot="text">按钮</div>
 </Button>

2、使用v-slot标注

 <Button>
   <template v-slot:text>按钮</template>
</Button>

最后效果

 

posted @ 2021-04-19 11:25  程序員劝退师  阅读(62)  评论(0编辑  收藏  举报