文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Vue中如何使用slot

2023-06-04 08:44

关注

这期内容当中小编将会给大家带来有关Vue中如何使用slot,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

关于slot是这样说的,

除非子组件模板包含至少一个 <slot> 插口,否则父组件的内容将会被丢弃。当子组件模板只有一个没有属性的 slot 时,父组件整个内容片段将插入到 slot 所在的 DOM 位置,并替换掉 slot 标签本身。

最初在 <slot> 标签中的任何内容都被视为备用内容。备用内容在子组件的作用域内编译,并且只有在宿主元素为空,且没有要插入的内容时才显示备用内容。

单个 Slot

在子组件内使用特殊的<slot>元素就可以为这个子组件添加一个 slot (插槽),在父组件模板里,插入在子组件标签内的所有内容将替代子组件的<slot>标签及它的内容.示例代码如下:

<!DOCTYPE html><html><head>  <meta charset="utf-8">  <title>示例</title> </head><body>   <div id="app">    <child-component>      <p>分发的内容</p>      <p>更多分发的内容</p>    </child-component>  </div>     <script src="https://unpkg.com/vue/dist/vue.min.js"></script>   <script>     Vue.component('child-component', {      template: '\      <div>\        <slot>\          <p>如果父组件没用插入内容,我将作为默认出现</p>\        </slot>\      </div>'    });     var app = new Vue({      el: '#app'    })   </script> </body></html>

前端全栈学习交流圈:866109386,面向1-3经验年前端开发人员,帮助突破技术瓶颈,提升思维能力,群内有大量PDF可供自取,更有干货实战项目视频进群免费领取。

子组件 child-component 的模板内定义一个 <slot> 元素,并且用一个 <p> 作为默认的内容,在父组件没有使用 slot 时,会渲染这段默认的文本;如果写入了 slot ,那就会替换整个 <slot>.所以上列渲染后的结果为:

<div id="app">   <div>    <p>分发的内容</p>    <p>更多分发的内容</p>  </div></div>

注意:子组件<slot>内的备用内容,它的作用域时子组件本身.

具名 Slot

给 <slot> 元素指定一个 name 后可以分发多个内容,具名 Slot 可以与单个 Slot 共存,例如下面的示例:

<!DOCTYPE html><html><head>  <meta charset="utf-8">  <title>示例</title> </head><body>   <div id="app">    <child-component>      <h3 slot="header"></h3>      <p>正文内容</p>      <p>更多正文内容</p>      <div slot="footer">底部信息</div>    </child-component>  </div>     <script src="https://unpkg.com/vue/dist/vue.min.js"></script>   <script>     Vue.component('child-component', {      template: '\      <div class="component">\        <div class="header">\          <slot name="header"></slot>\        </div>\        <div class="main">\          <slot></slot>\        </div>\        <div class="footer">\          <slot name="footer"></slot>\        </div>\      </div>'    });     var app = new Vue({      el: '#app'    })   </script> </body></html>

前端全栈学习交流圈:866109386,面向1-3经验年前端开发人员,帮助突破技术瓶颈,提升思维能力,群内有大量PDF可供自取,更有干货实战项目视频进群免费领取。

子组件内声明了3个 <slot> 元素,其中在<div class="main">内的<slot> 没用使用 name 特性,它将作为默认 slot 出现,父组件没有使用 slot 特性的元素与内容都将出现在这里.

如果没有指定默认的匿名 slot, 父组件内多余的内容片段都将被抛弃.

上例最终渲染后的结果为:

div id="app">    <div class="container">      <div class="header">        <h3></h3>      </div>      <div class="main">        <p>正文内容</p>        <p>更多的正文内容</p>      </div>      <div class="footer">        <div>底部信息</div>      </div>    </div>  </div>

上述就是小编为大家分享的Vue中如何使用slot了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