Vue组件生命周期三个阶段全面总结讲解

Vue组件生命周期三个阶段全面总结讲解

Vue组件生命周期分为三个阶段,分别为创建(Creation)、更新(Update)和销毁(Deletion)。对于一个Vue组件而言,当组件被创建后,Vue会自动执行一系列的生命周期函数,这些函数将会对组件进行一些操作,让组件可以正确地渲染出来,并完成组件的销毁。在接下来的内容中,我们将详细讲解这三个阶段以及每个阶段中调用的生命周期函数及其作用。

创建阶段

创建阶段是指当组件被创建时,Vue会自动调用一系列的生命周期函数,这些函数将会对组件进行一些初始化的操作,让组件可以正确地渲染出来。

  • beforeCreate:在实例初始化之后、数据观测(data observation)和event/watcher事件配置之前被调用。在这个阶段,组件实例还没有初始化完成,组件中的data和methods等都无法访问。
  • created:在实例创建完成后被立即调用。在这个阶段,组件实例已经完成了初始化,但是组件还没有被挂载到页面上。
  • beforeMount:在挂载开始之前被调用。在这个阶段,组件实例已经被创建出来,但还没有被挂载到页面上。
  • mounted:在实例挂载之后被调用。在这个阶段,组件已经被挂载到页面上,DOM元素已经可以访问。

示例:

<template>
  <div>
    <h1>{{message}}</h1>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: "Hello Vue.js"
    }
  },
  beforeCreate() {
    console.log("beforeCreate: 组件实例创建之前")
  },
  created() {
    console.log("created:组件实例创建之后")
  },
  beforeMount() {
    console.log("beforeMount:组件挂载之前")
  },
  mounted() {
    console.log("mounted:组件已经挂载到页面上")
  }
}
</script>

执行以上代码,控制台将输出:

beforeCreate: 组件实例创建之前
created:组件实例创建之后
beforeMount:组件挂载之前
mounted:组件已经挂载到页面上

更新阶段

更新阶段是指当组件的数据发生变化时,Vue会自动更新视图,这个时候Vue也会自动执行一系列的生命周期函数来更新组件的状态、渲染UI等。

  • beforeUpdate:在DOM重新渲染之前被调用。在这个阶段,组件已经准备好要更新DOM了,但是DOM还没有重新渲染。
  • updated:在DOM重新渲染和更新完毕之后立即被调用。在这个阶段,组件已经完成了DOM的更新,并且可以访问更新后的DOM元素。

示例:

<template>
  <div>
    <h1>{{message}}</h1>
    <button @click="changeMessage">更改消息</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: "Hello Vue.js"
    }
  },
  methods: {
    changeMessage() {
      this.message = "Hello World"
    }
  },
  beforeUpdate() {
    console.log("beforeUpdate: 组件即将更新")
  },
  updated() {
    console.log("updated:组件已经更新完毕")
  }
}
</script>

执行以上代码,当我们点击“更改消息”按钮时,控制台将输出:

beforeUpdate: 组件即将更新
updated:组件已经更新完毕

销毁阶段

销毁阶段是指当组件被销毁时,Vue会自动执行一系列的生命周期函数来清理内存,预防内存泄漏等问题。

  • beforeDestroy:在实例销毁之前调用。在这个阶段,组件实例还没有被销毁,但是已经开始销毁了,各种事件监听会被移除,定时器会被取消等操作也将会在这个阶段进行。
  • destroyed:在实例销毁之后调用。在这个阶段,组件已经销毁了,无法访问组件实例了。

示例:

<template>
  <div>
    <h1>{{message}}</h1>
    <button @click="destroy">销毁组件</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: "Hello Vue.js"
    }
  },
  methods: {
    destroy() {
      this.$destroy()
    }
  },
  beforeDestroy() {
    console.log("beforeDestroy: 组件即将销毁")
  },
  destroyed() {
    console.log("destroyed:组件已经销毁")
  }
}
</script>

执行以上代码,当我们点击“销毁组件”按钮时,控制台将输出:

