组件分发部分

<div id="app">
    <h1>我是app下面的</h1>
    <baba-component></baba-conponent>
</div>
<!--这是父组件的部分-->
<template id="baba-component">
    <span>
        <h3>我是父组件下面的</h3>
        <son-component>
        <p>假如子组件slot里面没有内容就渲染这个部分,否则就渲染slot部分</p> </son-component> </span> </template> <!--这是子组件的部分--> <template id="son-component"> <div> <slot>bgg</slot> </div> </template>/*这里注意几点:1.组件一定要注册,2.template后面一定要有一个容器包裹,否则会报错,这里template模板里面的内容是作为innerhtml插入的,所以一定要有一个容器*/ <script src="js/vue.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> Vue.component("baba-component",{ template:"#baba-component" }); Vue.component("son-component",{ template:"#son-component" }); var app = new Vue({ el:"#app" }) </script>

 组件分发是用来父子之间传递额外的内容(例如模板等),这里主要是通过template标签进行传递的。我们只要记住一点,template标签里面的内容一定要用一个容器包裹

具名slot就是通过slot标签进行匹配,加入没有匹配到的内容,仍然会有一个默认的slot,会把子组件的内容匹配到默认的slot里面去。

<div id="app">
	<h2>我是组件的标题{{message}}</h2>
	<baba-component></baba-component>
</div>
<template id="baba-component">
	<div>
		<child-component>
			<div>
				<h3 slot="header">asdasd</h3>
				<h3 slot="footer">我是一个会</h3>
			</div>
		</child-component>
	</div>
</template>
<template id="child-component">
	<div>
		<slot name="header">asdasd </slot>
		<p>asdadasdas</p>
		<p>adasdsdsadads</p>
		<slot name="footer">
			12312312312
		</slot>
	</div>
</template>

  

原文地址:https://www.cnblogs.com/xiongmaoblog/p/6860725.html