VueJs:如何在观察者中判断组件是否挂载?

问题描述

似乎是一个简单的要求,当然我可以使用 lifecycle hooks 维护自己的标志。另请参阅 https://forum.vuejs.org/t/check-if-mounted-was-called/88177/6 以了解类似问题。

然而,我更喜欢使用已经内置的东西。我敢肯定,VueJs 会在某处维护生命周期状态。

这是我的观察者,简化了:

@Watch('openId')
private onopenIdChanged() {
    this.submitSomething(); //But ONLY if it's mounted!
}

如何在不使用自己的标志的情况下,在组件的观察者中访问同一组件的生命周期状态?

解决方法

没有为此提供公共 API,因此唯一正确答案是维护您自己的标志。

Vue 内部使用的组件实例 _isMounted 上有一个私有属性(从 2.6.11 版开始)。