Vue默认插槽,具名插槽,作用域插槽定义及使用方法

 更新时间:2022年03月29日 11:01:54   作者:什么都干的派森  
这篇文章主要介绍了Vue默认插槽,具名插槽,作用域插槽定义及使用方法,插槽的作用是在子组件中某个位置插入父组件的自定义html结构和data数据,下面详细内容需要的小伙伴可以参考一下

应用场景:

插槽的作用是在子组件中某个位置插入父组件的自定义html结构和data数据

一、三种插槽的定义

插槽分为三种:

  • 默认插槽 具名插槽 作用域插槽

1.默认插槽

【定义:默认插槽是将父组件的结构和数据插入子组件中,默认插槽只有一个插入位置,要插入的html结构和data数据必须在父组件中,不过css可以在子组件中】
【简述:将父组件的自定义html和data插入子组件的对应位置】
【特点:父组件决定结构和数据】

2.具名插槽

【定义:具名插槽和默认插槽类似,只是默认插槽只有一个插入位置,具名插槽可以有多个插入位置】
【简述:将多个父组件的自定义html和data插入子组件的多个位置】
【特点:父组件决定结构和数据】

3.作用域插槽

【定义:作用域插槽的data数据固定写在子组件中,数据的html结构根据父组件传入的html结构来决定】
【简述:根据父组件中不同的html结构解析data中的数据】
【特点:子组件决定数据,父组件决定结构】

二、使用方法

1.默认插槽

父组件:

<template>
    <Child> <!-- Child为子组件标签 -->
        <!-- 插槽内容 -->
        <template>要插入的html内容</template>
    </Child>
</template>

子组件:

<template>
    <div>
        <!-- 插槽位置 -->
        <slot>插槽未被调用时会显示此内容</slot>
    </div>
</template>

2.具名插槽

父组件:

<template>
    <Child> <!-- Child为子组件标签 -->
        <!-- 插槽内容 -->
        <template slot="header">要插入的html内容1</template>
        <template slot="center">要插入的html内容2</template>
        <template slot="footer">要插入的html内容3</template>
    </Child>
</template>

子组件:

<template>
    <div>
        <!-- 插槽位置 -->
        <slot name="header">插槽未被调用时会显示此内容</slot>
        <slot name="center">插槽未被调用时会显示此内容</slot>
        <slot name="footer">插槽未被调用时会显示此内容</slot>
    </div>
</template>

3.作用域插槽

父组件:

<template>
    <Child> <!-- Child为子组件标签 -->
        <!-- 插槽内容 -->
        <template slot="header">
            <span v-for="m in data.msg" :key="m"></span>
        </template>
        <template slot="center">
            <div v-for="m in data.msg" :key="m"></div>
        </template>
        <template slot="footer">
            <label v-for="m in data.msg" :key="m"></label>
        </template>
    </Child>
</template>

子组件:

<template>
    <div>
        <!-- 插槽位置 -->
        <slot :msg="msg">插槽未被调用时会显示此内容</slot>
    </div>
</template>

<script>
    export default {
        name: 'Child',
        // 公用数据
        data() {
            return {
                msg: ["火锅", "红烧肉", "烤羊腿"]
            }
        }
    }
</script>

到此这篇关于Vue默认插槽,具名插槽,作用域插槽定义及使用方法的文章就介绍到这了,更多相关Vue插槽定义内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 分享12个Vue开发中的性能优化小技巧(实用!)

    分享12个Vue开发中的性能优化小技巧(实用!)

    一般来说,你不需要太关心vue的运行时性能,它在运行时非常快,但付出的代价是初始化时相对较慢,下面这篇文章主要给大家分享介绍了十二个Vue开发中的性能优化小技巧,需要的朋友可以参考下
    2022-02-02
  • Vue 之孙组件向爷组件通信的实现

    Vue 之孙组件向爷组件通信的实现

    这篇文章主要介绍了Vue 之孙组件向爷组件通信的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • vue-cli 3 全局过滤器的实例代码详解

    vue-cli 3 全局过滤器的实例代码详解

    这篇文章主要介绍了vue-cli 3 全局过滤器的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义

    Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义

    这篇文章主要为大家详细介绍了Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • Vuejs第十三篇之组件——杂项

    Vuejs第十三篇之组件——杂项

    组件(Component)是 Vue.js 最强大的功能之一。本文重点给大家介绍vuejs组件相关知识,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-09-09
  • vue3+electron12+dll开发客户端配置详解

    vue3+electron12+dll开发客户端配置详解

    本文将结合实例代码,介绍vue3+electron12+dll客户端配置,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • vue通过tailwindcss实现class动态绑定

    vue通过tailwindcss实现class动态绑定

    这篇文章主要介绍了vue通过tailwindcss实现class动态绑定,文中给大家介绍了一些常用类名语法记录,对vue动态绑定class相关知识感兴趣的朋友一起看看吧
    2023-07-07
  • 一文详解vue生命周期在uniapp中的用法

    一文详解vue生命周期在uniapp中的用法

    在uniapp中,vue的生命周期的用法基本都得以保留,但是对于特殊的需求以及特殊的情况,uniapp还引入了一些特有的生命周期钩子,本文给大家详细介绍了vue生命周期在uniapp中的用法,感兴趣的朋友可以参考下
    2024-01-01
  • 解决vue项目中某一页面不想引用公共组件app.vue的问题

    解决vue项目中某一页面不想引用公共组件app.vue的问题

    这篇文章主要介绍了解决vue项目中某一页面不想引用公共组件app.vue的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Vue ElementUI this.$confirm async await封装方式

    Vue ElementUI this.$confirm async await封

    这篇文章主要介绍了Vue ElementUI this.$confirm async await封装方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09

最新评论