在Vue2中,父子组件之间存在一些生命周期钩子函数,它们分别是:
-
父组件:
- beforeCreate(创建前):在组件实例创建之前被调用,此时无法访问到组件的data、props、methods等选项。
- created(创建后):在组件实例被创建之后被调用,在这个阶段可以访问到data、props、methods等选项,但是无法获取到DOM元素。
- beforeMount(挂载前):在组件挂载之前被调用,此时模板已经编译完成,但是尚未将DOM元素替换为组件实例。
- mounted(挂载后):在组件挂载之后被调用,此时组件已经被渲染到页面上,可以在这里操作DOM元素。
- beforeUpdate(更新前):在组件更新之前被调用,此时组件的data发生了变化,但是DOM尚未更新。
- updated(更新后):在组件更新之后被调用,此时组件的data已经更新,并且DOM也已经重新渲染。
- beforeDestroy(销毁前):在组件销毁之前被调用,此时组件尚未被销毁,仍然可以访问到组件的data、props等选项。
- destroyed(销毁后):在组件销毁之后被调用,此时组件已经被销毁,无法再访问到组件的data、props等选项。
-
子组件:
- beforeCreate(创建前):同父组件。
- created(创建后):同父组件。
- beforeMount(挂载前):同父组件。
- mounted(挂载后):同父组件。
- beforeUpdate(更新前):同父组件。
- updated(更新后):同父组件。
- beforeDestroy(销毁前):同父组件。
- destroyed(销毁后):同父组件。
需要注意的是,在父组件渲染过程中,如果子组件也存在,则子组件的生命周期函数会在父组件对应的生命周期函数之后被调用。而在子组件销毁的过程中,子组件的生命周期函数会在父组件对应的生命周期函数之前被调用。