gpt4 book ai didi

vue.js - 如何在模板中使用

转载 作者:搜寻专家 更新时间:2023-10-30 22:34:06 25 4
gpt4 key购买 nike

我正在尝试了解 <slot> 的用法在 Vue 模板中。按照我的理解,插槽可用于将组件中的子内容传递给模板。

下面是一个简短的最小工作示例 ( also on codepen )。

Vue.component('mine', {
template: '#mine'
})

var app = new Vue({
el: '#app'
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.13/vue.min.js"></script>

<script type="text/x-template" id="mine">
<h1>this is it</h1>
<slot></slot>
</script>

<div id="app">
<mine>
<p>why isn't this displayed</p>
</mine>
</div>

我希望输出是这样的:

<h1>this is it</h1>
<p>why isn't this displayed</p>

但是,当页面呈现时第二行没有出现。

最佳答案

模板需要有一个根 DOM 元素。看起来 Vue 只是将 h1 作为整个模板并丢弃其余部分:

Vue.component('mine', {
template: '#mine'
})

var app = new Vue({
el: '#app'
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.13/vue.min.js"></script>

<script type="text/x-template" id="mine">
<div>
<h1>this is it</h1>
<slot></slot>
</div>
</script>

<div id="app">
<mine>
<p>why isn't this displayed</p>
</mine>
</div>

(使用库的“开发者模式”版本会给你更好的关于这类事情的错误信息:)

Vue.component('mine', {
template: '#mine'
})

var app = new Vue({
el: '#app'
})
<script src="https://vuejs.org/js/vue.js"></script>

<script type="text/x-template" id="mine">
<h1>this is it</h1>
<slot></slot>
</script>

<div id="app">
<mine>
<p>why isn't this displayed</p>
</mine>
</div>

关于vue.js - 如何在模板中使用 <slot> ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49152598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com