插槽


插槽的基本使用

插槽可以大大提高组件的可复用性

定义插槽的一大关键字是slot

在组件模板定义中,可以定义,这样一来,slot标签便可以被替换

也可定义默认的数据,这样在没有替换时便会显示默认的数据

slot还有一个关键属性:name,用来唯一区分每个slot。如果不设置name属性,那么就会有一个默认的name:default

在调用组件时,如果没有使用v-slot(语法糖:#)绑定slot,那么默认替换的便是没有定义name属性的slot

注意:在一般情况下,使用v-slot绑定时,需要在template中定义;只有在只有一个默认插槽的情况下才可以直接在组件标签上定义


    

作用域插槽

很多时候需要从父组件中使用子组件的数据,这个时候就需要作用域插槽

简单来说,作用域插槽就是获取子组件的数据

这个过程和组件props很相似,只是语法不同

下面这张图很清晰的解释了数据的调用过程

Scoped slot diagram

在上图中,v-slot还可以写成slot-scope,效果是相同的

在调用时,结合基本使用中的name属性可以发现,default是因为没有给slot设置name属性,所以才使用default。那么如果设置了name属性是不是就可以更改default呢,实际操作发现这样是可以的