Vuejs之路之--对实例生命周期的理解

Vue.js的核心概念:如何理解Vue.js的声明式渲染、组件系统、Vue实例、Vue生命周期等核心概念。 介绍Vue.js Vue.js的由来 Vue.js的特点 Vue.js的主要应用场景 Vue的声明式渲染 什么是声明式渲染 Vue如何实现声明式渲染 声明式渲染的优点 Vue的组件系统 什么是组件 如何使用组件 组件的生命周期 组件的通信方式:props、事件、插槽等 Vue实例 创建一个Vue实例 Vue实例的属性和方法 Vue实例的生命周期 Vue的指令系统 Vue内置的指令:v-if、v-for、v-model等 自定义指令 指令的修饰符 Vue的过渡和动画 过渡的原理 使用transition组件创 阅读详情

用Vue框架,熟悉它的生命周期可以让开发更好的进行。

首先先看看官网的图,详细的给出了vue的生命周期:


它可以总共分为8个阶段:

beforeCreate(创建前),

created(创建后),

beforeMount(载入前),

mounted(载入后),

beforeUpdate(更新前),

updated(更新后),

beforeDestroy(销毁前),

destroyed(销毁后)

然后用一个实例的demo 来演示一下具体的效果:

<div id=app>{{a}}</div>

<script>

var myVue = new Vue({          

el: "#app",          

data: {

a: "Vue.js"        

},         

 beforeCreate: function() { 

         console.log("创建前")            

console.log(this.a)            

console.log(this.$el)          

},         

 created: function() {

                console.log("创建之后");            

console.log(this.a)            

console.log(this.$el)          

},         

 beforeMount: function() {            

console.log("mount之前")            

console.log(this.a)            

console.log(this.$el)          

},          

mounted: function() {            

console.log("mount之后")            

console.log(this.a)            

console.log(this.$el)          

},          

beforeUpdate: function() {            

console.log("更新前");            

console.log(this.a)            

console.log(this.$el)          

},          

updated: function() {            

console.log("更新完成");            

console.log(this.a);            

console.log(this.$el)          

},          

beforeDestroy: function() {            

console.log("销毁前");            

console.log(this.a)            

console.log(this.$el)            

console.log(this.$el)          

},          

destroyed: function() {           

console.log("已销毁");          

console.log(this.a)          

console.log(this.$el)          

}   

  });  

</script>

运行后,查看控制台,

得到这个:



然后再methods 里面添加一个change方法:

<div id=app>{{a}}
<button v-on:click="change">change</button>
</div>

点击按钮之后出现的是:


具体代码如下还有个人的理解:

var vm =  new Vue({
	el:"#container",
	data:{
		folder:"Vuejs的生命周期究竟是什么样子?我真的很想知道!"
	},
	methods:{
		changeData:function(){
			this.folder = "马上就知道了",
			this.$el = document.getElementById("dede")
		}
	},
	beforeCreate:function(){
		console.log("创建前")

		console.log(this)/*返回的就是一个实例对象,为什么呢,因为根据官网生命周期图示,
						此时已经完成了Vue实例的初始化工作,this指向的是实例对象本身,所以一定会返回值*/

		console.log(this.folder)/*undefined,这个为啥呢?同样的也是根据官网所给出的生命周期图示,
								 此时还不没监控data属性,所以就更别提里面的值了*/

	},
	created:function(){
		console.log("创建后");
		console.log(this.folder);/*"Vuejs的生命周期究竟是什么样子?我真的很想知道!",因为根据官网生命周期的图
									示,创建完成势力后,此时已经监控到data属性变化了,当然也就返回真值啦*/

		console.log(this.$el)/*undefined,还是同上,在这个阶段,势力还没检测到有没有el属性,所以也就无法识别$el了*/
	},
	beforeMount:function(){
		console.log("mount(挂载)之前");
		console.log(this.folder);/*返回预设值,理由同上*/

		console.log(this.$el)/*挂在开始之前被调用,(顾名思义还没挂在上嘛,当然不知道根元素在哪里,也就也就没法渲染和转译啦)返回真的实例所挂载的dom对象,还是同上,
							因为在这个阶段之前,已经检测到了有el属性所以也就理所当然的返回真值啦。
							但此时返回的还是纯生的DOM对象,{{folder}}并没有被转义,这就更加说明了
							实例还没挂载上呢*/
	},
	mounted:function(){
		console.log("挂载之后");
		console.log(this.folder);/*返回预设值,理由同上*/
		console.log(this.$el)/*挂载之后,才回调用,既然已经挂载上了,那也就知道根元素在哪里了,当然也就能返回正确的值啊*/
	},
	beforeUpdate:function(){
		console.log("更新之前");
		console.log(this.folder);/*数据更新时调用,也就是说这个回到函数的触发是在数据更新的时候运行的,
									在这里就是点击事件发生的时候,因为点击的时候改变了数据的值,但是*/
		console.log(this.$el)/*返回的是新的DOM对象,更新过后的*/
	},
	updated:function(){
		console.log("更新之后");
		console.log(this.folder);
		console.log(this.$el)/*数据更新后调用,由于数据更改导致的虚拟 DOM 重新渲染和打补丁,所以你现在可以执行依赖于 DOM 的操作。然而在大多数情况下,
								你应该避免在此期间更改状态。如果要相应状态改变,通常最好使用计算属性或 watcher 取而代之*/
	},
	beforeDestroy:function(){
		console.log("销毁之前");/*实例销毁之前调用。在这一步,实例仍然完全可用,怎么让实例销毁呢?*/
		console.log(this.folder);
		console.log(this.$el)
	},
	destroyed:function(){
		console.log("销毁之后");/*Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。*/
		console.log(this.folder);
		console.log(this.$el)
	}
})



