Vue插槽,是学习vue中必不可少的一节,当初刚接触vue的时候,对这些掌握的一知半解,特别是作用域插槽一直没明白。
后面越来越发现插槽的好用。
1、插槽内可以放置什么内容?
2、默认插槽
3、具名插槽
4、作用域插槽

一、插槽内容

一句话:插槽内可以是任意内容。

<div id="app"><child-component></child-component></div>
<script>Vue.component('child-component',{template:`<div>Hello,World!</div>`})let vm = new Vue({el:'#app',data:{}})
</script>
<child-component>你好</child-component>

输出内容还是在组件中的内容,在 内写的内容没起作用。
这就是插槽出现的作用。

Vue.component('child-component',{template:`<div>Hello,World!<slot></slot></div>`})

到现在,我们知道了什么是插槽:

插槽就是Vue实现的一套内容分发的API,将元素作为承载分发内容的出口。

这句话的意思就是,没有插槽的情况下在组件标签内些一些内容是不起任何作用的,当我在组件中声明了slot元素后,在组件元素内写的内容

就会跑到它这里了!

作用域插槽

之前一直没搞懂作用域插槽到底是什么!!!

说白了就是我在组件上的属性,可以在组件元素内使用!

先看一个最简单的例子!!

我们给元素上定义一个属性say(随便定义的!),接下来在使用组件child,然后在template元素上添加属性slot-scope!!随便起个名字a

我们把a打印一下发现是 {“say” : “你好”},也就是slot上面的属性和值组成的键值对!!!

这就是作用域插槽!

我可以把组件上的属性/值,在组件元素上使用!!

<div id="app"><child><template slot-scope="a"><!-- {"say":"你好"} -->{{a}}</template></child>
</div>
<script>Vue.component('child',{template:`<div><slot say="你好"></slot></div>`})let vm = new Vue({el:'#app',data:{}})
</script>
<div id="app"><child :lists="nameList"><template slot-scope="a">{{a}}</template></child>
</div>
<script>Vue.component('child',{props:['lists'],template:`<div><ul><li v-for="list in lists"><slot :bbbbb="list"></slot></li></ul></div>`})let vm = new Vue({el:'#app',data:{nameList:[{id:1,name:'孙悟空'},{id:2,name:'猪八戒'},{id:3,name:'沙和尚'},{id:4,name:'唐僧'},{id:5,name:'小白龙'},]}})
</script>

这样我就可以在这元素上随便玩了啊!!

当id等于1的时候,我前面加个你好。

我可以随便根据这个对象的属性值进行操作!

<child :lists="nameList"><template slot-scope="a"><div v-if='a.bbbbb.id==1'>你好:<span>{{a.bbbbb.name}}</span></div><div v-else>{{a.bbbbb.name}}</div></template></child>

最后!如果用过elementui的同学,一定知道表格就是这样来的!!

表格的本质就是这样!

vue 组件 Vue.component 用法相关推荐

  1. html页面渲染vue组件,Vue组件页面渲染的基本流程

    html: 组件页面渲染的基本流程 main.js: import Vue from "vue"; import Home from "./home.vue"; ...

  2. Vue组件+Vue动画

    目录 Vue选项 自定义指令 过滤,管道filters   全局组件 局部组件 props传递参数  props细节  组件传参父传子 组件传值总结 组件的插槽(嵌套) 具名插槽 弹框组件的使用htt ...

  3. vue组件+vue插件的创建和使用

    一.vue组件的概念 是一个可以重复使用的Vue实例,它拥有独一无二的组件名称,它可以扩展HTML元素,以组件名称的方式作为自定义的HTML标签.因为组件是可复用的Vue实例,所以它们与new Vue ...

  4. Vue组件间通信:一个例子学会Vue组件-Vue.js学习总结)(转载)

    详情请点击 http://www.jianshu.com/p/9ad1ba89a04b 转载于:https://www.cnblogs.com/zhongjiang/p/6694459.html

  5. vue组件可视化_Vue HTML5音频可视化组件

    vue组件可视化 视听 (vue-audio-visual) VueJS audio visualization components. VueJS音频可视化组件. Vue HTML5 audio v ...

  6. 【前端——vue】:过滤器、侦听器、计算属性、vue-cli、vue组件、动态组件、插槽、自定义属性、路由

     一.过滤器 1.过滤器Filters(只能在vue2中使用) p标签里面看到的是后面函数的返回值,message相当于作为参数传给后面.竖线代表要调用过滤器. 过滤器函数必须定义到filters节点 ...

  7. 【Vue】Vue学习笔记——UI组件库和常用插件

    文章目录 6. UI组件库和常用插件 6.1 Element-ui 6.2 Vue-router 6.2.1 基本用法 6.2.2 跳转 6.2.3 路由嵌套 6.2.4 路由参数传递 6.3 Axi ...

  8. vue组件 .vue_Vue列车时刻表组件

    vue组件 .vue 训练时间表 (vue-train-timetable) Vue Train Timetable Component. Vue列车时刻表组件. View Demo 查看演示 Dow ...

  9. 【Vue 组件化开发 三】父组件给子组件传递数据、组件通信(父传子、子传父)、父访问子(children、ref)、动态组件(is、component)

    目录 一.前言 完整内容请关注: 二.父组件给子组件传递数据 1.使用props属性,父组件向子组件传递数据 1.使用组件的props属性 2.向cmessage对象传值 2. props属性使用 1 ...

最新文章

  1. 用spss做多组两两相关性分析_两独立样本T检验及如何利用SPSS实现其操作
  2. 经典大数据面试题及解析
  3. CPLEX在Linux上的安装与配置
  4. 微信小程序界面跳转(2)——按钮
  5. maven-将maven工程打包成可执行jar包
  6. mysql cbo优化器_查询优化器介绍 - PolarDB-X 云原生分布式数据库 - 阿里云
  7. linux系统存储文件系统,Linux文件系统的深入分析
  8. (6)Vivado软件开发流程(第2天)
  9. linux扩容根目录空间_记一次生产线上Linux系统根目录爆满问题解决办法
  10. 乐在其中设计模式(C#) - 迭代器模式(Iterator Pattern)
  11. Android黑科技之删除系统App
  12. 根据拼音首字母查询人名【转】
  13. SpringBoot RestTemplate 发送请求 忽略证书不安全
  14. vue项目导入excel数据
  15. 如何将App程序发布到苹果App Store
  16. Java中的private关键字
  17. Nginx配置不带www自动跳转到www域名
  18. 【Java+JSP+MySql】12306购票系统(五)购买车票
  19. 第六部分 项目成本管理
  20. linux服务器远程修改mac地址,linux下修改MAC地址问题解决方法

热门文章

  1. matlab定义数组和相关函数
  2. matlab定义数组
  3. 简单阐述一下BP的过程?
  4. 盖世英雄!脚踏七色云彩,来讲解 Java 线程安全
  5. 全国2007年10月管理系统中计算机应用试题答案,全国2021年10月自考管理系统中计算机应用试题及答案.docx...
  6. couchdb java 连接_MongoDB / CouchDB:将表连接到自身
  7. 网络游戏运营数据分析二
  8. 华为机试:拼接URL
  9. ssh被暴力猜解登录密码,利用pandas简单分析ssh登录失败记录
  10. 基于Vue结合Vant组件库的仿电影APP