搜索

首页  >  问答  >  正文

vue中如何检查子组件是否挂载?

我想检查子组件是否已安装,并且我想将该信息移动到父组件。为此,我正在使用发射。 因此,这里的示例是我的父组件:

<child @is-child-mounted="childMounted" />

export default {
  data() {
    return {
      childMounted: false,
    };
  },

  mounted() {
    if (this.childMounted) {
      //do something
    }
  },
}

在子组件中,我将“is-child-mounted”更改为 true:

mounted() {
    this.$emit('isChildMounted', true);
  },

但是if (this.childMounted)仍然为假。那么如果子组件已挂载,如何检查父组件呢?

P粉401527045P粉401527045338 天前433

全部回复(1)我来回复

  • P粉826283529

    P粉8262835292023-12-27 12:33:19

    您可以在父组件的子组件上添加侦听器。它看起来像这样:

    Vue3
          <Component
            @vnodeMounted="handleMounted"
          />
    
    Vue2
          <Component
             @hook:mounted="handleMounted"
          />
    

    您可以将钩子名称替换为您想要监听的生命周期名称!我想它应该很少使用,因为它没有出现在文档中,因此是一个内部 API,注定不能直接使用。

    来源:

    回复
    0
  • 取消回复