Vue.js:有没有办法知道组件实例何时被挂载?

Jul*_*nec 6 vue.js vuejs2

是否有一个布尔值我们可以在每个组件实例中访问以了解组件何时安装?

就像是:

<template>
  <div>
    <span v-if="$mounted">I am mounted</span>
    <span v-if="$created">I am created</span>
    <span>Called before created and mounted</span>
  </div>
</template>
Run Code Online (Sandbox Code Playgroud)

rol*_*oli 13

2020 年更新

Vue.js 有一个未公开的功能,您可以在其中知道组件的生命周期钩子何时执行:Source。

语法如下:

<ChildComponent @hook:lifecycleHookName="callAMethod" />
Run Code Online (Sandbox Code Playgroud)

例子:

如何知道子组件何时被挂载:

<ChildComponent @hook:mounted="componentMountedDoSomething" />
Run Code Online (Sandbox Code Playgroud)

如何知道子组件何时被创建:

<ChildComponent @hook:created="componentCreatedDoSomething" />
Run Code Online (Sandbox Code Playgroud)

<template>
  <div>
    <span v-if="mounted">I am mounted</span>
    <span v-if="created">I am created</span>
    <span>Called before created and mounted</span>
  </div>
</template>
Run Code Online (Sandbox Code Playgroud)

和脚本:

export default {
  data: () => ({
    created: false,
    mounted: false
  }),
  created () {
    this.created = true
  },
  mounted() {
    this.mounted = true
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这就是我的想法。我希望 Vue 有一个可以用来避免这些行的公共布尔值。:) (2认同)