vue2 监听父级监听子组件的生命周期

本文介绍了一种在Vue中,父组件如何通过`@hook:updated`监听子组件特定生命周期的方法。此技术允许父组件在子组件更新后执行相应的操作,扩展了组件间的交互可能性。
<template>
  <child-component @hook:updated="onUpdated">
</template>

采用 @hook:生命周期名称 的方式,实现父级监听子组件的生命周期。

### Vue 2 子组件生命周期函数详解 在 Vue 2 中,子组件生命周期与其组件相似,但有一些特定的行为和触发顺序需要注意。以下是详细的生命周期钩子及其说明: #### 创建阶段 - **beforeCreate**: 实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用[^3]。 - **created**: 完成 data 和 methods 的初始化后立即执行此钩子,在这个阶段可以访问到 this 上的数据。 #### 模板编译与挂载前 - **beforeMount**: 在挂载开始之前被调用:相关的 render 函数首次被调用。 #### DOM 渲染完成后的回调 - **mounted**: el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。如果根实例挂载到了一个文档内的元素上,则 mounted 阶段会在页面加载完成后立刻启动。 #### 更新周期 - **beforeUpdate**: 数据更新时调用,发生在虚拟 DOM 打补丁之前。这里适合在更新之前访问现有的 DOM,比如手动移除已添加的事件监听器。 - **updated**: 由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。当这个钩子被调用时,组件 DOM 已经更新,所以现在可以执行依赖于 DOM 的操作。 #### 销毁过程 - **beforeDestroy**: 实例销毁之前调用。在这一步,实例仍然完全可用。 - **destroyed**: 当实例被销毁后调用。此时所有的事件监听器已经被清除,所有的子组件也都已经被卸载。 对于子组件来说,除了上述标准的生命周期外,还有两个特别重要的钩子: - **activated** 和 **deactivated**, 这些只适用于 `<keep-alive>` 包裹下的组件。`activated` 是激活状态进入视图时调用;而 `deactivated` 则是在离开活动状态时调用。 下面是一个简单的例子来展示如何在一个子组件中定义并使用这些生命周期方法: ```javascript // ChildComponent.vue 文件内容如下所示 export default { name: 'ChildComponent', beforeCreate() { console.log('child component - beforeCreate'); }, created() { console.log('child component - created'); }, beforeMount() { console.log('child component - beforeMount'); }, mounted() { console.log('child component - mounted'); }, beforeUpdate() { console.log('child component - beforeUpdate'); }, updated() { console.log('child component - updated'); }, activated() { console.log('child component - activated'); }, deactivated() { console.log('child component - deactivated'); }, beforeDestroy() { console.log('child component - beforeDestroy'); }, destroyed() { console.log('child component - destroyed'); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值