beforeDestroy: 组件即将销毁
destroyed:组件已经销毁

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue组件生命周期三个阶段全面总结讲解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 详解给Vue2路由导航钩子和axios拦截器做个封装

    让我们来详细讲解“详解给Vue2路由导航钩子和axios拦截器做个封装”的攻略。 1. Vue2路由导航钩子封装 路由导航钩子是Vue Router 提供的一种非常有用的功能,它允许我们在路由跳转时执行一些额外的逻辑,例如验证用户是否登录、切换页面时的动画效果等。我们可以使用全局导航钩子或者单独路由的导航钩子。这里我们介绍一下全局导航钩子的封装: impor…

    Vue 2023年5月28日
    00
  • Vue render深入开发讲解

    下面我将详细介绍“Vue render深入开发讲解”的完整攻略。 什么是Vue的render函数? Vue的render函数是用于构建虚拟DOM的函数。它接收一个createElement函数作为参数,然后利用这个函数构建一个虚拟DOM并返回。这个虚拟DOM会作为Vue的模板编译结果,最终渲染到页面上。 render函数的基本用法 render函数的基本用法…

    Vue 2023年5月28日
    00
  • vue3中的透传attributes教程示例详解

    下面是关于“vue3中的透传attributes教程示例详解”的完整攻略。 什么是attributes 在Vue.js中,组件是可拆分复用的代码块,但每个组件都有自己的特定属性。对于父组件传递到子组件的所有属性,Vue.js 2.x 中都会绑定到子组件实例上的 $attrs 对象上。这种绑定方式在一些情况下会有一些不良影响,例如难以调试错误、性能瓶颈等。而V…

    Vue 2023年5月28日
    00
  • vue props type设置多个类型

    Vue的props允许我们设置属性的类型,并且支持一次设置多个类型。下面是设置vue props多个类型的攻略和示例: 设置多个类型 在设置属性类型时,我们可以将其设置为多个类型,可选的类型有:String、Number、Boolean、Array、Object、Date、Function、Symbol、以及自定义构造函数等。可以通过Vue提供的Array类…

    Vue 2023年5月27日
    00
  • vue之将echart封装为组件

    封装echarts为Vue组件并不难,只需要遵循以下步骤即可。 步骤1:安装echarts和vue-echarts 使用npm安装echarts和vue-echarts依赖: npm install echarts vue-echarts –save 步骤2:创建一个Echarts.vue组件 在src/components目录下创建一个Echarts.v…

    Vue 2023年5月28日
    00
  • 浅谈Vuex注入Vue生命周期的过程

    下面我将为大家详细讲解 “浅谈Vuex注入Vue生命周期的过程”的完整攻略。 什么是Vuex Vue.js 是一个轻量级的前端框架,但是当我们需要处理大量的异步请求,或者有大量的组件需要共享数据时,Vue.js 的数据响应式就会显得过于简单。这时我们就需要用到 Vuex。 Vuex 是一个专为 Vue.js 设计的应用状态管理库。它采用集中式存储管理应用的所…

    Vue 2023年5月29日
    00
  • Vue内部渲染视图的方法

    下面是关于 Vue 内部渲染视图的方法的详细攻略。 什么是 Vue 内部渲染视图的方法 在 Vue 中,当数据发生变化时,会根据使用的渲染方法重新渲染视图,从而使视图与数据状态保持同步。Vue 内部提供了多种渲染视图的方法,包括基于模板的渲染、基于 JSX 的渲染、手动刷新等。 Vue 模板渲染 Vue 的模板渲染是利用 HTML 模板代码和 Vue 组件选…

    Vue 2023年5月27日
    00
  • 浅谈Vue数据响应思路之数组

    浅谈Vue数据响应思路之数组 背景 在Vue中,为了能在数据改变时自动更新视图,采用了数据劫持和观察者模式相结合的方式进行响应式数据的实现。但是针对不同的数据类型,具体的实现方式会有所不同。本篇文章将深入浅出地讲解Vue数据响应思路之数组的实现原理。 数组数据响应的实现原理 Vue中对于数组的数据响应实现依赖于ES6中新增的Proxy方法以及definePr…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部