vue中slot的使用总结

slot是Vue中的插槽,首先它是使用在 子组件 中的
Vue的slot插槽,简单理解就是,在子组件内占坑,在父组件里填坑。

slot一般都是子组件定义了主体部分,父组件引入,然后父组件根据需求不同需要向里面添加不同的内容

1 . 普通 slot 插槽

父组件
( 记得将子组件引入,并且将组件在components注册后才能使用 )

<template>
<!-- 父组件 --><div><slotTest></slotTest></div>
</template>
<script>
import slotTest from './slotTest'export default {data(){return{}},components:{slotTest}
}
</script>

子组件

<template>
<!-- 子组件 --><div>子组件</div>
</template>

这时,我们向<slotTest> </slotTest>无论添加什么内容,浏览器中都不会识别,比如下面这个例子

<template><div><!-- 父组件 --><slotTest>这是一段子组件没有slot插槽时定义的文字</slotTest></div>
</template>


接着我们向子组件中添加slot插槽

<template>
<!-- 子组件 --><div>子组件<slot></slot></div>
</template>

这时,之前添加在父组件里那句话就被呈现出来了

2 . 具名插槽

具名插槽的作用是,一个萝卜一个坑,可以将父组件中的内容插入指定的子组件位置中

具名插槽的使用语法
1 . 子组件定义slot时,在标签上加上name='xxx'属性
2 . 父组件将想插入的部分最外部的div上加上slot="xxx"属性


父组件

<template><div><!-- 父组件 --><slotTest><div slot="header">父组件传递过来的头部内容</div><div slot="body">父身体内容</div><div slot="footer">父组件传递过来的页脚内容</div></slotTest></div>
</template>

子组件

<template>
<!-- 子组件 --><div>子组件<div>----------页头-----------</div><slot name='header'></slot><div>----------页中-----------</div><slot name='body'></slot><div>----------页脚-----------</div><slot name='footer'></slot></div>
</template>

效果

作用域插槽 slot-scope

在使用作用域插槽时,我们要知道一个东西
根据vue官方的说法:
父组件模板的所有东西都会在父级作用域内编译;
子组件模板的所有东西都会在子级作用域内编译。

举个例子:
我们在父组件和子组件中,同时定义一个name属性
父组件name:"张三"
子组件name:"李四"
然后在父组件中,使用子组件,并使用子组件中的插槽,向子组件中插入一个 name 变量,那么这个name的值,在父组件中被调用,就会使用父组件中的name:"张三",这就是它作用域限制

<slotTest>{{ name }}
</slotTest>

但是,作用域插槽,允许 父组件 调用 子组件 内部的数据,子组件 的数据通过slot-scope属性传递到了父组件

举个例子:
父组件

<template>
<!-- 父组件 --><div><slotTest><template slot-scope="fromChildList">{{ fromChildList }}</template></slotTest></div>
</template>
<script>
import slotTest from "./slotTest";export default {components: {slotTest,},
};
</script>

子组件

<template><!-- 子组件 --><div><slot :childList="list"> </slot></div>
</template>
<script>
export default {data() {return {list: [{name: "张三",age: "24",},{name: "李四",age: "24",},],};},
};
</script>

这里说一下一个!!非常重要的!!东西
slot-scope 会将接收到东西转化为对象的形式 ,这里就是 slot-scope 接收的是一个参数,并命名为 fromChildList,
这里将参数打印出来看看


所以我们如果想使用这个数据中的某一项数据,就要写成
{{ fromChildList.childList[0].name }}的形式,这样就可以获取到name=张三

vue中 slot 的使用总结相关推荐

  1. Vue 中 slot插槽 的使用

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

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

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

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

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

  4. Vue中slot与slot-scope的理解及使用

    以前使用过vue,但是从来没有用过插槽slot,最近突然看到slot,发现有点不会用,因此决定系统的学习一下插槽slot. 但是在查看了vue文档后,感觉说的太笼统,让人难以理解,因此在网上查了很多资 ...

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

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

  6. vue中slot,slot-scope,v-slot的用法和区别

    以下仅为个人理解,若有不妥请留言评论区 v-slot 指令自 Vue 2.6.0 起被引入,在接下来所有的 2.x 版本中 slot 和 slot-scope attribute 仍会被支持,但已经被 ...

  7. vue中slot插口的用法

    关于slot插口的作用:可以借助input中的placeholder占位属性来理解. 若子组件中插入DOM元素时,则slot不显示,如果没有插入一些DOM的时候,则slot显示.简单的实例如下: &l ...

  8. Vue中slot的介绍与使用(通俗版)

    什么是插槽? 插槽(Slot)是Vue提出来的一个概念,正如名字一样,插槽用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性.插槽显不显示.怎样显示是由父组件 ...

  9. Vue中slot的使用(通俗易懂)

    个人理解: 是对组件的扩展,通过slot插槽向组件内部指定位置传递内容,通过slot可以父子传参: 开发背景(slot出现时为了解决什么问题): 正常情况下,<Child><span ...

最新文章

  1. K-means算法、高斯混合模型 matlab
  2. 机器学习入门资源不完全汇总
  3. 使用pdb调试Python程序
  4. 微软MIX11大会第一天主旨以及新产品发布总结
  5. pycharm变量存_pycharm不为人知的功能们
  6. JavaSE——数组基础(创建格式、下标、获取长度、常见问题、多维数组)
  7. leetcode组队学习——查找(二)
  8. 解决filezilla中无法显示中文的文件名
  9. winhex 使用教程
  10. 小米笔记本 镜像_小米笔记本Air 13.3原装出厂WIN10 2004 ISO镜像下载
  11. 基于腾讯云的物联网云端数据传输-STM32F103C8T6(微信小程序显示数据).一
  12. JAVA生成64,32位UUID密钥
  13. 大数据处理技术,主要包括哪些基本技术?
  14. 假期无聊,我用傅里叶变换做了一个频率计,吉他定调口哨定音,样样好使!
  15. 2021年茶艺师(初级)考试及茶艺师(初级)考试总结
  16. scrapy爬取表情包使用flask搭建搜索网站
  17. 水晶苍蝇拍-微薄投资感悟
  18. PPIO边缘云聚焦音视频底层技术,探索元宇宙“登月工程”
  19. 科创板、香港主板、纳斯达克三地部门上市条件和要求
  20. Elastic:Elastic Stack 7.6.0 重磅发布

热门文章

  1. Android Fragment和Activity之间的交互方式
  2. 下列不属于计算机软件含义的是,统考计算机应用基础考试大纲及答案
  3. Linux查找openssl文件夹,Linux下OpenSSL 安装详解 +图解
  4. 树莓派可以安装Linux软件吗,如何在树莓派上安装甲骨文Linux – 简单的方法
  5. oracle给已有表添加主键
  6. 【2023细胞生物学III】2023细胞生物学III复习资料更新
  7. 智慧城市炫酷效果、threejs绘制道路、shader实现道路流光效果
  8. 读《把时间当作朋友》
  9. Let's Encrypt网站中文版
  10. 极限编程(xp编程)总结