加载页面执行步骤
1、父组件:beforeCreate -> created -> beforeMount
2、子组件:beforeCreate -> created -> beforeMount -> mounted
3、父组件:mounted
销毁组件执行步骤
1、父组件:beforeDestroy
2、子组件:beforeDestroy
3、子组件:destroyed
2、父组件:destroyed
验证效果(加载页面执行步骤)
index.vue
<template>
<!-- 首页 -->
<div class="views__home">
<sub-model></sub-model>
</div>
</template>
<script>
import SubModel from './sub-model.vue'; // 子组件
export default {
components: {
SubModel
},
beforeCreate() {
console.log('父组件', 'beforeCreate');
},
created() {
console.log('父组件', 'created');
},
beforeMount() {
console.log('父组件', 'beforeMount');
},
mounted() {
console.log('父组件', 'mounted');
}
};
</script>
<style lang="less" scoped></style>
sub-model.vue
<template>
<!-- 子组件 -->
<div class="views__home__sub-model">
</div>
</template>
<script>
export default {
beforeCreate() {
console.log('子组件', 'beforeCreate');
},
created() {
console.log('子组件', 'created');
},
beforeMount() {
console.log('子组件', 'beforeMount');
},
mounted() {
console.log('子组件', 'mounted');
}
};
</script>
<style lang="less" scoped></style>
打印结果
![abaa793f3a8e5f5fd80314eaa8e6aa1e.png](https://i-blog.csdnimg.cn/blog_migrate/c345a3673a628c06e1e598a40f93b82e.jpeg)
验证效果(销毁组件执行步骤)
index.vue
<template>
<!-- 首页 -->
<div class="views__home">
<sub-model></sub-model>
</div>
</template>
<script>
import SubModel from './sub-model.vue'; // 子组件
export default {
components: {
SubModel
},
beforeDestroy() {
console.log('父组件', 'beforeDestroy');
},
destroyed() {
console.log('父组件', 'destroyed');
}
};
</script>
<style lang="less" scoped></style>
sub-model.vue
<template>
<!-- 子组件 -->
<div class="views__home__sub-model">
</div>
</template>
<script>
export default {
beforeDestroy() {
console.log('子组件', 'beforeDestroy');
},
destroyed() {
console.log('子组件', 'destroyed');
}
};
</script>
<style lang="less" scoped></style>
打印结果
![e52ce20180c7180633f1dd00308958d1.png](https://i-blog.csdnimg.cn/blog_migrate/4899731295b2da5322dc1441fa50f29d.png)