Vueでのスロットの使用
3507 ワード
次の方法の値伝達には2つの問題がある:1.外の小包のラベルを外すことはできません.値を伝えすぎると、この方法はこすって読みにくいです.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script src="./vue.js"/>
<!-- <script src="http://cdn.staticfile.org/vue/2.6.10/vue.common.dev.js"></script> -->
<div id="root">
<child content="<p>My name is Tom Cat</p>"/>
</div>
<script type="text/javascript">
Vue.component("child", {
props: ["content"],
template: `<div>
<p>hello</p>
<br/>// html :<br/><br/>
{{content}}<br/>
<br/>// html ( div):
<div v-html='this.content'></div>
// template , :<br/>
<template v-html='this.content'></template>
<br/>
</div>`
});
var vm = new Vue({
el: "#root"
})
</script>
</code></pre>
<p> ? !<br/> :</p>
<pre><code>
<title/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script src="./vue.js"/>
<!-- <script src="http://cdn.staticfile.org/vue/2.6.10/vue.common.dev.js"></script> -->
<div id="root">
<child>
// :
<h1>world</h1>
</child>
// :content , ,so my-content( myContent ):
<my-content1>
<div class="header">header</div>
<div class="footer">footer</div>
</my-content1>
<br/>// :
<my-content2>
<div class="header" slot="header">header</div>
<div class="footer" slot="footer">footer</div>
</my-content2>
</div>
<script type="text/javascript">
Vue.component("child", {
//props: ["content"],
template: `<div>
<p>hello</p>
<slot> , </slot>
</div>`
});
Vue.component("my-content1", {
//props: ["content"],
template: `<div>
<slot></slot>
<div class='content'>hello</div>
<slot></slot>
</div>`
});
Vue.component("my-content2", {
//props: ["content"],
template: `<div>
<slot name="header"> , </slot>
<div class='content'>hello</div>
<slot name="footer"></slot>
</div>`
});
var vm = new Vue({
el: "#root"
})
</script>
</code></pre>
</div>
</div>
</div>
</div>