Vue.js:页面Page和组件Component生命周期执行的先后顺序

简介: Vue.js:页面Page和组件Component生命周期执行的先后顺序

image.png

image.png

image.png

页面


<template>
  <div class="">
    <TestComponent></TestComponent>
  </div>
</template>
<script>
// created at 2022-03-02
import TestComponent from './test-component.vue';
export default {
  name: 'index',
  components: {
    TestComponent,
  },
  beforeCreate() {
    console.log('page beforeCreate');
  },
  created() {
    console.log('page created');
  },
  beforeMount() {
    console.log('page beforeMount');
  },
  mounted() {
    console.log('page mounted');
  },
  beforeUpdate() {
    console.log('page beforeUpdate');
  },
  updated() {
    console.log('page updated');
  },
  activated() {
    console.log('page activated');
  },
  deactivated() {
    console.log('page deactivated');
  },
  beforeDestroy() {
    console.log('page beforeDestroy');
  },
  destroyed() {
    console.log('page destroyed');
  },
  errorCaptured() {
    console.log('page errorCaptured');
  },
};
</script>
<style lang="less">
</style>
<style lang="less" scoped>
</style>

组件


<template>
  <div class="">
  </div>
</template>
<script>
// created at 2022-03-02
export default {
  name: 'test-component',
  beforeCreate() {
    console.log('component beforeCreate');
  },
  created() {
    console.log('component created');
  },
  beforeMount() {
    console.log('component beforeMount');
  },
  mounted() {
    console.log('component mounted');
  },
  beforeUpdate() {
    console.log('component beforeUpdate');
  },
  updated() {
    console.log('component updated');
  },
  activated() {
    console.log('component activated');
  },
  deactivated() {
    console.log('component deactivated');
  },
  beforeDestroy() {
    console.log('component beforeDestroy');
  },
  destroyed() {
    console.log('component destroyed');
  },
  errorCaptured() {
    console.log('component errorCaptured');
  },
};
</script>
<style lang="less">
</style>
<style lang="less" scoped>
</style>

输出结果


page beforeCreate
page created
page beforeMount
component beforeCreate
component created
component beforeMount
component mounted
page mounted

总体逻辑:


先创建父组件,再创建子组件,挂载子组件到父组件上

相关文章
|
17天前
|
资源调度 JavaScript API
vue3封装城市联动组件
vue3封装城市联动组件
|
20天前
|
JavaScript 前端开发 开发者
哇塞!Vue.js 与 Web Components 携手,掀起前端组件复用风暴,震撼你的开发世界!
【8月更文挑战第30天】这段内容介绍了Vue.js和Web Components在前端开发中的优势及二者结合的可能性。Vue.js提供高效简洁的组件化开发,单个组件包含模板、脚本和样式,方便构建复杂用户界面。Web Components作为新兴技术标准,利用自定义元素、Shadow DOM等技术创建封装性强的自定义HTML元素,实现跨框架复用。结合二者,不仅增强了Web Components的逻辑和交互功能,还实现了Vue.js组件在不同框架中的复用,提高了开发效率和可维护性。未来前端开发中,这种结合将大有可为。
61 0
|
9天前
|
JavaScript 前端开发
js怎么定位不同的页面元素
在JavaScript中,有多种方法定位和选择页面元素。
|
17天前
|
存储 JavaScript
vue组件的五种传值方法(父子\兄弟\跨组件)
vue组件的五种传值方法(父子\兄弟\跨组件)
|
5天前
|
JavaScript
Vue组件传值异步问题--子组件拿到数据较慢
Vue组件传值异步问题--子组件拿到数据较慢
10 0
|
19天前
|
JavaScript 前端开发
|
19天前
|
Android开发 iOS开发 C#
Xamarin:用C#打造跨平台移动应用的终极利器——从零开始构建你的第一个iOS与Android通用App,体验前所未有的高效与便捷开发之旅
【8月更文挑战第31天】Xamarin 是一个强大的框架,允许开发者使用单一的 C# 代码库构建高性能的原生移动应用,支持 iOS、Android 和 Windows 平台。作为微软的一部分,Xamarin 充分利用了 .NET 框架的强大功能,提供了丰富的 API 和工具集,简化了跨平台移动应用开发。本文通过一个简单的示例应用介绍了如何使用 Xamarin.Forms 快速创建跨平台应用,包括设置开发环境、定义用户界面和实现按钮点击事件处理逻辑。这个示例展示了 Xamarin.Forms 的基本功能,帮助开发者提高开发效率并实现一致的用户体验。
42 0
|
20天前
|
JavaScript 开发者
揭秘Vue.js生命周期钩子:它们是如何掌控组件的生与死?
【8月更文挑战第30天】Vue.js 的生命周期钩子是开发者必须掌握的关键概念,它涵盖了组件从创建、挂载、更新到销毁的整个过程,提供了在特定时机操作DOM、获取数据或执行逻辑的能力。从 `beforeCreate` 到 `unmounted`,每个阶段都有特定的任务:如 `created` 适合异步数据获取,`mounted` 用于DOM操作,而 `beforeUnmount` 则用于清理资源。
13 0
|
20天前
|
JavaScript 前端开发
揭秘Vue.js组件魔法:如何轻松驾驭前端代码,让维护变得轻而易举?
【8月更文挑战第30天】本文探讨了如何利用Vue.js的组件化开发提升前端代码的可维护性。组件化开发将复杂页面拆分为独立、可复用的组件,提高开发效率和代码可维护性。Vue.js支持全局及局部组件注册,并提供了多种组件间通信方式如props、事件等。通过示例展示了组件定义、数据传递及复用组合的方法,强调了组件化开发在实际项目中的重要性。
13 0
|
2月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
70 2