要点:

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

父组件中:
        <Category>
            <template slot="center">
              <div>html结构1</div>
            </template>
            <template v-slot:footer>
               <div>html结构2</div>
            </template>
        </Category>
子组件中:
        <template>
            <div>
               <!-- 定义插槽 -->
               <slot name="center">插槽默认内容...</slot>
               <slot name="footer">插槽默认内容...</slot>
            </div>
        </template>

组件里面 写上插槽的名字【Vue】具名插槽

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

【Vue】具名插槽

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

【Vue】具名插槽

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

【Vue】具名插槽

例子:

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

【Vue】具名插槽

实现多插槽

如果想当然这样写

【Vue】具名插槽

【Vue】具名插槽

就会出现双份的

【Vue】具名插槽

组件里面 写上插槽的名字【Vue】具名插槽

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

【Vue】具名插槽

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

然后发现中间没有空隙

【Vue】具名插槽

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

【Vue】具名插槽

加个样式

【Vue】具名插槽

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

【Vue】具名插槽

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

【Vue】具名插槽

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

【Vue】具名插槽

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

【Vue】具名插槽

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。