VueJs:如何在观察者中确定组件是否已安装?

问题描述 投票:0回答:2

似乎是一个简单的要求,当然我可以使用生命周期钩子维护自己的标志。另请参阅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!
}

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

vue.js components hook lifecycle
2个回答
1
投票

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

组件实例上有一个私有属性

_isMounted
,Vue 在内部使用它(从版本 2.6.11 开始)。


0
投票

要仅在组件安装后处理更改,您可以在安装的生命周期挂钩中使用 this.$watch 。方法如下:

    mounted() {
     this.$watch('openId', () => {
       this.submitSomething();
     });
    }

我不知道是否有更好的方法,但这非常有效:

© www.soinside.com 2019 - 2024. All rights reserved.