欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > vue >内容正文

vue

vue之slot用法

发布时间:2025/3/20 vue 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 vue之slot用法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
slot元素作为组件模板之中的内容分发插槽。这个元素自身将被替换。 有 name 特性的 slot 称为具名 slot。 有 slot 特性的内容将分发到名字相匹配的具名 slot。

一、单个组件

如果子组件的模板不包含 slot,那么父组件的内容就会被抛弃 父组件内容 <template><div><child>若子组件没有slot,则这句话不会显示</child></div> </template><script> import Child from './Child.vue' export default {name: 'HelloWorld',components:{'child':Child} } </script>

子组件内容

<template><div><h1>我是子组件</h1></div> </template> 

浏览器显示

因为子组件没有<slot> 元素,所以父组件的内容被抛弃,现在我们在子组件加上<slot> 元素

<template><div><h1>我是子组件</h1><slot></slot></div> </template>

此时浏览器显示

此时,父组件的内容就显示在了子组件的内容里了。

二、具名slot

上面案例中讲解的是当组件的模板中有一个slot的方法,那么一个组件中如果想使用多个slot那么此时就应该使用具名slot。

父组件内容

<template><child><h1 slot="h1">标题一</h1><h2 slot="h2">标题二</h2><h3>标题三</h3> </child> </template><script> import Child from './Child.vue' export default {components:{'child':Child} } </script>

子组件内容

<template><div><h1>我是子组件</h1><slot name="h1"></slot><slot name="hh"></slot><slot></slot></div> </template>

浏览器显示

分析:子组件中的slot有name属性,与父组件的slot的值相对应,那么就会匹配到,若子组件中slot有name属性,但父组件没有与之相对的slot的值,则会被抛弃掉。父组件没有slot值的内容则会显示在默认的slot中。如果子组件中没有默认的slot,父组件没有slot值的内容就会被抛弃。 

 

 

  

  

  

转载于:https://www.cnblogs.com/clicklin/p/9389892.html

总结

以上是生活随笔为你收集整理的vue之slot用法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。