首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue异步组件回调

Vue异步组件回调
EN

Stack Overflow用户
提问于 2019-02-18 11:01:35
回答 2查看 702关注 0票数 2
代码语言:javascript
复制
<template>
    <div>
        <AsyncComponent1></AsyncComponent1>
        <!-- Render AsyncComponent2 after AsyncComponent1 -->
        <AsyncComponent2></AsyncComponent2>
    </div>
</template>

<script>
export default {
    name: "My Component"
    components: {
        AsyncComponent1: () => import("./AsyncComponent1"),
        AsyncComponent2: () => import("./AsyncComponent2")
    }
};
</script>

我在一个组件中异步加载了两个组件,但我需要其中一个组件在另一个组件之后呈现。我想知道这是否可能?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-18 11:54:56

向另一个组件中的ref添加v-if

代码语言:javascript
复制
<template>
   <div>
       <AsyncComponent1 ref="c1"></AsyncComponent1>
       <!-- Render AsyncComponent2 after AsyncComponent1 -->
       <AsyncComponent2 v-if="$refs.c1"></AsyncComponent2>
   </div>
</template>
票数 1
EN

Stack Overflow用户

发布于 2019-02-18 11:22:07

您可以让第一个组件发出一个事件,该事件由父级侦听并用于切换第二个组件

代码语言:javascript
复制
<template>
    <div>
        <AsyncComponent1 v-on:loaded="componentLoaded"></AsyncComponent1>
        <!-- Render AsyncComponent2 after AsyncComponent1 -->
        <AsyncComponent2 v-if="hasComponent"></AsyncComponent2>
    </div>
</template>

<script>
export default {
    name: "My Component",
    components: {
        AsyncComponent1: () => import("./AsyncComponent1"),
        AsyncComponent2: () => import("./AsyncComponent2")
    },
    data: {
        hasComponent: false
    },
    methods: {
        componentLoaded() {
            this.hasComponent = true;
        }
    }
};
</script>

然后在AsyncComponent1.vue中:

代码语言:javascript
复制
...
mounted() {
    this.$emit("loaded");
}
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54739922

复制
相关文章

相似问题

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