slot
可以实现在已经定义的组件中添加内容,组件会接收内容并输出,假如有一个组件person
,它的里面包含的是个人信息,如下面这样
"per"
>姓名:...
年龄:...
职业:...
在应用的时候,当然希望这里面可以是灵活变化的,所以这就需要用到slot
了
首先要做的事情就是创建这样一个组件,这里我采用的是的形式,如下面这样
<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
}
});
接下来就是要在
组件使用的时候添加点东西,就是具体内容,下面这样:
<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>
之后就可以看到想要的结果了