首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Vue JS中动态添加子组件

在Vue JS中动态添加子组件
EN

Stack Overflow用户
提问于 2018-01-23 08:54:38
回答 2查看 9.7K关注 0票数 1

在添加子vue组件方面,我需要Vue JSLaravel方面的一些帮助。

我有一个名为“包装器”的父组件和一些名为"show-1""show-2""show-3"的子组件。等。

父组件:

代码语言:javascript
复制
<template>
    <div class="card border-light">
        <div class="card-header">
            <h5 class="title">{{ title }}</h5>
        </div>
        <div class="card-body">
            <component
                is="view"
            ></component >
        </div>
        <div class="card-footer"></div>
    </div>
</template>

<script>
export default {
    props : ['title'],
    data() {
        return {
            view : ''
        }
    }
}
</script>

像“show-1”这样的示例子组件:

代码语言:javascript
复制
<template>
    <div> show-1 </div>
</template>

下面的代码位于刀片中,用于呈现带有动态子组件名称的包装器组件:

代码语言:javascript
复制
<wrapper
title="Example"
view="show-1"
></wrapper>

此代码不起作用,但如果我更改父视图数据"show-1“而不是”空“,它就能工作。为什么?

当我更改视图支柱时,子vue组件也应该被更改。我怎么能这么做?

我希望动态地将视图属性传递给父组件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-23 08:59:30

您可以使用:is属性。你可以在这里读到更多关于它的信息:https://v2.vuejs.org/v2/guide/components.html#Dynamic-Components

您可以使用相同的挂载点并使用保留元素在多个组件之间动态切换,并动态绑定到其is属性.

代码语言:javascript
复制
<template>
    <div class="card border-light">
        <div class="card-header">
            <h5 class="title">{{ title }}</h5>
        </div>
        <div class="card-body">
            <!-- make sure to use : -->
            <component v-if="view" :is="view"></component >
        </div>
        <div class="card-footer"></div>
    </div>
</template>

<script>
export default {
    props : ['title'],
    data() {
        return {
            view : ''
        }
    }
}
</script>
票数 3
EN

Stack Overflow用户

发布于 2018-01-23 09:10:45

@爱德华多有正确的答案。要添加到其中,请将组件导入父组件,并通过数据属性在它们之间切换:

代码语言:javascript
复制
...
<component :is="current"></component >
...

data: {
  current: 'show1'
},
components: {
  show1: Show1Component,
  show2: Show2Component,
  show3: Show3Component
}

关键是使用动态组件的名称绑定组件。

https://v2.vuejs.org/v2/guide/components.html#Dynamic-Components

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

https://stackoverflow.com/questions/48397597

复制
相关文章

相似问题

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