属性传值

先写一段简单的代码

<div id="root"><child content="<p>Dell</p>"></child>
</div>
Vue.component('child', {props: {content:String},template: `<div><p>hello</p><div v-html="this.content"></div></div>`,
})
let vm = new Vue({el: '#root'
})

这种写法有两个问题:

  1. p标签外面会有一层div,这个div是无法去掉的,有人会想,能不能用template代替,其实是不可以的,在这里模版站位符是不能用的。
  2. 如果content传递的内容很多,代码就会变得很难阅读。

当我的子组件有一部分内容,是根据父组件传递过来的dom进行显示的话,这时候可以换一种语法。

插槽slot

<div id="root"><child><p>Dell</p>     //这种语法看起来非常像,用子组件,我向里插入内容</child>
</div>
Vue.component('child', {props: {content:String},template: `<div><p>hello</p><slot></slot>       //slot 标签显示的内容就是父组件向子组件插入进来的内容</div>`,
})
let vm = new Vue({el: '#root'
})

<p>Dell</p>这种语法看起来非常像,用子组我向里插入内容,所以我们把它叫做插槽。

slot标签显示的内容就是父组件向子组件插入进来的内容。

通过插槽可以更方便的向子组件传递dom元素,同时子组件只需通过slot来使用就可以了。

slot其他功能

如果子组件里没有dom元素,可以让它显示默认内容,如下:

<slot>默认内容</slot>

具名插槽

如果现在有个需求是,headerfooter是由外部引入的该怎么弄呢?如下

<div id="root"><body-content><div class="header" slot="header">header</div><div class="footer" slot="footer">footer</div></body-content>
</div>
Vue.component('body-content', {props: {content:String},template: `<div><slot name="header"></slot><div class="content">content</p><slot name="footer"></slot></div>`,
})
let vm = new Vue({el: '#root'
})

slot标签name属性对应的是组件中slot属性,通过这种写法,可以在调用子组件时,一次性传递多个区域的dom结构,在子组件里通过具名插槽来分别使用不同部分的dom结构

在 Vue 中是使用插槽相关推荐

  1. vue中slot(插槽)详解,slot、slot-scope和v-slot

    slot是什么 slot,也称插槽,可以类比为插卡式的FC游戏机,游戏机(子组件)暴露卡槽(插槽)让用户插入不同的游戏磁条(自定义内容),游戏机会读取并加载磁条里的游戏 Vue的slot,是组件的一块 ...

  2. Vue 中的作用域插槽

    作用域插槽 <div id="root"><child></child> </div> Vue.component('child', ...

  3. vue中的slot插槽

    1.无名插槽<body><div id="app">123</div><script src="https://cdn.jsde ...

  4. Vue中的solt插槽

    一.概念: 插槽就是父组件往子组件中插入一些内容. 二.插槽的种类: 有三种方式,默认插槽,具名插槽,作用域插槽 默认插槽就是把父组件中的数据,显示在子组件中,子组件通过一个slot插槽标签显示父组件 ...

  5. vue 中的solt插槽

    插槽的种类: 插槽分为3种,一种是默认插槽.一种是具名插槽.一种是作用域插槽. 插槽的定义: 在子组件中用 <solt></solt> 划出一块区域用来显示父组件中的页面结构, ...

  6. 「后端小伙伴来学前端了」关于 Vue中 Slot 插槽的使用,实用且也是组件中必会的一个知识,另外也可以实现父子组件之间通信

    前言 插槽可以说是 Vue 中非常重要的一部分吧,在我学习和练习的过程中,当组件搭配着插槽一起使用的时候,会发挥的更好一些.更多时候也会更加方便. 今天介绍Vue中三种插槽吧:默认插槽.具名插槽.作用 ...

  7. Vue中的v-slot详解,作用域插槽和具名插槽

    1.具名插槽 有时候我们希望在指定的位置输出我们的子元素,这时候具名插槽就排上了用场. //组件调用时 <MyFooter v-red :age.sync="age"> ...

  8. Vue 中 slot插槽 的使用

    Vue 中 slot插槽 的使用 插槽就是子组件提供给父组件使用的一个占位符,用<slot></slot>表示, 父组件可以在这个占位符填充任何模板代码,如HTML.组件等,填 ...

  9. Vue中slot的使用(具名插槽与作用域插槽)

    文章目录 前言 一.什么是插槽 二.前期准备 三.具名插槽的使用 1.子组件配置slot 2.使用者App.vue配置数据 3.结果展示 4.具名插槽总结 四.作用域插槽的使用 1.子组件配置slot ...

  10. vue中插槽solt的使用

    solt就是插槽 默认会把组件中间的内容渲染出来 案例: 在app.vue中 直接在组件模版里写内容 是不会在页面中显示的 这个时候 就在card子组件里 写上solt标签 solt标签就代表根组件里 ...

最新文章

  1. python文件关键行数_Python计算大文件行数方法及性能比较
  2. RTX组织架构刷新出现了问题
  3. Metasploit(一)--Meterpreter的命令速查表
  4. echarts词云图形状_用Wordcloud生成指定形状的词云图
  5. wxWidgets:wxHtmlCellEvent类用法
  6. 度量空间的应用_使用Dropwizard度量标准监视和测量无功应用
  7. 你会感觉容器使用起来很痛苦吗?
  8. 如何将字符串数组的空格去除_java中如何将数组转换为List
  9. GetCommandLineW()作用
  10. ubuntu 12.04 php升级,Ubuntu下如何升级到PHP7.4的方法步骤
  11. 我的2017:从工作再到学生
  12. python监控进程状态,python psutil监控进程实例
  13. 动机才是需求,问题只是现象
  14. 计算机制作ppt教程,ppt怎么做?手机电脑超全PPT制作教程_教你做出完整的PPT
  15. UWB定位系统场景的分析
  16. 支付宝app支付,订单参数错误/PHP生成支付宝预支付订单/php 支付宝app支付
  17. 数据结构——哈夫曼树及其应用
  18. Twilio Inc.(TWLO)2020年第三季度收益电话会议记录
  19. qt做标定软件_有什么很好的软件是用 Qt 编写的?
  20. C语言和JAVA的关联

热门文章

  1. MDK 中 [WEAK] 的作用
  2. 2018. 2.4 Java中集合嵌套集合的练习
  3. linux 查看分区
  4. 【字符知识】SGML 类语言(Eg.HTML)字符转义
  5. js判断是对象还是集合
  6. Beanutils基本用法
  7. Ubuntu System Panel:Ubuntu 系统的新概念菜单
  8. 物流管理系统【前台+后台】(Spring+SpringMVC+MyBatis+vue+shiro)(二)
  9. win7 64位Apache http server+PHP配置
  10. Leetcode705.Design HashSet设置哈希集合