vue中插槽(slot)几种类型的使用方法

 更新时间:2024年03月17日 11:10:16   作者:admin-Y  
本文主要介绍了vue中插槽(slot)几种类型的使用方法,主要分三种,默认插槽,具名插槽,作用域插槽,下面就来一起介绍一下,感兴趣的可以了解一下

前言

vue的slot主要分三种,默认插槽,具名插槽,作用域插槽;使用插槽是在存在父子关系的组件中使用,我们可以在子组件中决定插槽的位置,同时子组件也可以给这些插槽的默认信息,当父组件中没有需要给子组件插槽插入信息时,显示的是子组件插槽定义的默认信息,下边简单说下vue这三种插槽如何使用。

准备工作

很简单,就创建父组件testSlot.vue,子组件children.vue,并在testSlot组件中注册引入children组件。

一 默认插槽的使用:

默认插槽:

在子组件中定义一个默认插槽:

在这里插入图片描述

在开发中我们经常使用到组件之间的传值,但很多情况涉及到的都是数据属性的传值,比如父组件将msg传给子组件:

在这里插入图片描述

现在如果是这种情况:

在这里插入图片描述

如果子组件中没有使用插槽的情况下:

在这里插入图片描述

浏览器中的页面,父组件中的p标签的内容是不会还给子组件的:

在这里插入图片描述

这时候,想让父组件定义的p标签传给子组件并显示,可以在子组件中定义一个默认插槽:

在这里插入图片描述

在子组件中,你也可以定义多个默认插槽,并在子组件中决定这些默认插槽的位置,父组件要插入的内容,都会被填充到这些默认的插槽中:

在这里插入图片描述

当然,父组件定义要插入到子组件的插槽的内容,并不一定只有是dom结构类型的,也可以是一个组件,也可以是普通的数据结构,只要子组件有定义插槽,就会把内容填充进去。

二 具名插槽的使用:

具名插槽:

vue 2.6.0 版本使用具名插槽和作用域插槽有了新的统一语法,使用v-slot替换了之前的slot和slot-scope

什么叫具名插槽?

其实就是在子组件中定义插槽时,给对应的插槽分别起个名字,方便后边插入父组件将内容根据name来填充对应的内容。

子组件中,定义两个具名插槽:

在这里插入图片描述

父组件中:

为了验证,子组件中的插槽可以填充任何结构的内容,所以我这边专门在one_slot插槽中插入一个组件,而在two插槽就单纯插入一串普通的数据

在这里插入图片描述

页面结果:

在这里插入图片描述

当然,子组件可以定义多个同名的具名插槽:

在这里插入图片描述

三 作用域插槽:

作用域插槽:<slot :自定义name=data中的属性或对象>

通过上边的默认插槽和具名插槽的使用过程中,发现,基本都是父组件中决定要插入到子组件中的内容,而子组件自行决定插槽的位置。

具名插槽,就是实现在子组件中自行决定自己要显示什么内容。

子组件:

在这里插入图片描述

父组件:

这种时候有一种情况需要注意:

如果子组件中只有一个作用域插槽时,父组件可以使用下边这种简单的写法,当然规范点还是加上template模板标签好点:

在这里插入图片描述

页面效果:

在这里插入图片描述

但是当子组件中有多个作用域插槽时,不建议上边这种简单的写法,因为可能会出现作用域不明确的问题。

子组件有多个作用域插槽时:

在这里插入图片描述

父组件使用这种规范的写法,可以避免有时作用域不明确问题:

在这里插入图片描述

在这里插入图片描述

到此这篇关于vue中插槽(slot)几种类型的使用方法的文章就介绍到这了,更多相关vue 插槽内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • vue使用websocket的方法实例分析

    vue使用websocket的方法实例分析

    这篇文章主要介绍了vue使用websocket的方法,结合实例形式对比分析了vue.js使用websocket的相关操作技巧与注意事项,需要的朋友可以参考下
    2019-06-06
  • Vue表单输入的双向绑定失效原因与解决方案

    Vue表单输入的双向绑定失效原因与解决方案

    在Vue.js开发中,双向绑定是实现表单输入与数据同步的核心特性之一,然而,在实际开发中,开发者可能会遇到双向绑定失效的问题,导致表单输入无法正确更新数据或视图,本文将探讨双向绑定失效的常见原因,并提供相应的解决方案,需要的朋友可以参考下
    2025-03-03
  • 解决Vue2.0 watch对象属性变化监听不到的问题

    解决Vue2.0 watch对象属性变化监听不到的问题

    今天小编就为大家分享一篇解决Vue2.0 watch对象属性变化监听不到的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • 解决vite打包后白屏之router-view不生效问题

    解决vite打包后白屏之router-view不生效问题

    这篇文章主要介绍了解决vite打包后白屏之router-view不生效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • vue-router项目实战总结篇

    vue-router项目实战总结篇

    vue-router 是 Vue.js 官方的路由库.这篇文章主要介绍了vue-router项目实战总结,需要的朋友可以参考下
    2018-02-02
  • 一文教会你如何在npm上传自己的包

    一文教会你如何在npm上传自己的包

    作为一个前端开发者,我们要学会自己编写一些开发工具模块,也可以自己编写一些组件,甚至可以通过自己的能力编写一个框架出来,这都需要我们能够灵活的管理我们的包,下面这篇文章主要给大家介绍了关于如何通过一文教会你在npm上传自己的包的相关资料,需要的朋友可以参考下
    2023-03-03
  • Vue.js实现一个自定义分页组件vue-paginaiton

    Vue.js实现一个自定义分页组件vue-paginaiton

    这篇文章主要为大家详细介绍了Vue.js实现一个自定义分页组件vue-paginaiton的具体代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • 基于Vue3实现高性能拖拽指令

    基于Vue3实现高性能拖拽指令

    在现代前端开发中,拖拽功能是增强用户体验的重要手段之一,本文将详细介绍如何在Vue3中封装一个拖拽指令并通过实战例子演示其实现过程,希望对大家有所帮助
    2024-11-11
  • 解决vue.js在编写过程中出现空格不规范报错的问题

    解决vue.js在编写过程中出现空格不规范报错的问题

    下面小编就为大家带来一篇解决vue.js在编写过程中出现空格不规范报错的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Vue3项目实现前端导出Excel的示例代码

    Vue3项目实现前端导出Excel的示例代码

    这篇文章主要介绍了Vue3项目实现前端导出Excel的示例,在vue3的项目中导出Excel表格的功能,可以借助xlsx库来实现,下面是详细的操作步骤,需要的朋友可以参考下
    2025-01-01

最新评论