这就是vue的生命周期,很简单吧。

Vue - 快速入门,这一套就够了!(Vue core + 案例 + 效果演示) 前置条件:掌握 HTML、CSS、JavaScript、AJAX.工具:VsCode.插件:Live Server(浏览器实时预览)Ps:建议都提前下载下来,没网的时候也能用. 阅读详情

相关推荐

Vue,超详细整理,适合新手入门

Vue入门教学笔记

你好, 我在学java的博客 2万+

前端小白如何快速上手Vue框架(上篇)

前言: 我之前没有接触过任何前端知识,连基本的HTML语法,css,js的基础知识都不懂,再刚接手vue的时候也是一个头两个大. 然后当然先查vue官方文档,官网会有如下提示: 然后如果你按照提示开始按部就班的看html,css,js然后再回来学习Vue的话,你可能已经被OUT了(况且周期过长,着实不推荐).直接着手一个项目是进步最快的方式,何况还有度娘和Google保驾护航. 推荐vue学习文...

Logbook的博客 15万+

NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver. 最全解决方案!详细!

真的折磨了我整整一天,从网上的资料到GPT都翻遍了,终于是解决了!以下方案希望能帮助到你们。

weixin_44124632的博客 1万+

MVC和MVVM区别

1、MVC MVC是一种设计模式: M(Model):模型层。是应用程序中用于处理应用程序数据逻辑的部分,模型对象负责在数据库中存取数据; V(View):视图层。是应用程序中处理数据显示的部分,视图是依据模型数据创建的; C(Controller):控制层。是应用程序中处理用户交互的部分,控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。 2、MVVM vue框

qq_40007317的博客 1万+

PhoenixSuit全志刷机实战:从驱动安装到固件烧录的完整避坑指南

本文提供全志芯片设备使用PhoenixSuit进行线刷的完整实战指南。详细介绍了从驱动安装、双公头USB线连接、强制刷机模式进入,到固件烧录全过程的核心步骤与常见错误排查。重点解析了如何避免驱动安装失败、正确触发刷机模式以及应对烧录卡顿等关键问题,帮助用户顺利完成刷机或救砖操作。

algae的博客 1691

苹果搜索广告ASA开户教程

阅读导航 一、创建账号 1、登录网站 2、填写账号主体信息 3、填写商家和发票信息 4、选择付款方式 二、上传审核材料 1、上传文件 2、请求审批 3、上传文件中的常见问题 一、创建账号 1、用Apple ID登录ASA网站 首先我们进入开户网址:https://app-ads.apple.com/ 如果已拥有Apple ID,直接登录即可,如果没有Apple ID,可以先按照步骤创建Apple ID,再返回登录。 注意,这里登录的Apple ID也有讲究: ① 如果是开发

testflight121的博客 2129

Vue Vue介绍、Vue基础语法、Vue生命周期、axios的使用

Vue Vue介绍、Vue基础语法、Vue生命周期、axios的使用

weixin_44504809的博客 1万+

