vue中插槽属性的练习

插槽的作用是允许父组件向子组件中插入视图

父组件插入子组件的视图,是在父组件中渲染好之后,才插入子组件的

所谓插槽属性,就是在插槽上面绑定的属性

原先的slot-scope已经废弃了,下面使用的是v-slot

 

先定义一个带有插槽的子组件,且插槽上面有属性

<template>
    <div>
        <div>
            <h3>插槽一</h3>
            <!--插槽一具有user和grade2个属性-->
            <slot name="slot1" v-bind:user="user_" v-bind:grade="grade_">
                <span>{{user_.name}}</span><br/>
                <span>{{user_.age}}</span><br/>
                <span>{{grade_.name}}</span><br/>
                <span>{{grade_.count}}</span>
            </slot>
        </div>
        <hr/>
        <div>
            <h3>插槽二</h3>
            <!--插槽二具有product属性-->
            <slot name="slot2" v-bind:product="product">
                <a href="#">{{product.name}}</a><br/>
                <span>{{product.price}}</span>
            </slot>
        </div>
    </div>
</template>

<script>
    export default{
        data: function () {
            return{
                user_: {
                    name: '张三',
                    age: 18
                },
                grade_: {
                    name: '一年级',
                    count: 200
                },
                product: {
                    name: 'apple',
                    price: 2000
                }
            }
        }
    }
</script>

使用子组件的父组件

<template>
    <div>
        <MyComponent16_Slot>
            <!--准备放到插槽slot1中的视图,x是插槽一所有属性组成的对象,插槽一具有grade和user2个属性-->
            <template v-slot:slot1="x">
                <h2>{{x.user.name}}, {{x.user.age}}, {{x.grade.name}}, {{x.grade.count}}</h2>
            </template>

            <!--准备放到插槽slot2中的视图,y是插槽二所有属性组成的对象,插槽二具有product属性-->
            <template v-slot:slot2="y">
                <button>{{y.product.name}}</button><br/>
                <button>{{y.product.price}}</button>
            </template>
        </MyComponent16_Slot>

    </div>
</template>

<script>
    import MyComponent16_Slot from './MyComponent16_Slot.vue'
    export default{
        //局部注册子组件
        components: {
            MyComponent16_Slot
        }
    }
</script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值