Vue组件中的slot

Vue组件中的slot

slot 可以实现在已经定义的组件中添加内容,组件会接收内容并输出,假如有一个组件person,它的里面包含的是个人信息,如下面这样

    <template id="per">
        <div>
            <p>姓名:...</p>
            <p>年龄:...</p>
            <p>职业:...</p>
        </div>
    </template>

在应用的时候,当然希望这里面可以是灵活变化的,所以这就需要用到slot

首先要做的事情就是创建这样一个组件,这里我采用的是<template>的形式,如下面这样

    <template id="per">
        <div>
            <p>姓名:</p>
            <p>年龄:</p>
            <p>职业:</p>
        </div>
    </template>

可以看到我这里给template添加了id,这个是为了后面的操作

下面使用Vue的构造器,创建Vue实例,然后添加局部的组件,如下面这样

        var person = {
          template : "#per"    //利用id
        };
        new Vue({
           el: "#app",
            data: {
                componentData: {
                    name : "vam",
                    age : 18,
                    job : "student"
                }
            },
            components : {
                "person" : person
            }
        });

接下来就是要在<person> 组件使用的时候添加点东西,就是具体内容,下面这样:

    <div id="app">
        <person>
            <span slot="name">{{componentData.name}}</span>
            <span slot="age">{{componentData.age}}</span>
            <span slot="job">{{componentData.job}}</span>
        </person>
    </div>

当然这样还是不够的,总得在模板中有点什么吧,如下,这里就该用到slot

    <template id="per">
        <div>
            <p>姓名:<slot name="name"></slot></p>
            <p>年龄:<slot name="age"></slot></p>
            <p>职业:<slot name="job"></slot></p>
        </div>
    </template>

之后就可以看到想要的结果了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值