vue中的插槽(slot)

文章类型:Vue

发布者:hp

发布时间:2022-08-15

vue中提出了插槽(Slot)的概念

插槽的意思:决定将所携带的内容,插入到指定的某个位置、插槽既可以是默认插槽,又是作用域插槽,也可以是具名插槽

插槽显不显示、怎样显示是由父组件来控制的,而插槽在哪里显示就由子组件来进行控制

插槽分为:默认插槽、具名插槽、作用域插槽

一:默认插槽(#default)

是指没有名字的单个插槽,子组件未定义名字的插槽,父级将会把 未指定插槽的填充的内容填充到默认插槽中

<slot></slot>
<MySlot> <h1>Outer Text</h1> </MySlot>

二:具名插槽

就是给插槽添加v-slot(#)/name属性,一个子组件可以放多个插槽,而且可以放在不同的地方,而父组件填充内容时根据名字把内容填充到对应插槽中

 <slot name='header'></slot>
<MySlot>
<template v-slot:header>
<h1>Outer Text</h1>
</template>
</MySlot>

三:作用域插槽

是指带数据(参数)的插槽,简单的来说就是子组件提供给父组件的参数,该参数仅限于插槽中使用,父组件可根据子组件传过来的插槽数据来填充插槽内容

  <slot :outerUser='user' name='header'></slot>
<template #header='slot01Data'>
<h1>{{slot01Data.outerUser.name}}</h1>
</template>