Vue生命周期详解学习笔记

article/2025/9/1 14:48:03

生命周期

  1. 生命周期又名生命周期回调函数,生命周期函数,生命周期钩子。
  2. 生命周期是Vue在关键时刻帮我们调用的一些特殊名称的函数。
  3. 生命周期函数的名字不可更改,但函数的具体内容是程序员根据需求编写的。
  4. 生命周期中的this指向vm或组件实例对象。

钩子函数

钩子函数用来描述Vue实例从创建到销毁整个生命周期。
在这里插入图片描述

八大钩子数分别是:

beforeCreate,created,beforeMount,mounted(挂载),beforeUpdate,updated(更新),beforeDestory,destoryed(销毁)

实例创建

            beforeCreate() {console.log('beforeCreate')console.log(this);//vm},created() {console.log('created')},
  • beforeCreate前的init:初始化:生命周期、事件,但数据代理还未开始
    data:{n:1},vm._data和vm.n都不存在。
  • beforeCreate:此时,无法通过vm访问到data中的数据、methods中的方法。
     beforeCreate() {console.log('beforeCreate')console.log(this);//vmdebugger;//只分析到这里代码停到这里},
    
  • beforeCreate之后的init:数据监测,数据代理。
  • created:此时,可以通过vm访问到data中的数据,methods中配置的方法。

页面挂载

 beforeMount() {console.log('beforeMount');console.log(this);//vm// debugger;//只分析到这里代码停到这里},// vue完成模板的解析并把初始的真实DOM元素放入页面后(挂载完毕)调用mountedmounted() {console.log('mounted', this.$el instanceof HTMLElement)//mounted 是真实dom},
  • 下一阶段,Vue开始解析模板,生成虚拟DOM(内存中),页面还不能显示解析好的内容。
    有el选项,无template选项,解析el的外部html做为模板,检测div是否属于模板,可以给div绑定:x=“n”,可以通过查看是否解析来看。
    在这里插入图片描述

无el选项,当vm.$mounted(el)被调用,检测是否有template选项,进入下一步。
有el选项,有template选项,解析template进入渲染函数
在这里插入图片描述

将html内容放入单引号不换行不报错,或者换行将单引号换成反引号,就不会报错。

在这里插入图片描述

根据报错的提示,一个template只能有一个根元素,所以需要将内容用div包裹.这样就不报错了,但是这样的话div的root类名就不存在了。

  • beforeMount页面呈现的是未经Vue编译的DOM结构;所有对DOM的操作,最终都不奏效。
    beforeMount() {console.log('beforeMount');console.log(this);//vmdebugger;//只分析到这里代码停到这里},
    
    如果没有debugger断点,控制台都不会显示操作DOM的结果。
  • 将内存中的虚拟DOM转为真实DOM插入页面(将vm$el替换el)
  • mounted:此时页面中呈现的是经过Vue编译的DOM,对Dom操作均有效(尽可能避免)。至此初始化过程结束,一般在此进行:开启定时器、发送网络请求、订阅消息、绑定自定义事件、等初始化操作。

数据更新

beforeUpdate() {console.log('beforeUpdate')console.log(this.n)// debugger;},updated() {console.log('updated')console.log(this.n)// debugger;},
  • mounted挂载后,当数据发生改变会先调用beforeUpdate,此时,数据是新的,页面是旧的。页面尚未和数据保持同步。根据新数据,生成新的虚拟DOM,随后与旧的虚拟DOM进行比较,最终完成页面更新,即:完成了Model->View的更新,更新完后,页面和数据保持同步,数据是新的,页面也是新的。

实例销毁

            beforeDestroy() {console.log('beforeDestroy')},destroyed() {console.log('destroyed')},
  • 当vm.$destroy()调用时,beforeDestroy:此时,vm中所有的:data、methods、指令等等,都处于可用状态,马上要执行销毁过程,一般在此阶段:关闭定时器,取消订阅消息,解绑自定义事件等收尾操作。

  • vm.$destroy()完全销毁一个实例,清理它与其它组件实例的连接,解绑它的全部指令及事件监听器(自定义事件)。
    在这里插入图片描述

    console.log是原生的do事件不是自定义事件所以销毁后还是存在的

总结

常用的生命周期钩子:

  1. mounted,发送ajax请求,启动定时器,绑定自定义事件,订阅消息等【初始化操作】。
  2. beforeDestroy:清除定时器,解绑自定义事件、取消订阅消息等【收尾工作】。

关于销毁Vue实例

  1. 销毁后借助Vue开发者工具看不到任何信息。
  2. 销毁后自定义事件会失效,但原生DOM事件依然有效。
  3. 一般不会再beforeDestroy操作数据,因为即使操作数据,也不会再触发更新流程了。

http://chatgpt.dhexx.cn/article/51SpWMyE.shtml

相关文章

Vue的生命周期详解,一文带你弄懂Vue的生命周期

大家好,我是Ned👀,一个刚刚入门前端未满两年的大三小学生🌹 未来路还长🎉, 一起努力加油吧❤~ 前言 我记得尤大曾经说过,你看Vue源码干嘛?你使用Vue又不需要它的源码,你只需要会用就…

Vue系列之vue生命周期详解

文章の目录 1、什么是 vue 生命周期2、生命周期钩子函数2.1、beforeCreate(创建前)2.2、created(创建后)2.3、beforeMount(挂载前)2.4、mounted(挂载后)2.5、beforeUpdate&#xff0…

Vue的生命周期详解(简单易懂)

一、定义 Vue的生命周期就是实例从创建到销毁的一个过程,即从创建、初始化数据、编译模板、挂载Dom->渲染、更新->渲染,卸载等一系列的过程。 写代码时注意: Vue的生命周期钩子函数会自动绑定this上下文到实例中,这意味着…

【Vue】 Vue生命周期详解

每一个vue实例从创建到销毁的过程,就是这个vue实例的生命周期。在这个过程中,它经历了从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、卸载等一系列过程。 通过这张流程图已经可以清晰的看到Vue整个生命周期的过程 beforeCreate( 创建前…

Vue极简教程,生命周期详解

Vue | 渐进式 | JS框架 | 极简教程 生命周期详解

vue实例的生命周期详解

Vue实例的生命周期 简介 此篇文章说的是最简单的单个VUE组件的生命周期。 官网中的长图诠释了Vue实例从创建,运行到销毁的整个过程。从vue实例的创建,运行,销毁期间,总是伴随着各种各样的事件,这些事件统称为生命周期…

【Vue生命周期详解】

细谈Vue声明周期 什么是生命周期?Vue的生命周期beforeCreate( 创建前 ):created ( 创建后 ):beforeMount:mounted:beforeUpdate:updated:beforeDestroy:destroyed&#x…

VUE的十一个生命周期详解

生命周期可以分为三个阶段: 挂载阶段 更新阶段 销毁阶段 创建前:beforeCreate() 无法获取data数据 创建后:created() 可以获取data数据和操作methods 但不能使用DOM 挂载前:beforeMount() 挂载后:mounted() …

Vue生命周期和钩子函数详解

Vue生命周期和钩子函数详解 Vue生命周期介绍: 组件每个阶段它的内部构造是不一样的,所以一般特定的钩子做特定的事,比如Ajax获取数据就可以在mounted阶段。从Vue实例被创建开始到该实例最终被销毁的整个过程叫做VUE的生命周期,在…

vue生命周期详解(一)----创建期间的生命周期函数

文章目录 vue生命周期一、beforeCreate1.在beforeCreate函数里面调用data里面的属性2.在beforeCreate钩子函数里面调用methods里面的方法 二、created生命周期钩子函数1.在created钩子函数里面调用methods里面的方法和data里面的属性 三、beforeMount和mountedbeforeMount生命周…

Vue中组件生命周期过程详解

一、什么是生命周期? Vue中的生命周期是指:组件从创建到销毁的一个过程,在这过程中,我们在每个特定阶段会触发一些方法(这些方法具备一些功能),我们给这些方法起了名字叫做(生命周期钩子函数/组…

vue生命周期详解和使用场景整理

我们从vue的原理上来理解一下vue的生命周期,以及使用场景(使用场景应该试很多新手同学比较懵的地方),建议有条件的同学可以看一下vue源码,更能深入理解。 不看源码的同学也没有关系,我们从业务场景切入&…

vue生命周期钩子函数详解

先放一张官网生命周期图: vue有8种生命周期函数: 钩子函数触发的行为在此阶段可以做的事情beforeCreadtedvue实例的挂载元素$el和数据对象data都为undefined,还未初始化。加loading事件createdvue实例的数据对象data有了,$el还…

Vue的生命周期详解

Vue的生命周期 Vue的生命周期就是vue实例从创建到销毁的全过程,也就是 new Vue() 开始就是vue生命周期的开始。Vue实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载Dom-->渲染、更新-->渲染、卸载 等一系列过程&#xff0…

Vue的生命周期函数详解

Vue有一个完整的生命周期,也就是从开始创建,初始化创建,编译模板,挂载Dom,渲染–>更新–>渲染,销毁等一系列过程,我们称之为Vue的生命周期。通俗的说就是Vue实例从创建到销毁的过程&#…

vue 生命周期 详解

详解Vue Lifecycle 先来看看vue官网对vue生命周期的介绍 Vue实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、销毁等一系列过程,我们称这是Vue的生命周期。通俗说就是Vue实例从创建到销毁的过程&#xff…

【vue2】vue生命周期的理解

🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:vue生命周期的介绍、vue生命周期钩子函数详解,vue生命周期的执行顺序 目录 …

Vue生命周期详解(图解)

程序员学习必备书籍推荐: 首先我们对Vue生命周期官方给出的图进行详细解释 vue生命周期详细图解 什么是生命周期? 简而言之:从生到死的过程,从Vue实例创建-运行-销毁的过程 Vue实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载…

vue的生命周期详解:从入门到精通

Vue生命周期 在学习vue的过程中,vue的生命周期可谓是重中之重,必学的一部分。 每个 Vue 实例在被创建时都要经过一系列的初始化过程,例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过…

Vue生命周期(图示详解)

首先让我们先来看一张图示,图片很长不要紧,我们一步一步慢慢来看。 Vue官方生命周期图示 一旦创建Vue实例,就会产生很多个环节。 💦把整张图片拆分成一小块一小块的去看,首先看第一个部分: 💦In…