静夜思
我见青山多妩媚,
料青山见我应如是。
目录
1.什么是插槽
2.插槽的使用
3.v-slot 指令
4.具名插槽
5.具名插槽的简写形式
6.作用域插槽
7.解构插槽 Prop
作者简介:一名前端萌新,前来进行VUE的前进之路
个人主页:大熊李子的主页
插槽(slot)是 vue 为组件的封装者提供的能力。允许开发者在封装组件时,把不确定的、希望由用户 指定的部分定义为插槽。
在封装组件时,可以通过 元素定义插槽,从而为用户预留内容占位符。
// 子组件
Left 组件
子组件的第一个 p 标签
子组件最后一个 p 标签
// 父组件
App 根组件
用户自定义内容
vue 官方规定:每一个 slot 插槽,都要有一个 name 名称,如果省略了 slot 的 name 属性,则有一个 默认名称叫做 default。 默认情况下,在使用组件的时候,提供的内容都会被填充到名字为default 的插槽之中如果要把内容填充到指定名称的插槽中,需要使用 v-slot: 这个指令, v-slot: 指令后面要跟插槽的名字。
// 父组件
用户自定义内容
// 子组件
Left 组件
子组件的第一个 p 标签
子组件最后一个 p 标签
v-slot:指令不能直接用在元素身上,必须用在template 标签上 template这个标签,它是一个虚拟的标签,只起到包裹性质的作用,但是,不会被渲染为任何实 质性的html元素
注:没有预留插槽的内容会被丢弃,如果在封装组件时没有预留任何 插槽,则用户提供的任何自定义内容都会被丢弃。
// 子组件
Left 组件
子组件的第一个 p 标签
子组件最后一个 p 标签
// 父组件
App 根组件
用户自定义内容
如果在封装组件时需要预留多个插槽节点,则需要为每个 插槽指定具体的 name 名称。这种带 有具体名称的插槽叫做“具名插槽”。
在向具名插槽提供内容的时候,我们可以在一个 元素上使用 v-slot 指令,并以 v-slot 的参 数的形式提供其名称
// 父组件中
静夜思
我见青山多妩媚,
料青山见我应如是。
作者:大熊
可以使用 v-slot: 的形式,接收作用域插槽对外提供的数据
{{ scope }}
template>
作用域插槽对外提供的数据对象,可以使用解构赋值简化数据的接收过程
{{user.id}}
{{user.name}}
{{user.state}}
template>