跳转到内容

父组件监听子组件生命周期

刀刀

6/17/2025

0 字

0 分钟

父组件监听子组件的生命周期, Vue2 可以使用 @hook 事件,@hook 事件是 Vue2.4.0+ 新增的一个特性,它允许开发者监听组件内生命周期钩子。

vue
<template>
  <Son v-if="!flag" @hook:mounted="childMounted" @hook:unmount="childUnMount"></Son>
</template>

<script setup>
function childMounted() {
  console.log('子组件已挂载')
}

function childUnMount() {
  console.log('子组件已卸载')
}
</script>

但如果是 Vue3,则无法直接监听子组件的生命周期,因为 Vue3 中没有 @hook 事件。需要修改为 @vue 事件。

vue
<template>
  <Son v-if="!flag" @vue:mounted="childMounted" @vue:unmount="childUnMount"></Son>
</template>

<script setup>
function childMounted() {
  console.log('子组件已挂载')
}

function childUnMount() {
  console.log('子组件已卸载')
}
</script>

这个方法不仅可以监听子组件的生命周期,还能监听子节点的生命周期,即普通的 div 也能监听到。