Vue.js中组件中的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>

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

以上是 Vue.js中组件中的slot实例详解 的全部内容, 来源链接: utcz.com/z/352174.html

回到顶部