Vue2.6 将 slot-scope 废弃了。
推荐使用 v-slot; 其使用方法大致如下:
注意多个插槽的情况下,最好都基于 <template>
default插槽用法还是一样的,v-slot主要针对的是具名插槽和作用域插槽;当然你也可以像这样将 default写出来
<template v-slot:default="slotProps"> {{ slotProps.user.firstName }} </template>
1.具名插槽: v-slot:slotName
<template v-slot:myslot> 显示内容 </template>
2.作用域插槽: v-slot:slotName="CustomName"
<template v-slot:mySlot="slotProps"> {{ slotProps.user.firstName }} </template>
//子组件 <template> <div> <p><slot name="mySlot" :user='user'></slot></p> </div> </template>
这个slotProps不是固定的,你叫什么都行,因为它包含着子组件中暴露出来的属性
这样的赋值是可以通过ES6的解构得到属性的:即 3. 解构插槽: v-slot="{xxx,xxx,....}"
<template v-slot:mySlot="{user}"> {{ user }} </template>
将视频中的slot-scope改写成 v-slot
<!-- ScrollNav插槽参数labels、current、txts;以作用域插槽使用 --> <template v-slot:bar="props"> <cube-scroll-nav-bar direction="vertical" :labels="props.labels" :txts="barTxts" :current="props.current" > <!-- scrollNavBar插槽参数 txt、index、active、label;这里只用到txt--> <template v-slot="{txt}"> <div class="text"> <support-ico v-if="txt.type>=1" :size=3 :type="txt.type" ></support-ico> <span>{{txt.name}}</span> <span class="num" v-if="txt.count"> <bubble :num="txt.count"></bubble> </span> </div> </template>