Vue slot插槽
插槽用于内容分发,存在于子组件之中。
插槽作用域
父级组件作用域为父级,子级组件作用域为子级,在哪定义的作用域就在哪。
子组件之间的内容是在父级作用域的,无法直接访问子组件里面的数据。
插槽元素
<slot></slot> 或 <slot name="名称">默认值</slot>
1:如果定义了slot插槽元素,那么子组件之间的内容将会被插入到插槽元素之中。(可简单理解为向插槽提供内容)
2:如果定义了slot插槽元素,并没有在子组件之间插入内容,那么将使用默认值。(不提供内容,将使用默认值)
3:如果没有定义slot元素,那么子组件之间的内容将会被废弃。
// 定义组件
Vue.component("my-test",{
template:`<div><slot>默认值</slot></div>`
}) // 向插槽提供内空
<my-test>hello slot</my-test>
多插槽元素
当子组件中有多个插槽元素时,要为每个插槽name特性定义名称。
1:如果没有定义名称,那么采用默认名称:default;用于存放不指定名称的内容
2:如果多个插槽没有定义名称或名称相同的情况下,那么v-slot(# 缩写)指令将无法找到对应插槽或混乱。
3:多个插槽时v-slot指令配合template一起使用,如果只有单个可直接写到子组件上。
// 定义插槽
Vue.component("my-test",{
template:`
<div>
<div class="title"><slot name="name">标题</slot></div>
<div class="main"><slot>内容</slot></div>
<div class="main"><slot name="qita">其它</slot></div>
</div>
`
}); <!-- 向插槽提供数据 -->
<div class="app">
<my-test>
<template v-slot:name>
<h4>vuejs</h4>
</template>
<p>v-slot、slot元素</p>
<p>template</p>
<template v-slot:qita>
<p>恩</p>
</template>
</my-test>
</div>
访问插槽数据
父组件在向子组件的插槽提供内容的时候,有时需要访问子组件中的数据,那么可以利用v-bind指令在插槽上绑定变量来实现。
字面量写法:
v-slot:default="自定义名称"
解构写法 : 与ES6中解构对象写法一样。
v-slot:default="{data = {name:"whowhowho"}}"
变量重命名
v-slot:default="{data : ddd}"
Vue.component("my-test",{
template:`<div class="main"><slot :data="user">内容</slot></div>`,
data(){
return {
user:{
name:'小明',
age:'110'
}
}
}
});
<div class="app">
<my-test>
<template v-slot="o">
{{o.data.name}}、{{o.data.age}}
</template>
</my-test>
<my-test>
<template v-slot:default="{data}">
{{data.name}}、{{data.age}}
</template>
</my-test>
<my-test>
<template v-slot:default="{data:dd}">
{{dd.name}}、{{dd.age}}
</template>
</my-test>
</div>
动态插槽名
与ES6中动态属性名写法一样。 v-slot:[....]
https://pan.baidu.com/s/1DxVAkfDluQkAQwE5h5kVLA
Vue slot插槽的更多相关文章
- Vue slot插槽内容分发
slot插槽使用 使用场景,一般父组件中又一大段模板内容需要运用到子组件上.或者更加复杂的,子组件需要运用到父组件大段模板内容,而子组件却不知道挂载的内容是什么.挂载点的内容是由父组件来决定的. Sl ...
- Vue slot 插槽用法:自定义列表组件
Vue 框架的插槽(slot)功能相对于常用的 v-for, v-if 等指令使用频率少得多,但在实现可复用的自定义组件时十分有用.例如,如果经常使用前端组件库的话,就会经常看到类似的用法: < ...
- vue slot插槽的使用
slot插槽的使用场景 父组件向子组件传递dom时会用到插槽 作用域插槽:当同一个子组件想要在不同的父组件里展示不同的状态,可以使用作用域插槽.展示的状态由父组件来决定 注:想要修改父组件向子 ...
- vue slot插槽的使用方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue slot 插槽详解
插槽含义:就是引入子组件后,在插入子组件元素中添加信息或者标签,使得子组件的指定位置插入信息或者标签 插槽有三种:默认插槽.具名插槽.作用域插槽,由于vue2.6.0后对插槽进行修改,但是兼容2.6. ...
- Vue slot插槽通俗解释
slot内容分发是Vue的Api来源 <div id="app"> <my-list> {{msg}} </my-list> </div& ...
- vue slot 插槽备忘
老是记不住插槽咋回事 记录下来备忘 父组件 <tab><template slot="boy" slot-scope="test">{{ ...
- vue slot插槽v-show不控制显示隐藏
vue中想控制插槽的显示隐藏,用v-show是不起任何作用的,改用v-if 可以生效.
- Vue结合slot插槽分发父组件内容实现高度复用、更加灵活的dialog组件
之前写过一篇关于vue实现dialog会话框组件的文章(http://www.cnblogs.com/fozero/p/8546883.html)[http://www.cnblogs.com/foz ...
随机推荐
- 从壹开始 [vueAdmin后台] 之三 || 动态路由配置 & 项目快速开发
回顾 今天VS 2019正式发布,实验一波,你安装了么?Blog.Core 预计今天会升级到 Core 3.0 版本. 哈喽大家周三好!本来今天呢要写 Id4 了,但是写到了一半,突然有人问到了关于 ...
- 从壹开始前后端 [vue后台] 之二 || 完美实现 JWT 滑动授权刷新
缘起 哈喽大家周一好!不知道小伙伴们有没有学习呀,近来发现各种俱乐部搞起来了,啥时候群里小伙伴也搞一次分享会吧,好歹也是半千了(时间真快,还记得5个月前只有20多人),之前在上个公司,虽然也参与组织过 ...
- Python一行代码实现快速排序
上期文章排序算法——(2)Python实现十大常用排序算法为大家介绍了十大常用排序算法的前五种(冒泡.选择.插入.希尔.归并),因为快速排序的重要性,所以今天将单独为大家介绍一下快速排序! 一.算法介 ...
- 带着新人看java虚拟机02
上一节是把大概的流程给过了一遍,但是还有很多地方没有说到,后续的慢慢会涉及到,敬请期待! 这次我们说说垃圾收集器,又名gc,顾名思义,就是收集垃圾的容器,那什么是垃圾呢?在我们这里指的就是堆中那些没人 ...
- 学习 JavaScript (六)核心概念:函数
基本知识 函数对于我们来说,不算陌生的东西.中学就已经有了函数的概念,比如: y = f(x) 输入一个数 x,能够得到与之对应的一个数 y.也就是说,f(x) 的有一个返回值,这是函数在数学上的定义 ...
- 【我们一起写框架】C#的AOP框架
前言 AOP,大家都是听过的,它是一种面向切面的设计模式. 不过AOP虽然是被称为设计模式,但我们应该很少能看到AOP设计的框架.为什么呢? 因为,AOP单独设计的框架几乎是无法使用的.普遍的情况是, ...
- Java设置PPT幻灯片背景——纯色、渐变、图片背景
PPT幻灯片生成时,系统默认是无色背景填充,幻灯片设计需要手动设置背景效果,可设置颜色填充或者图片背景填充.本文将对此介绍具体实现方法. 使用工具:Free Spire.Presentation fo ...
- 人生苦短,我用 Python
从2015开始国内就开始慢慢接触Python了,从16年开始Python就已经在国内的热度更高了,目前也可以算的上"全民Python"了.众所周知小学生的教材里面已经有Python ...
- 学web前端的第一天
大家好,我是蓝颜.上次写博客是18年的4月份,不是不想写,是不知道怎么写,求写博客的技巧.从今天开始一天一更,不管写的怎么样,坚持的写下去.闲话不多说,第一次接触前端,什么都不懂,因为对这玩意的热爱, ...
- 使用CSS3的clip-path(裁剪路径)实现剪贴区域的显示以及实例实现图片渐变
clip-path介绍 clip-path 直译过来就是裁剪路径,使用SVG或形状定义一个HTML元素的可见区域的方法.想象一下你在Photoshop中勾勒路径的场景.MDN上是这样介绍 clip-p ...