父组件可以监听到子组件的生命周期吗?

687 阅读1分钟

父组件可以监听到子组件的生命周期吗?

比如有父组件 Parent 和子组件 Child,如果父组件监听到子组件挂载mounted就做一些逻辑处理,可以通过以下写法实现:

  • 方法一:使用$emit
// Parent.vue
<Child @mounted="doSomething"/>
    
// Child.vue
mounted() {
  this.$emit("mounted");
}
  • 方法二:使用@hook 以上需要手动通过 $emit 触发父组件的事件,更简单的方式可以在父组件引用子组件时通过@hook来监听即可,如下所示:
//  Parent.vue
<Child @hook:mounted="doSomething" ></Child>

doSomething() {
   console.log('父组件监听到 mounted 钩子函数 ...');
},
    
//  Child.vue
mounted(){
   console.log('子组件触发 mounted 钩子函数 ...');
},    
    
// 以上输出顺序为:
// 子组件触发 mounted 钩子函数 ...
// 父组件监听到 mounted 钩子函数 ...