选项/生命周期钩子(11个 最常用的前8个)
beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
activated
deactivated
beforeDestroy
destroyed
errorCaptured
所有的生命周期钩子自动绑定this上下文到实例中,因此你可以访问数据,对属性和方法进行运算。这意味着你不能使用肩头函数来定义一个生命周期方法(例如 created:()=>this.fetchTodos()).这是应为箭头函数绑定了父上下文,因此this与你期待的Vue实例不同,this.fetchTods的行为为定义。
beforeCreate(创造前)
类型: Function
在实例初始化之后,数据观测(data observer)和event/watcher事件配置之前被调用。
created(创造中)
类型: Function
在实例创造完成后被立即调用。在这一步,实例已完成已下的配置:数据观测(data observer),属性恶化方法的运算,watch/event事件回调。然而,挂载阶段还没有开始,$el属性目前不可见。
beforeMount(挂在前)
类型: Function
在挂载之前被调用,相关的render函数首次被调用。
该钩子字啊服务器端渲染期间不被调用。
mounted(挂载中)
类型: Function
el被新创建的vm.$el替换,并挂载到实例上去之后调用该钩子。如果root实例挂载了一个文档内元素,当mounted被调用时,vm.$el也在文档内。
注意mounted不会承若所有的子组件也都一起被挂载。如果你希望等到整个视图都渲染完毕,可以用vm.$nextTick替换掉mounted:
mounted:function(){
this.$nextTick(function(){
// Code that will run only after the
// entire view has been rended
})
}
该钩子字啊服务器端徐然期间不被调用。
beforeUpdate(更新前)
类型: Function
数据更新时调用,发生字啊虚拟DOM打补丁之前。这里适合字啊更新之间访问现有的DOM,比如手动移除已添加的事件监听器。
该钩子在服务器端渲染期间不被调用,因为只有初次渲染会字啊服务端进行。
updated(更新后)
类型: Function
由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用该钩子。
当这个钩子被调用时,组件DOM已经更新,所以你现在可以执行依赖于DOM的操作。然而字啊大多数情况下,你应该避免字啊此期间更改状态。如果要相应状态该拜年,通常最好使用计算属性或watcher取而代之。
注意:updated不会承若所有的子组件也都一起被重绘。如果你希望等到整个视图都重绘完毕,可以用vm.$nextTick替换掉
updated:
updated:function(){
this.$nextTick(function(){
// Code that will run after the
// entire view has been re-rendered
})
}
该钩子字啊服务器端渲染期间不被调用。
activated(激活)
类型: Function
keep-alive组件激活时调用。
该钩子字啊服务器端渲染间不被调用。
deactivated(解散)
类型: Function
keep-alive组件停用时调用。
该钩子在服务器端渲染期间不被调用。
构建组件 keep-alive
动态组件-keep-alive
beforeDestroy(销毁前)
类型: Function
实例销毁之前调用。在这一步,实例仍然完全可用。
该钩子字啊服务器端渲染期间不被调用。
destroyed(销毁后)
类型: Function
Vue实例销毁后调用,调用后,Vue实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。
该钩子在服务器渲染期间不被调用。
errorCaptured(捕获错误)
类型: (err:Error,vm:Component ,info:string)=>boolean
当捕获一个来自子孙组件的错误时被调用。此钩子会收到三个参数:错误对象、发生错误的组件实例以及一个包含错误来源信息的字符串。此钩子可以返回false以阻止该错误继续向上传播。