对于vue生命周期钩子的粗浅理解

vue实例的生命周期的三个阶段

  • 创建阶段: 对应 beforeCreate, created, beforeMount, mounted
  • 运行阶段: 对应 beforeUpdate, updated
  • 销毁阶段:对应 beforeDestory, destoryed

详细解释

  1. 调用new Vue() 方法,开始创建vue实例。在beforeCreate调用时,vue对象上仅有默认的一些生命周期函数和事件,此时data和methods都未初始化
  2. 在created调用时,data和mehtods已经初始化完毕,所以此时可以调用methods中的方法和使用data中的数据。
  • 之后vue开始编辑模板,生成一个模板字符串,将其渲染为虚拟DOM,此时vue还未挂载到实际的页面中去。
  1. 在beforeMounted调用时,虚拟DOM已经生成,但并未挂载到页面中
  2. 在mounted调用时,虚拟DOM已经替换到真实的页面中去,此时可以操作页面上的DOM结点了,只要mounted执行完毕,vue的实例就已经创建完毕,之后进入到运行阶段。
  • 运行阶段的两个钩子函数会根据data数据的改变有选择性地触发0次或者多次。
  1. 当vue监测到data数据变化时,就会触发beforeUpdate事件,此时最新的数据还未被同步到页面中去,所以此时页面中的数据还是旧的
  • 然后vue 根据最新的data重新渲染虚拟DOM,再将生成的DOM树替换到实际的页面中去。
  1. 在updated事件执行时,页面和数据已经完成同步,此时页面呈现的就是最新数据
  2. 当执行beforeDestory钩子函数时,vue实例就进入销毁阶段,此时实例上的数据,方法以及指令等等都还可用,还没有执行销毁过程注:页面的主动刷新并不会执行destory)。
  3. 当destory执行时,组件已经被完全销毁了(所有指令解绑,事件监听移除,子实例被销毁),此时实例的数据方法和子实例都不可用了。

此外,还有activated和disactivated分别在组件被keep-alive激活和停用时调用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值