转录组PCA分析3大常见误区:数据标准化、离群样本与批次效应处理

本文深入探讨转录组PCA分析中的三大常见误区:数据标准化、离群样本识别与批次效应处理。通过实战案例和R代码演示,揭示如何优化PCA结果以提升生物学解释力,特别关注数据标准化策略的选择和批次校正方法的应用,帮助研究者避免常见陷阱并获得可靠的转录组分析结果。

weixin_28362173的博客 372

如何理解Vue实例的生命周期

如何理解Vue实例的生命周期生命周期是什么生命周期函数的分类生命周期函数实例每个周期函数的存在时间和表现形式创建期间的生命周期函数运行期间的生命周期函数销毁期间的生命周期函数生命周期图解 生命周期是什么 概念:Vue生命周期,听起来好像很高大上,其实就是Vue实例从创建、运行到销毁期间遇到的各种事件的总和。就像我们人从出生到成长到死亡的整个过程遇到的各种事故一样。 生命周期钩子,其实就是生命周期事件的别名而已。 生命周期钩子 = 生命周期函数 = 生命周期事件。 生命周期函数的分类 生命周期函数 = 创建期

qq_39055970的博客 773

YOLOv12中的A2C2f模块详解,涉及区域注意力模块(A2)和 R-ELAN 结构详解

区域注意力模块(Area Attention, A2)的设计出发点是为了解决传统注意力机制在计算复杂度和内存访问效率上的问题。传统的自注意力机制(Self-Attention)具有二次方的计算复杂度(O(n²)),尤其是在处理高分辨率图像时,计算成本非常高。此外,注意力机制的内存访问模式不如卷积神经网络高效,导致在实际应用中难以满足实时性要求。区域注意力模块通过将特征图划分为多个区域,并在每个区域内进行注意力计算,从而显著降低了计算复杂度。

Limiiiing的博客 5514

​​手把手教你学PCIE--ATU 的 Bar 匹配模式与地址匹配模式详解​

摘要: ATU(地址转换单元)提供两种地址匹配模式:Bar匹配模式基于PCI设备的BAR寄存器自动映射虚拟地址(只需配置物理基址),适用于标准PCI设备DMA;地址匹配模式需显式配置虚拟与物理地址范围,适合自定义映射场景。核心区别在于匹配依据(BAR自动推导vs人工定义),Bar模式简化配置,地址模式更灵活。

MHD0815的博客 380

深入理解Vue实例生命周期

‍vue实例生命周期与生命周期钩子‍每个 Vue 实例在被创建时都会经过一系列的初始化过程。例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。为了让...

weixin_48109878的博客 363

把收款差异从扯皮变成闭环:SAP S/4HANA Dispute Resolution 模块到底解决什么问题?

