vue的生命周期

通过new Vue() 创建vue实例,vue的生命周期便拉开了序幕

beforeCreate

首先会执行beforeCreate钩子函数。此时的vue实例只是一个空壳,还未挂载DOM元素,无法访问到data和真实的dom,一般不做操作。

vue实例挂载元素$el和数据对象data都为undefined,还未初始化。

created

这个时候已经可以使用到数据,也可以更改数据,在这里更改数据不会触发updated函数和不会触发其他钩子函数,一般可以在这里做初始数据的获取。

vue实例数据data有了,$el还没有。

beforeMount

在这个函数中虚拟dom已经创建完成(编译模板,把data里面的数据和模板生成虚拟dom),这里也可以更改数据,不会触发updated,不会触发其他的钩子函数。

vue实例的$el和data都初始化了,但还是挂载之前的虚拟dom节点。

mounted

在这个函数调用时,组件已经出现在页面中,数据、真实dom都已经处理好了,事件都已经挂载好了,可以在这里操作真实dom等事情。

beforeUpdate

当组件或实例的数据更改之后,会立即执行beforeUpdate,然后vue的虚拟dom机制会重新构建虚拟dom与上一次的虚拟dom树利用diff算法进行对比之后重新渲染。

updated

当更新完成后,执行updated,数据已经更改完成,dom也重新render完成,可以操作更新后的虚拟dom。

beforeDestroy

当通过某种方式调用$destroy方法后,立即执行beforeDestroy函数做一些善后工作,如清除计时器、清除非指令绑定的事件等。

destroyed

组件的数据绑定、监听等去掉后只剩下dom空壳,此时执行destroyed。当然,也可以在这里完成上述操作。

原文:https://www.jb51.net/article/145668.htm

通过new Vue() 创建vue实例,vue的生命周期便拉开了序幕,首先会执行beforeCreate钩子函数。此时的vue实例只是一个空壳,还未挂载DOM元素,无法访问到数据和真实的dom,一般不做操作。

原文地址:https://www.cnblogs.com/xjy20170907/p/12888339.html