<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>插槽</title>
<style>
*{
font-size: 30px;
}
.wrap{
width:500px;
border:1px solid #999;
margin-bottom: 20px;
}
.wrap>*{
padding:15px;
}
.title{
border-bottom: 1px solid #999;
}
.footer{
border-top: 1px solid #999;
}
</style>
</head>
<body>
<div id="app">
<popup>
<div slot="title">提示</div>
<div slot="content">内容</div>
<div slot="footer">底部</div>
</popup>
<popup>
<div slot="title">头部</div>
<div slot="content">content</div>
</popup>
</div>
<template id="box">
<div class="wrap">
<div class="title">
<slot name="title"></slot>
</div>
<div class="content">
<!-- 动态内容,用slot替代 -->
<slot name="content"></slot>
</div>
<div class="footer">
<slot name="footer">更多信息</slot>
//给插槽一个name属性,表示相对应的插槽
//不指定的话,在template里面,默认一个更多信息,第二个模板里面的信息就会变成这个默认的值
</div>
</div>
</template>
</body>
<script type="text/javascript" src="https://cdn.jsdelivr.net/vue/2.1.3/vue.js"></script>
<script type="text/javascript">
Vue.component("popup",{
template : "#box",
})
//初始化父组件
var parent = new Vue({
el:"#app",
data :{
}
})
</script>
</html>
网友评论