首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在模板中使用<slot>?

如何在模板中使用<slot>?
EN

Stack Overflow用户
提问于 2018-03-07 12:59:54
回答 1查看 2.2K关注 0票数 2

我试图理解在Vue模板中的用法。据我理解,插槽可以用来将组件中的子内容传递给模板。

下面是一个简短的、最小的工作示例(也是关于代码的)。

代码语言:javascript
复制
Vue.component('mine', {
  template: '#mine'
})

var app = new Vue({
  el: '#app' 
})
代码语言:javascript
复制
<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>

我希望输出是这样的:

代码语言:javascript
复制
<h1>this is it</h1>
<p>why isn't this displayed</p>

但是,当呈现页面时,第二行不会出现。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-07 13:18:04

模板需要一个单一的根DOM元素。看起来Vue只是把h1作为整个模板,然后丢弃其余的模板:

代码语言:javascript
复制
Vue.component('mine', {
  template: '#mine'
})

var app = new Vue({
  el: '#app' 
})
代码语言:javascript
复制
<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>

(使用"developer模式“版本的库将为您提供更好的有关此类内容的错误消息:)

代码语言:javascript
复制
Vue.component('mine', {
  template: '#mine'
})

var app = new Vue({
  el: '#app' 
})
代码语言:javascript
复制
<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>

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49152598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档