vue实例的生命周期详解

article/2025/9/1 14:44:08

Vue实例的生命周期

简介

此篇文章说的是最简单的单个VUE组件的生命周期。
官网中的长图诠释了Vue实例从创建,运行到销毁的整个过程。从vue实例的创建,运行,销毁期间,总是伴随着各种各样的事件,这些事件统称为生命周期
在这里插入图片描述
为了便于理解,再代码中创建vue实例,并在每个钩子函数中console出每个生命周期的el,data和message。此段代码可以直接复制。

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title></title><script type="text/javascript" src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>
</head>
<body><div id="app"><p>{{ message }}</p><h1>{{message + '这是在outer HTML中的'}}</h1>
</div><script type="text/javascript">var app = new Vue({el: '#app',data: {message : "xuxiao is boy"},template:"<h1>{{message +'这是在template中的'}}</h1>",// render: function(createElement) {//     return createElement('h1', 'this is createElement')// },beforeCreate: function () {console.group('beforeCreate 创建前状态===============》');console.log("%c%s", "color:red" , "el     : " + this.$el); //undefinedconsole.log("%c%s", "color:red","data   : " + this.$data); //undefinedconsole.log("%c%s", "color:red","message: " + this.message)},created: function () {console.group('created 创建完毕状态===============》');console.log("%c%s", "color:red","el     : " + this.$el); //undefinedconsole.log("%c%s", "color:red","data   : " + this.$data); //已被初始化console.log("%c%s", "color:red","message: " + this.message); //已被初始化},beforeMount: function () {console.group('beforeMount 挂载前状态===============》');console.log("%c%s", "color:red","el     : " + (this.$el)); //已被初始化console.log(this.$el);console.log("%c%s", "color:red","data   : " + this.$data); //已被初始化console.log("%c%s", "color:red","message: " + this.message); //已被初始化},mounted: function () {console.group('mounted 挂载结束状态===============》');console.log("%c%s", "color:red","el     : " + this.$el); //已被初始化console.log(this.$el);console.log("%c%s", "color:red","data   : " + this.$data); //已被初始化console.log("%c%s", "color:red","message: " + this.message); //已被初始化},beforeUpdate: function () {console.group('beforeUpdate 更新前状态===============》');console.log("%c%s", "color:red","el     : " + this.$el);console.log(this.$el);console.log("%c%s", "color:red","data   : " + this.$data);console.log("%c%s", "color:red","message: " + this.message);},updated: function () {console.group('updated 更新完成状态===============》');console.log("%c%s", "color:red","el     : " + this.$el);console.log(this.$el);console.log("%c%s", "color:red","data   : " + this.$data);console.log("%c%s", "color:red","message: " + this.message);},beforeDestroy: function () {console.group('beforeDestroy 销毁前状态===============》');console.log("%c%s", "color:red","el     : " + this.$el);console.log(this.$el);console.log("%c%s", "color:red","data   : " + this.$data);console.log("%c%s", "color:red","message: " + this.message);},destroyed: function () {console.group('destroyed 销毁完成状态===============》');console.log("%c%s", "color:red","el     : " + this.$el);console.log(this.$el);console.log("%c%s", "color:red","data   : " + this.$data);console.log("%c%s", "color:red","message: " + this.message)}})
</script>
</body>
</html>

输出结果分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

详细分析流程图

通过代码大概了解整个流程之后再回头拆开来看官网流程图。生命周期可以分为四个阶段,初始化阶段,模板编译阶段,挂在阶段,已挂载和卸载阶段。

初始化阶段

在这里插入图片描述

模板编译阶段

在这里插入图片描述
这块比较复杂,观察刚才那段代码前面部分

   var app = new Vue({el: '#app',data: {message : "xuxiao is boy"},template:"<h1>{{message +'这是在template中的'}}</h1>",// render: function(createElement) {//     return createElement('h1', 'this is createElement')// },

首先会判断有没有el选项,如果有就继续,没有就停止生命周期。随后判断是否有template选项(此段代码中有),于是就编译template选项为render function。运行代码得到网页如下
在这里插入图片描述
若没有template选项,就把outerHTML当做template编译为render function。(把此段代码中的template选项注释掉),得到网页如下
在这里插入图片描述
这是把outerHTML当作模板编译了

<div id="app"><p>{{ message }}</p><h1>{{message + '这是在outer HTML中的'}}</h1>
</div>

如果把实例中render function选项的注释去掉,则直接用render function里的,得到网页如下
在这里插入图片描述
所以按优先级来说 render function>template>outerHTML

挂载阶段

在这里插入图片描述

已挂载和卸载

在这里插入图片描述

具体使用

在这里插入图片描述
在这里插入图片描述
平时用的比较多的是mouted和created
在这里插入图片描述
因为在created时还没完成挂载,无法通过id获得DOM元素,所以chart.js里的该操作要使用在mounted下


http://chatgpt.dhexx.cn/article/Zwe2ReDq.shtml

相关文章

【Vue生命周期详解】

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

VUE的十一个生命周期详解

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

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

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

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

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

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

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

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

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

vue生命周期钩子函数详解

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

Vue的生命周期详解

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

Vue的生命周期函数详解

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

vue 生命周期 详解

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

【vue2】vue生命周期的理解

&#x1f973;博 主&#xff1a;初映CY的前说(前端领域) &#x1f31e;个人信条&#xff1a;想要变成得到&#xff0c;中间还有做到&#xff01; &#x1f918;本文核心&#xff1a;vue生命周期的介绍、vue生命周期钩子函数详解&#xff0c;vue生命周期的执行顺序 目录 …

Vue生命周期详解(图解)

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

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

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

Vue生命周期(图示详解)

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

【vue系列-05】vue的生命周期(详解)

深入理解vue的生命周期 一&#xff0c;vue的生命周期1&#xff0c;创建流程1.1&#xff0c;beforeCreate1.2&#xff0c;created 2&#xff0c;挂载流程2.1&#xff0c;beforeMount2.2&#xff0c;mounted 3&#xff0c;更新流程3.1&#xff0c;beforeUpdate3.2&#xff0c;upd…

Vue的生命周期的详解

Vue的生命周期 Vue的生命周期是每个使用Vue框架的前端人员都需要掌握的知识&#xff0c;以此作为记录。 Vue的生命周期就是vue实例从创建到销毁的全过程&#xff0c;也就是new Vue() 开始就是vue生命周期的开始。Vue 实例有⼀个完整的⽣命周期&#xff0c;也就是从开始创建、初…

vue生命周期详解

1. 生命周期 什么是vue的生命周期? 一个组件从 创建 到 销毁 的全过程就是生命周期 Vue的生命周期 2. 钩子函数 vue框架内置函数,伴随着组件的生命周期阶段,自动执行 作用: 特定的时间点,执行特定的操作 使用场景: 组件创建完成完毕后,可在created生命周期函数中发起Ajax请求…

超详细vue生命周期解析(详解)

vue是每一个前端开发人员都绕不过的一个技术&#xff0c;在国内的市场占有量也是非常的大&#xff0c;我们大部分人用着vue, 却不知道他内部其实经历了一些什么。每个生命周期又是什么时候开始执行的。我们今天来详细的看一看 首先&#xff0c;生命周期是个啥&#xff1f; 借用…

Shiro之基本使用

gitee地址&#xff1a;shiro初体验https://gitee.com/qiangning/shiro-learning.git 1.什么是Shiro Apache Shiro是一个强大易用的Java安全框架&#xff0c;提供了认证、授权、加密和会话管理功能&#xff0c;可为任何应用提供安全保障 - 从命令行应用、移动应用到大型网络及企…

Shiro系列-Shiro简介

导语   Apache Shiro是一个Java安全框架&#xff0c;现在在很多的场景下使用Shiro的人越来越多。因为它与Spring Security 相比较来说相对比较简单&#xff0c;从功能上来讲也没有Spring Security那么强大&#xff0c;但是在实际的工作和开发中并不是需要太强大的东西。当然先…