vue slot
- 语法更新说明
- 从2.6.0开始使用新语法
- 父级模板里的所有内容都是在父级作用域中编译的;子模板里的所有内容都是在子作用域中编译的。
- 默认slot
- 实例
- 父组件
- <zujian>我是插槽</zujian>
子组件内部
- <div><slot></slot></div>
- 结果
- 父组件
- 实例
<div>我是插槽</div>
- 具名slot:(注意:1
v-slot
只能添加在<template>
2 即把参数之前的所有内容 (v-slot:
) 替换为字符#
v-slot:header
可以被重写为#header
:)- 父组件
- <zujian>
- <slot name='header'></slot>
- <slot name='footer'></slot>
- </zujian>
- 子组件内部
- <div>
- <template v-slot:header><div >我是头部</div></template>
- <template v-slot:footer><div >我是底部</div> </template>
- </div>
- <div>
- 结果
- 父组件
<div>
<div >我是头部</div>
<div >我是底部</div>
</div>
2作用域slot 解决:父组件slot里面的内容想要访问子组件提供的数据
- 父组件
- <current-user> <template v-slot:default="slotProps"> {{ slotProps.user.firstName }} </template> </current-user>
- 子组件
- <span> <slot v-bind:user="user"></slot> </span>
- 结果