1.概述:

简单来说,假如父组件需要在子组件内放一些DOM,那么这些DOM是显示、不显示、在哪个地方显示、如何显示,就是slot分发负责的活。

2.默认情况下

父组件在子组件内套的内容,是不显示的。

代码:

效果图:

显示内容是一个button按钮,不包含span标签里面的内容;

3.单个slot

简单来说,只使用这个标签的话,可以将父组件放在子组件的内容,放到想让他显示的地方。

代码:

例如这样写的话,结果是:

<button><span>12345</span>为了明确作用范围,所以使用button标签</button>

效果图:

即父组件放在子组件里的内容,插到了子组件的<slot></slot>位置;

注意,即使有多个标签,会一起被插入,相当于用父组件放在子组件里的标签,替换了<slot></slot>这个标签。

  

4.具体命名 slot

将放在子组件里的不同html标签放在不同的位置

父组件在要分发的标签里添加 slot=”name名” 属性

子组件在对应分发的位置的slot标签里,添加 name=”name名” 属性,

然后就会将对应的标签放在对应的位置了。

代码:

显示结果为:

<button><span slot="first">12345</span>为了明确作用范围,<span slot="second">56789</span>所以使用button标签
</button>

效果图:

5.分发内容的作用域:

被分发的内容的作用域,根据其所在模板决定,例如,以上标签,其在父组件的模板中(虽然其被子组件的children标签所包括,但由于他不在子组件的template属性中,因此不属于子组件),则受父组件所控制。

代码:

6.当没有分发内容时的提示:

假如父组件没有在子组件中放置有标签,或者是父组件在子组件中放置标签,但有slot属性,而子组件中没有该slot属性的标签。

那么,子组件的slot标签,将不会起到任何作用。

除非,该slot标签内有内容,那么在无分发内容的时候,会显示该slot标签内的内容。

代码:

效果图:

7.假如想控制子组件根标签的属性

(1)首先,由于模板标签是属于父组件的,因此,将子组件的指令绑定在模板标签里,是不可以的(因为他归属于父组件);

(2)假如需要通过父组件控制子组件是否显示(例如v-if或者v-show),那么这个指令显然是属于父组件的(例如放在父组件的data下面)。可以将标签写在子组件的模板上。

代码:

说明:

通过父组件(点击按钮,切换v-if指令的值)控制子组件是否显示。

效果图:

  

(3)假如需要通过子组件,控制子组件是否显示(比如让他隐藏),那么这个指令显然是属于子组件的(会将值放在子组件的data属性下),那么就不能像上面这么写,而是必须放置在子组件的根标签中。

说明:

点击子组件会让子组件消失;

点击父组件的按钮,通过更改子组件的tohidden属性,让子组件重新显示。

子组件的指令绑定在子组件的模板之中(如此才能调用);

效果图:

     

转载于:https://www.cnblogs.com/crazycode2/p/7615050.html

vue2.X slot 分发内容相关推荐

  1. vue使用slot分发内容与react使用prop分发内容

    vue 将 <slot> 元素作为承载分发内容的出口 // layout.vue <div class="container"><main>&l ...

  2. vue组件-使用插槽分发内容(slot)

    slot--使用插槽分发内容(位置.槽口:作用: 占个位置) 官网API: https://cn.vuejs.org/v2/guide/components.html#使用插槽分发内容 使用组件时,有 ...

  3. VUE内置组件 vue使用插槽分发内容 组件缓存 实现动画的过渡效果

    动态组件 除了允许用户自定义组件之外,Vue还内置了一些组件,以帮助用户高效地开发一些功能.本章将带领大家一起来了解这些内置组件. 某些时候需要动态切换页面部分区域的视图,这个时候内置组件compon ...

  4. Vue2基础- slot 插槽使用(包括动态插槽示例)

    文章目录 插槽是什么 编译作用域 作用域插槽 具名插槽 后备内容(插槽的默认值) 动态插槽名 在线示例 插槽是什么 插槽就是Vue实现的一套内容分发的API,这套 API的设计灵感源自 Web Com ...

  5. Whale帷幄 - 内容智能分发 内容一键分发

    某新锐服装品牌的系列产品在电商平台直播有着不错的交易额,近期准备在某短视频平台开启直播带货以提升销售量,并在网页搜索.公众号.社交平台.其他(短)视频平台等多渠道投放了直播引流宣传视频,不仅购买高价露 ...

  6. 二、Vue2.0项目结构内容及配置解析

    1.node_modules文件夹:用于执行程序的各种依赖 2.Public文件夹,静态资源,里面的东西,打包会原封不动的打包进去 3.src assets文件夹:公用的静态资源,webpack会打包 ...

  7. vue2.1-本地应用-内容绑定,事件绑定

    一.内容绑定,事件绑定 1.v.text-设置标签的文本值 <!--本地应用--> <!DOCTYPE html> <html lang="en"&g ...

  8. Vuejs:组件 slot 内容分发

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 本文是在官方文档的基础上,更加细致的说明,代码更多更全. 简单来说,更适合新手阅读 (二十八)Slo ...

  9. vue组件之具名slot 的分类案例

    需求说明: 利用组件的复用完成美食.游戏.电影的分类布局. 使用具名slot完成分类组件的不同内容显示. 实现过程: 1.创建一个分类子组件(Category.vue),在子组件中定义具名插槽: &l ...

最新文章

  1. Hadoop简要介绍
  2. pythonfor循环100次_在for循环中只打印一次
  3. jsp java语法_JSP基础语法
  4. SAP CRM partner function在客户项目中的实际用途
  5. C#中字符串的内存分配与驻留池
  6. .pro.user文件
  7. java学习(70):GUL图形用户界面初识
  8. Linux钩子拦截删除文件,在Linux中保存钩子文件
  9. 使用WxPython进行Win32下Python编程
  10. VBA学习过程中遇到的问题(主要针对Excel)
  11. CV学习-1 k-means代码解读
  12. Java Socket 编程
  13. linux c程序 bash,linux-如何使bash程序接受来自另一个C程序的命令
  14. python官网中文官网-Python官方中文文档强势来袭
  15. jmeter 中的Parameters 和Body Data的区别
  16. 【电脑使用】如何快速给PDF添加书签
  17. con和com开头单词规律_英语单词速记小技巧
  18. c语言flag什么意思,立flag是什么意思flag是什么?立flag用语出处和使用方法
  19. 张桂梅PK清华副教授:不要站在高楼上,傲慢地指着大山
  20. 节后安全生产会议记要

热门文章

  1. linux禁用及启用pcie设备,KVM 介绍(4):I/O设备直接分配和 SRIOV [KVM PCI/PCIe PassThrough SRIOV]...
  2. 知道的C君带你学语言的作业答案,知到《C君带你玩编程》2020章节测试(含答案)...
  3. 不插电的计算机科学百度云,【精品】不插电的计算机科学.pdf
  4. 精美UI版iApp对接hybbs论坛功能APP源码
  5. 企业3级推广报单分销源码下载会员注册管理系统
  6. 我厨蔬菜生鲜商城小程序源码
  7. php人才招聘网可二开
  8. ASP.net与PHP两大网站开发架构优势对比
  9. CSS学习之外边距合并
  10. click() bind() live() delegate()区别