vue中插槽(slot)的使用
刚学vue的时候,曾经学习过slot插槽的使用,但是后面接触的不多,因为之前我还没使用element-ui。。。
但是使用了element-ui之后,里面的许多组件,有时候会使用插槽,为了巩固一下插槽,写一个笔记
首先,插槽有什么作用呢?
我们先来自定义一个组件:
<template>
<div>
{{text}}
</div>
</template> <script>
export default {
data(){
return {
text:"自定义组件"
}
}
}
</script>
然后在其它组件内引入(script中)
import Lala from '@/components/lala.vue';
再声明一下
components:{
Lala
},
之后,在template中使用即可
<Lala></Lala>
这样,会在这个页面中显示“自定义组件”这些文字,代表组件成功引入。
但是当我们想在<Lala></Lala>标签中间添加其它内容时,它并不会显示在页面中
例如:
<Lala>我是在组件标签中写的内容</Lala>
我们发现,页面汇总并没有显示出我标签汇总写入的内容。而slot插槽可以让其显示,我们只需要在lala的组件模板中添加这样的代码
<template>
<div>
{{text}}
<slot></slot>
</div>
</template>
此时,标签内的内容就显示出来了,这就是slot插槽的作用,给组件添加自定义内容
以上这种插槽叫匿名插槽,也就是,你在自定义标签中写入的内容都用这个slot标签显示出来
那么相对的,还有具名插槽,顾名思义,就是有名字的插槽
首先在自定义组件模板中添加
<template>
<div>
{{text}}
<div>以下是匿名插槽</div>
<slot></slot>
<div>以下是具名插槽slot1</div>
<slot name="slot1"></slot>
<div>以下是具名插槽slot2</div>
<slot name="slot2"></slot>
</div>
</template>
以上是,在模板汇总加上了具名插槽,就是在slot标签上加个name属性,那么叫什么名,这个插槽就交什么名
在使用的页面内,这样写
<Lala>
<template>
我是在组件标签中写的内容
</template>
<template slot="slot1">slot1内容</template>
<template slot="slot2">slot2内容</template>
</Lala>
这样,就会显示出对应插槽模板中的内容,如果不传对应名字的插槽内容,就不显示,当然,如果像上面的代码一样,自定义组件即使用了匿名插槽,又使用了具名插槽,那么,除了具名插槽以外的模板,统统用匿名插槽显示,说到这,感觉这slot插槽就像个视口。当然一个模板中要不使用匿名插槽,要不具名插槽,最好不要匿名和具名都使用。
接下来介绍一下作用域插槽 !!!!
先看看怎么来定义作用域插槽
<template>
<div>
{{text}}
<div>以下是作用域插槽</div>
<slot say="你好"></slot>
</div>
</template>
就是在slot标签上自定义一个属性,我取名叫say,让后赋个值。(也可以:绑定该组件内data中的属性!!!)
下面看看在引用它的页面内如何使用
<Lala>
<template slot-scope="a">
{{a}}
</template>
</Lala>
在template模板上加一个slot-scope属性 随便赋个值,这里叫a
在模板汇中就可以渲染这个值了
渲染出来是这样的
{ "say": "你好" }
好强大啊,这又是一种子组件向父组件传值的方式!!!!
它还可以和具名插槽配合使用!!!!!!!!!!!!!!!!!!!!!!!!!!!
自定义组件模板:
<template>
<div>
{{text}}
<div>以下是作用域插槽slot1</div>
<slot name="slot1" say="你好"></slot>
</div>
</template>
在引用的页面中
<Lala>
<template slot="slot1" slot-scope="a">
{{a}}
</template>
</Lala>
真得劲!!!!!!!
还有呢!!!!!!!!!!结合props会更强大!!!!看代码:
我在引用它的页面内用props给它传个值,这个值是父组件内的值!!!
<Lala :propObj="tableData">
<template slot="slot1" slot-scope="a">
{{a}}
</template>
</Lala>
在自定义组件内用props接收住,再传到父组件!!!
<template>
<div>
{{text}}
<div>以下是作用域插槽slot1</div>
<slot name="slot1" :say="propObj"></slot>
</div>
</template> <script>
export default {
props:['propObj'],//外部传值
}
</script>
这样将父组件中tableData的值渲染出来了哟!!,动态改变它的值也会变化哟!!
关键是,在子组件内动态改变它的值,父组件内也会动态改变!!!!!(这是父子组件通信的一个新模式啊!!!!)
vue中插槽(slot)的使用的更多相关文章
- Vue中插槽slot的使用
插槽,也就是slot,是组件的一块HTML模板,这块模板显示不显示.以及怎样显示由父组件来决定. 实际上,一个slot最核心的两个问题在这里就点出来了,是显示不显示和怎样显示. 由于插槽是一块模板,所 ...
- vue中的slot与slot-scope
深入理解vue中的slot与slot-scope vue+element-ui+slot-scope或原生实现可编辑表格 vue插槽详解
- Vue中插槽指令
08.29自我总结 Vue中插槽指令 意义 就是在组件里留着差值方便后续组件内容新增 而且由于插件是写在父级中数据可以直接父级中传输而不需要传子再传父有些情况会减少写代码量 示例 <div id ...
- vue中的slot理解和使用
最近被vue 搞得一塌糊涂,理解的比较慢,工作进度进度要求太快,需求理解不明,造成了很大的压力. 在理解Vue中的Slot的时候看了网上的相关内容,看了半天没看到明白说的是什么,然后自己就安装了vue ...
- Vue中的slot(占坑,预留位置)
Vue中的slot(占坑,预留位置) 子模板不使用slot 子模板使用slot 子模板使用使用name属性,且传递data 文件名:Slots.vue //slot组件 <template> ...
- vue 中的slot属性(插槽)的使用
总结如下: VUE中关于插槽的文档说明很短,语言又写的很凝练,再加上其和方法,数据,计算机等常用选项在使用频率,使用先后上的差别,这就有可能造成初次接触插槽的开发者容易产生“算了吧,回头再学,反正已经 ...
- vue中的slot(插槽)
vue中的插槽----slot 什么是插槽? 插槽(Slot)是Vue提出来的一个概念,正如名字一样,插槽用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性. ...
- Vue.js插槽slot和作用域插槽slot-scope学习小结
一般来说,在Vue项目中使用父子组建时,都是把通用的HTML结构提取出来写成一个子组件,需要动态展示的数据用过prop属性传递,不过有时候我们可能想给子组件传递一个HTML代码,这个时候用prop不太 ...
- 深入理解vue中的slot与slot-scope
from:https://segmentfault.com/a/1190000012996217?utm_source=tag-newest 写在前面 vue中关于插槽的文档说明很短,语言又写的很凝练 ...
- vue中插槽作用域的使用
一.插槽作用域 1.简单来说就是带参数的插槽: 2.使用方式: 在组件标签内部加一个template标签 在template标签上加一个属性scope 值随意书写 在组件内部用slot进行接受,如果给 ...
随机推荐
- python处理Excel文件的几个模块
在python中简单地处理excel文件,有几个相关的模块,各有千秋,本文将不定时收录. Python Excel网站收集了关于python处理excel文件的各种信息. [注意]使用python处理 ...
- zookeeper安装和使用 windows环境
简介 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提 ...
- SQL Server 输出 XML
一.概述 SELECT 查询将结果作为行集返回.在 SQL 查询中指定 FOR XML 子句,从而将该查询的正式结果作为 XML 来检索.FOR XML 子句可以用在顶级查询和子查询中.顶级 FOR ...
- Jar包下载 开源网站 模板下载
在日常的java学习和开发中,总是遇到各种jar包下载,但是CSDN这种坑爹网站,各位码农们都想挣点C币,一个开源的免费的东西就这么变了味,我这里收集 了一些好用的工具,日常开发中需要用的请自取,毕竟 ...
- Python实现FTP文件定时自动下载
之前遇到技术问题总能在技术博客上得到启发,十分感谢各位的无私分享.而自己却很少发文,固然是水平有限,但也限制了知识积累和总结.今后多总结分享,回馈博客的同时也希望大家多多批评. 一.需求: 某数据公司 ...
- C# 循环中 直接索引 VS 缓存索引 性能测试
using System; namespace TestCSharp { class MainClass { public class t1 { public b1 b = new b1(); } p ...
- MySQL5.7.28免安装版配置
下载 安装配置 问题及解决方案 一.下载 找到你要的版本点击“looking for the latest GA version?”切换,我这个安装的是5.7.28,然后往下拉: 找到免安装的压缩包: ...
- string leetcode-6.ZigZag
6. ZigZag Conversion 题面 The string "PAYPALISHIRING" is written in a zigzag pattern on a gi ...
- 【shell】shell基础
一.数据类型 1.shell变量 运行shell时,会同时存在三种变量: 1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量. 2) 环 ...
- java线程基础巩固---多线程死锁分析,案例介绍
之前已经学习了关于同步锁的知识,但是在实际编写多线程程序时可能会存在死锁的情况,所以这次来模拟一下死锁,并且学会用一个命令来确认是否程序已经出现死锁了,下面开始: 首先新建两个类: 此时当然得到Oth ...