在vue中 写了插槽但是$slots对象里面没有这个值

286 阅读1分钟

原文链接:blog.csdn.net/qq_37012965…

在组件中写了这两种任意一种 也就是传输数据的 具名作用域插槽

v-slot:btn="{ userName }"
slot="userName" slot-scope="{userName}"

那么在 $slots这个对象上就找不到他了

在 $slots对象上么vue官网解释的是每个具名插槽和default在这个对象里面

`$scopedSlots` 
在这个对象上你可以找到你写的作用域插槽 每个值是一个函数

可以用这个对象来访问那些具名作用域插槽

$slots 只能获取到 不带作用域(具名或默认)的插槽内容,
如<div>默认插槽文本</div> 或 <tamplate v-slot:btn ></template>

有作用域时,
如 <template v-slot:btn="{ userName }"></template>,
只能用 $scopedSlots 来获取, 并且取到的是可以返回对应插槽内容的函数

$scopedSlots 中包含 $slots 的所有内容, 只是被转换成函数形式