一.Vue生命周期钩子
vue从创建到销毁过程中,会执行的一些回调函数 ==
-
钩子
: 一种回调函数-
例如:window.onload = function(){ dom加载完毕,外部资源加载完毕就执行 }
-
二.生命周期函数
1、beforeCreate(创建前) 一切未开始。
2、created(创建后) 完成了对数据的观测,属性和方法的运算,初始化事件,$el属性还没有显示出来。
3、beforeMount(载入前) 完成了编译模板,并生成了真实的dom,但还没有挂载html到页面上。
4、mounted(载入后) 完成了把dom挂载到页面上,此过程中可以进行ajax交互。
5、beforeUpdate(更新前) 在数据更新之前调用,发生在虚拟DOM重新渲染和打补丁之前。
6、updated(更新后) 调用时,组件DOM已经更新,所以可以执行依赖于DOM的操作。然而在大多数情况下,应该避免在此期间更改状态,因为这可能会导致更新无限循环。该钩子在服务器端渲染期间不被调用。
7、beforeDestroy(销毁前) 在实例销毁之前调用。实例仍然完全可用。
8、destroyed(销毁后) 在实例销毁之后调用。调用后,所有的事件监听器会被移除,所有的子实例也会被销毁。
三. 每个周期具体适用于哪些场景
(1)beforeCreate:可以在这加loading事件,在加载实例时触发。
(2)created:初始化完成时的事件写在这里,如在这里结束loading,异步请求也适合在这里调用。
(3)mounted:挂载元素,获取到dom节点。
(4)updated:如果对数据统一处理,在这里写上相应的函数。
(5)beforeDestroy:清空定时器等。