插槽怎么使用?分哪几种类型?

  • 匿名插槽

//组件调用时写成双标签,类似于react中的children <HelloWorld msg="666" > <div>我是丰富的内容</div> </HelloWorld>

在组件内部放置一个slot标签占位,将来双标签中的内容就放置到这里

<template>

        <div class="hello">

                hello 插槽!

                {{msg}}

                <slot></slot>

        </div>

</template>

  • 具名插槽

定义时:

<div class="container">

        <header>

                <slot name="header"></slot>

        </header>

        <main>

                <slot></slot>

        </main>

        <footer>

                <slot name="footer"></slot>

        </footer>

</div>

<HelloWorld msg="666" >

        <template v-slot:header>

                <div >我是丰富的内容</div>

        </template>

        <template v-slot:footer>

                <div>我想显示到hello之下</div>

        </template>

</HelloWorld>

  • 作用域插槽

定义时:

<template>

        <div class="hello">

                <!-- <slot name="header"></slot> -->

                hello 插槽!

                {{msg}}

                <!-- <slot name="footer"></slot> -->

                <span>

                        <slot v-bind:user="userInfo">

                        </slot>

                </span>

        </div>

</template>

<script>

export default {

        name: 'HelloWorld',

        data(){

                return {

                        userInfo:{

                        lastName:'wenqiang',

                        firstName:'guo'

                }

        }

},

      props: {

                msg: String

        }

}

</script>

<HelloWorld msg="666" >

        <template v-slot:default="parentPropNames">

                {{ parentPropNames.user.firstName }}-{{parentPropNames.user.lastName}}

        </template>

</HelloWorld>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值