本文摘要: SAP S/4HANA的争议解决模块(Dispute Resolution)通过标准化流程管理企业应收争议,解决发票与收款差异问题。核心是创建可追踪的Dispute Case工单,明确处理角色(Processor和Manager),并与财务系统联动实现自动清账。系统支持手工/自动创建争议工单,通过动态默认值减少错误,并最终实现争议金额归零的闭环管理。文中给出制造业客户扣款的完整处理案例,并强调组织落地需统一权限与目录。最后提供ABAP代码示例展示如何通过BAPI创建争议工单。(150字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 165

理解vue实例的生命周期和钩子函数

先来一张生命周期的官方图: 钩子函数 描述 beforeCreate 组件实例刚被创建,组件属性计算之前,如data属性等 created 组件实例创建完成,属性已绑定,但DOM还未生成,$el属性还不存在 beforeMount 模板编译 / 挂载之前 mounted 模板编译 / 挂载之后 beforeUpdate 组件更新之前 update 组件...

luo1914_的博客 400

2025年GESP3月认证C++五级真题解析

小 A 有 2n 件物品,小 B 和小 C 想从小 A 手上买走这些物品。对于第 i 件物品,小 B 会以 bi 的价格购买,而小 C 会以 ci 的价格购买。对于所有测试点,保证 1 <= T <= 100, 2 <= g < p <= 10^9, g, p 为整数, p 为质数。对于所有测试点,保证 1 <= n <= 10^5, 0 <= bi, ci <= 10^9, bi, ci 为整数。对于另外 50 % 的测试点,保证 n <= 100000, 0 <= bi, ci <= 10^9。

lan_in的博客 1036

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Vue教学4:深入理解Vue实例与生命周期钩子

通过本博客的学习,我们不仅了解了Vue实例的创建和生命周期钩子的基本概念,还看到了它们在实际开发中的应用场景。掌握生命周期钩子对于管理组件的生命周期至关重要,它可以帮助我们更高效地开发和管理Vue应用。希望这篇博客能帮助你深入理解Vue实例与生命周期钩子,并在实际项目中灵活运用。如有任何疑问,欢迎在评论区留言讨论。让我们一起学习,共同进步!往期教学请前往作者VUE专栏下查看。

工作内容分享 1830

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Vue 实例详解:理解 Vue 的生命周期与数据绑定

在 Vue 中,Vue实例是与应用相关的核心对象,它是 Vue 应用的入口。new Vue({el: '#app', // Vue 实例挂载到指定的 DOM 元素data: {},methods: {});通过上面的学习,你已经掌握了 Vue 实例的创建与数据绑定机制,以及 Vue 的生命周期钩子的基本使用。在 Vue 开发中,理解这些基础概念对于你高效开发和调试应用非常重要。

一名热衷于技术的全栈开发者,专注于前端与后端的全面技术探索。在这里,我将分享我在技术领域的学习与成长,助力更多开发者的进步。 949

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

vue 生命周期_深入理解Vue实例生命周期

‍vue实例生命周期与生命周期钩子‍每个 Vue 实例在被创建时都会经过一系列的初始化过程。例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。为了让开发者在Vue实例生命周期的不同阶段有机会插入自己的代码逻辑,vue提供了一种叫做生命周期钩子的函数。主要的生命周期钩子如下:beforeCreatecreatedbeforeMountmountedbe...

weixin_39996478的博客 167

echart实例数据 本地加载_手把手教你深刻理解vue实例的生命周期和钩子函数

虽然经常使用mounted、created等几个钩子函数,但是并没有很系统的将它和生命周期关联一起去理解,这导致我在最近项目里踩了坑。所以现在花点时间,整理一下这方面的知识。转载链接:https://www.jianshu.com/p/98517bd49179我的其他文章,也可以了解一下:《使用vue-cli(vue脚手架)快速搭建项目》《一张图教你快速玩转vue-cli3》《手把手教你深入浅出v...

weixin_39855944的博客 296

对Vue实例生命周期的理解

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

hc_deep的博客 244

vue created 调用方法_深入理解Vue实例生命周期

vue实例生命周期与生命周期钩子‍每个 Vue 实例在被创建时都会经过一系列的初始化过程。例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。为了让开发者在Vue实例生命周期的不同阶段有机会插入自己的代码逻辑,vue提供了一种叫做生命周期钩子的函数。主要的生命周期钩子如下:beforeCreatecreatedbeforeMountmountedbeforeUp...

weixin_39884872的博客 1371

Vue 实例简单的一生 生命周期(易理解)

VUE 生命周期1.生命周期是什么?2.生命周期怎么用?3.生命周期在哪些地方使用?总结 1.生命周期是什么? 生命周期用于监听每个相应阶段 vue实例的创建==>挂载==>更新==>结束销毁的每个阶段 生命周期常用的共有8个阶段 当Dom渲染到某一周期的时候, 会进行自动调用当前周期内部的方法 用我们的话来说,生命周期就是在vue的相应阶段内自动执行其内部的方法和代码 严格区分大小写,注意其驼峰命名法 2.生命周期怎么用? 八个常用周期: beforeCreate 创建之前 crea

yuan_xiaoxin的博客 172

vue初始化获取元素宽度_深入理解Vue实例生命周期

vue实例生命周期与生命周期钩子‍每个 Vue 实例在被创建时都会经过一系列的初始化过程。例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。为了让开发者在Vue实例生命周期的不同阶段有机会插入自己的代码逻辑,vue提供了一种叫做生命周期钩子的函数。主要的生命周期钩子如下:beforeCreatecreatedbeforeMountmountedbeforeUp...

weixin_28933027的博客 886

vue生命周期实战(三)—— 实例更新并深刻理解nextTick、watch和生命周期的关系

干货!深刻理解nextTick、watch和生命周期的关系

jcyka的专栏 1047
上一篇: css中的一些小贴士
下一篇: Vuejs之路之--模板语法()
初心鸿鹄
博客等级 码龄10年 14粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值