【Vue】具名插槽

发布时间:2023-04-21 18:00

要点:

具名插槽:即具有名字的插槽,在默认插槽基础上指定插槽的名字(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>

组件里面 写上插槽的名字\"\"

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

\"\"

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

\"\"

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

\"\"

例子:

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

\"\"

实现多插槽

如果想当然这样写

\"\"

\"\"

就会出现双份的

\"\"

组件里面 写上插槽的名字\"\"

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

\"\"

如果这边写多个也不会对插槽的内容进行覆盖\"\"

然后发现中间没有空隙

\"\"

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

\"\"

加个样式

\"\"

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

\"\"

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

\"\"

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

\"\"

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

\"\"

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号