要点:



重要的只有两个流程,挂载后(mounted)做初始化的事 销毁前(beforeDestroy)做收尾的事

这边讲了8个钩子,还有3个钩子到路由那再说
拆分为4对:
1.
beforeCreate和created 创建之前和创建完毕
beforeCreate是在数据监测和数据代理创建之前,
created是在数据监测和数据代理创建之后
也就是以创建数据代理和数据监测为分界线
注:不要误认为为vm创建前!!!!!!!,不然beforeCreate连this都读不到
2.beforeMount和mounted 挂载之前和挂载完毕
3.beforeUpdate和 updated 更新之前和更新完毕
4.beforedestroy和destroy 销毁之前和销毁完毕
引用之前的那个改变透明度的小案例
并增加一个功能当,点击一个按钮,让它透明度定格,不变了
虽然外卖这边用了vm.$destroy相当与vm自己把自己销毁了但是在一般开发下,都不会调用$destroy,一般都是以他杀的形式将它销毁

这样写会报错因为 id只在mounted作用域内


解决一,不推荐不太好
用let定义中转

解决二:
直接定义一个this.xxx 直接把值定义在vm上,当别的要调用,只需this.xxx即可
实现了效果,但是这种改变太轻度了

比如
修改对应透明度,仍可修改,也就是说这样子,只是把定时器关了


如果要重度的关闭,即把vm也销毁了

点了也没用了,改变不了透明度了

但是定时器还没有关
验证:

定时器还在走,vm虽然没了但是定时器还在走

把前面两者结合

可以实现效果

但是那个关闭定时器还可以写在beforeDestroy

运行流程:
当调用$destroy ,就会触发beforeDestroy和destroyed,然后在beforeDestroy写上关闭定时器就能实现

引用beforeDestroy的意义
当,一个vm不是被自己销毁而是被其他销毁,则无法只有回调函数,能实现在销毁前,关闭定时器
但用beforeDestroy可以

用beforeDestroy写的话,无论,自我销毁,还是其他导致的销毁,只要进行销毁,就会调用beforeDestroy 其中就可以写许多的善后工作,比如关定时器等等
总结:

Vue.js生命周期钩子与定时器管理
本文详细探讨了Vue.js组件的生命周期钩子,特别是beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy和destroyed。强调了在beforeDestroy钩子中关闭定时器的重要性,以确保资源的正确释放,特别是在组件被外部销毁时。文章通过实例展示了如何在Vue应用中妥善管理定时器,并讨论了不同销毁方式的影响。
2045

被折叠的 条评论
为什么被折叠?



