vue生命周期
2022-02-16 本文已影响0人
禾苗种树
8个
- beforeCreate(创建前)
在实例初始化之后,数据观测和事件配置之前被调用,此时组件的选项对象还为创建,el和data并未初始化,因此无法访问methods,data,computed等上的方法。 - created(创建后)
实例已经创建完成之后被调用,在这一步,实例已经完成以下配置,数据观测、属性和方法的运算,watch/event事件回调,完成了data数据的初始化,el没有
。然而,挂载阶段还没开始,el属性目前不可见,这是一个常用的生命周期,因为可以调用methods中的方法,改变data中的数据,并且修改可以通过vue的响应式绑定体现在页面上,获取computed中的计算属性等等,通常我们可以再这里对实例进行预处理,也有一些人喜欢在这里发ajax请求,指的注意 的是,这个周期中是没有什么方法来对实例化过程进行拦截的,因此假如有些数据必须获取才允许进入页面的话(登录?)并不适合在这个生命周期请求,建议在组件路由钩子beforeRouterEnter中完成 - beforeMount
挂载开始之前被调用,相关的render(渲染)函数首次被调用(虚拟DOM),实例已经完成以下的配置:编译模板,把data里面的数据和模板生成html,完成了el和data初始化,注意此时还没有挂载此模板的html到页面上 - mounted
挂载完成,也就是模板中的html渲染到html页面中,此时一般可以做一些ajax操作,mounted只会执行一次
- beforeUpdate
在数据更新之前被调用,发生在虚拟DOM重新渲染和打补丁之前,可以在该钩子中进一步地更改状态,不会触发附加地重渲染过程 - updated (更新后)
在由于数据更改导致的虚拟dom重新渲染和打补丁时会调用,调用时,组件dom已经更新,所以可移执行依赖于dom的操作,然后在大多数情况下,应该避免在此期间更改状态,因为这可能会导致更新无限循环,该钩子在服务器端渲染期间不被调用 - beforeDestroy(销毁前)
1.在实例销毁之前调用,实例仍然完全可用
2.一般在这一步做一些重复的操作,比如清楚掉组件中的定时器和监听的dom事件 - destroyed(销毁后)
在实例销毁之后调用,调用后,所有的事件监听器会被移除,所有的子实例也会被销毁,该钩子在服务器渲染期间不被调用