vue的生命周期
概念
从出生到死亡,从创建到销毁的一个过程
在整个实例创建到销毁的过程种有很多函数的出现,那么我们管这些函数称为生命周期函数
整个生命周期中都有哪些函数?
八大生命周期函数
beforeCreate 创建之前
created 创建完成
beforeMount 挂载之前
mounted 挂载
beforeUpdate 更新之前
updated 更新
beforeDestroy 销毁之前
destroyed 销毁
页面一加载触发哪些生命周期函数
触发了前四个生命周期函数
beforeCreate 创建之前
created 创建完成
beforeMount 挂载之前
mounted 挂载
如何理解生命周期图示/你怎么理解生命周期
创建一个vue实例,在创建之前是一个空的vue对象,只有默认事件个生命周期函数
生命周期在创建之前,没有el元素,没有data属性。
当生命周期执行到创建的时候,依然没有el元素,但是这时候出现了data属性。
生命周期执行到挂载之前,首先我们要判断是否含有el属性,如果没有,我们看一下时候含有$mount()这个手动挂载方法,如果都没有,生命周期结束。如果有$mount('挂载点')生命周期继续执行。出现el属性,我们要先判断是否含有template这个属性,如果有,就直接编译解析成模板,如果有render()这个函数,优先渲染render()函数的内容,如果都没有就把外部的html(outerHTML)作为模板去编译解析。由此可以看出渲染的优先级是render>tempalte属性>outerHTML但是这个时候只是虚拟占位,真实数据并没有渲染,data属性依然存在。
当生命周期挂载完成,视图更新,被data属性所渲染,data数据依然不变。
当数据发生变化,就会触发beforeUpdate和updated
当调用destroy()这个函数方法的时候,执行beforeDestroy 销毁之前,destroyed 销毁这两个函数方法。
你经常使用的生命周期函数有哪些?哪些函数中会经常调用ajax
在created的时候已经含有了data和methods,你可以在created中调用ajax。
我个人习惯在mounted中调用ajax调用,这个时候,虚拟的数据已经替换了真实数据,你调用接口结束之后,可能会操作dom,所以在mounted中调用。
在mounted中我们可以进行大量的异步操作,比如ajax,比如 setTimenOut
加班万岁!