vue 如何监听到异步组件加载完成

<keep-alive :max="30">

            <template v-if="tab.name===activeName">
                <component v-bind:is="currentTabComponent" v-bind="currentTabComponent.defaults"></component>
            </template>
        </keep-alive>

component 中的异步组件怎么知道何时加载完成,有没有callback之类的函数?

阅读 7.5k
2 个回答

$nextTick ?

在 component 内部的 mounted 钩子派发一个完成事件:

mounted() {
    this.$emit('done')
}

然后在外部监听这个事件

<component @done="handleDone" v-bind:is="currentTabComponent" v-bind="currentTabComponent.defaults"></component>
handleDone() {
    console.log(`加载完成`)
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题