Vue实例从创建到销毁的过程,就是Vue的生命周期。也就是从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、卸载等一系列过程,我们称这是Vue的生命周期。
-
beforeCreate
在实例初始化之后,数据观测(data observer)和event / watcher 事件配置之前被调用(在这里是不能访问vue中data,methods…中的数据及方法的) -
created
在实例创建完成后立即被调用,在这一步,实例已经完成了以下配置:数据观测(data observer)属性方法的运算,watch/event事件的回调。然而挂载阶段还没开始,$el属性目前不可见(也就是说在这个阶段可以放实例中的方法和属性,但是并没有在页面挂载dom所以不能访问dom)。 -
beforeMount
在挂载开始之前被调用:相关的render函数首次被调用。 -
mounted
el被新创建的 vm.el替换,并挂载到实例上去之后调用该钩子函数,如果root实例挂载了一个问文档内元素,当mounted被调用是vm.$el也在文档内。 -
beforeUpdate
数据更新是调用,发生在虚拟dom打补丁之前。这里适合在更新前访问现有的dom,比如手动移除已添加的事件监听器,改钩子在服务器端渲染期间不被调用,因为只有初次渲染会在服务端进行。 -
updata
由于数据更改导致虚拟dom重新渲染和打补丁,在这之后会调用改钩子函数。 -
activated
keep-alive 组件激活时。改钩子函数不会在服务器渲染期建被调用。 -
deactivated
keep-alive 组件停用时调用。改钩子函数不会在服务器渲染期建被调用。 -
beforeDestroy
实例销毁前调用。在这一步,实例仍然完全可用。 改钩子函数不会在服务器渲染期建被调用。 -
destroyed
Vue实例销毁后调用。调用后,Vue实例指令的所有东西都会解绑,所有事件监听器都会呗移出,所有的子实例也会被销毁。改钩子函数不会在服务器渲染期建被调用。 -
errorCaptured(2.5.0+ 新增)
当捕获一个来自子孙组件的错误时被调用。此钩子会收到三个参数:错误对象,发生错误的组件实例以及一个包含错误来源信息的字符串,此钩子可以返回false以阻止改错误继续向上传播