生命周期简单介绍:Vue实例从创建到销毁的过程就是生命周期,就是指从创建、初始化数据、编译模板、挂载dom到渲染、更新、销毁这一系列的过程,他主要分8个阶段:创建前后,挂载前后,更新前后和销毁前后,这个8个阶段分别对应着8个不同的生命周期钩子函数(beforeCreate,created,beforeMount,mounted,beforeUpdate,updated,beforeDestory,destoryed),下面简单介绍下这些生命周期钩子函数:
创建阶段
1,创建前:beforecreate() ,此阶段为实例初始化之后,此时的数据观察和事件机制都未形成(不能访问到vue中的data,methods,computed和watch),同时也不能访问dom节点。
2,创建后:created(),这个时候vue初始化完毕,实例已经创建,这个时候就可以访问data,methods,computed,watch之类的方法,但是由于没有挂载到dom渲染,此时页面并没有渲染数据。
3,挂载前:beforeMount(),这个时候,vue已经将模板字符串编译成内存dom,模板已经编译完成,到那时还没有渲染到页面上。
4,挂载后:mounted(),创建阶段完成,页面也成功渲染了,这个时候就可以通过 r e f s 来访问真实的 d o m 解构,访问的时候就可以使用 t h i s . refs来访问真实的dom解构,访问的时候就可以使用this. refs来访问真实的dom解构,访问的时候就可以使用this.refs属性。
运行阶段
注:当实例中的数据发生变化的时候,比如触发了点击事件改动了数据就会执行该钩子
5,更新前:beforeUpdate(),这个时候内存中的数据已经改变,但是页面上的数据还没有更新。
6,更新后:updated(),这个这个时候内存中的数据和页面上的数据都改变了。
销毁阶段
7,销毁前:beforeDestory(),触发这个生命钩子的时候,实例还没有销毁,此时是刚刚脱离运行阶段,data,methods,指令之类的还在正常运行,在这个生命周期中可以取消定时器,也可以取消订阅,移除绑定的事件。
8,销毁后:destoryed(),这个时候组件实例成功销毁,data,methods,指令之类的不可用。生命周期走完。
created和mounted在什么情况下使用:
答:1,created()通常用来请求接口数据的时候引用,因为created钩子是在模板渲染成html前调用的,这个时候用来请求数据,请求完数据后等到渲染页面的时候直接用获取到的数据渲染。
2,mounted()是在页面渲染之后调用,通常是初始化页面完成后,再对dom节点进行一些需要的操作的时候使用。