插槽(Slot)是Vue提出来的一个概念,插槽用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性。. 插槽显不显示、怎样显示是由父组件来控制的,而插槽在哪里显示就由子组件来进行控制.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>slot-插槽</title>
</head>
<body>
<div id="app">
<!-- {{message}}-->
<cpn></cpn> <!--没有替换掉slot-->
<cpn>
<!--替换掉name为aaa的slot-->
<p slot="aaa">我是aaa</p>
</cpn>
<cpn>
<!--替换掉name为bbb的slot-->
<div slot="bbb">
<span>bbb替换1</span>
<p><i>bbb替换2</i></p>
<p>bbb替换3</p>
</div>
</cpn>
</div>
<template id="cpn">
<div>
<h2>我是子组件</h2>
<p>你好,哈哈哈</p>
<!-- 没有默认值的插槽,替换前是空的-->
<slot name="aaa"></slot>
<!-- 有默认值button的插槽,替换前是button-->
<slot name="bbb"><button>默认按钮</button></slot>
</div>
</template>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el:'#app',
data:{
message:'hello vue'
},
components:{
cpn:{
template:'#cpn',
}
}
})
</script>
</body>
</html>