【Vue】具名插槽

要点:

具名插槽:即具有名字的插槽,在默认插槽基础上指定插槽的名字(name = " ")。
父组件指明放入子组件的哪个插槽 slot = "footer",如果是template可以写成 v-slot : footer

父组件中:
        
            

            
        
子组件中:
        

组件里面 写上插槽的名字【Vue】具名插槽_第1张图片

组件标签里面要写 slot 属性表示要往那个插槽里放

【Vue】具名插槽_第2张图片

当多标签向一个插槽添加时, 最好使用 template 包裹(代替掉 div 少一层 div)

【Vue】具名插槽_第3张图片

只有在 template 标签里面才有的新写法

【Vue】具名插槽_第4张图片

例子:

具名插槽:即具有名字的插槽

【Vue】具名插槽_第5张图片

实现多插槽

如果想当然这样写

【Vue】具名插槽_第6张图片

就会出现双份的

【Vue】具名插槽_第7张图片

组件里面 写上插槽的名字【Vue】具名插槽_第8张图片

组件标签里面要写 slot 属性表示要往那个插槽里放

【Vue】具名插槽_第9张图片

如果这边写多个也不会对插槽的内容进行覆盖【Vue】具名插槽_第10张图片

然后发现中间没有空隙

【Vue】具名插槽_第11张图片

但是如果这样写, 不会产生空格,因为这边是把匹配到的有相同插槽名的标签放入对应的插槽中, 而这边写的空格自然也不会被放入插槽里了

加个样式

【Vue】具名插槽_第12张图片

但如果要同时给一个插槽里加入标签每次都要写一个 solt 太麻烦

【Vue】具名插槽_第13张图片

但如果这样写虽然只要写一个 slot 了但是会多出来了一个 div

【Vue】具名插槽_第14张图片

所以只要把 div 换成 template 就行了

【Vue】具名插槽_第15张图片

当你写了 template 的时候, 就会有第二种写法, 这种写法只能在 template 标签里这么写, 写到别的标签就报错

【Vue】具名插槽_第16张图片

你可能感兴趣的:(Vue,vue.js,前端,javascript)