Vue生命周期

生命周期 vue实例从创建到销毁的过程

钩子函数 事件劫持机制 VUE内置事件

 

1.0vue生命周期:
    钩子函数:

    created    ->   实例已经创建    √
    beforeCompile    ->   编译之前
    compiled    ->   编译之后
    ready        ->   插入到文档中    √

    beforeDestroy    ->   销毁之前
    destroyed    ->   销毁之后

 

2.0生命周期

组件相关钩子函数:

beforeCreate:

组件实例刚刚创建,还未进行数据观测和事件配置(创建前状态 el和data并未初始化)

this指向创建的实例
数据观测(data observer)和event/watcher配置尚未完成
不能访问到methods、data、computed、watch上的方法和数据

created:

实例已经创建完成,并且已经进行数据观测和事件配置(完成了data数据的初始化,el没有)

实例创建完成,并已经完成以下配置:数据观测(data observer),属性和方法的运算, watch/event 事件回调
此时可以调用methods中定义的方法,修改data的数据,并且可触发响应式变化、computed值重新计算,watch到变更等

还未挂载到DOM,不能访问到$el属性,$ref属性内容为空数组

此阶段为"实例初始化"后 创建完毕,能读取到数据data的值,"DOM"还未生成所以属性el还不存在。

beforeMount:

模板编译之前,还没挂载(挂载前状态,完成了el和data初始化)

在挂载开始之前被调用/此时已经成功关联到指定的dom元素,但是{{}}数据还未成功渲染成data里面的数据。

mounted:

模板编译之后,已经挂载,此时才会有渲染页面,才能看到页面上数据的显示(挂载结束状态,完成挂载)

数据已成功渲染成data内的值。

beforeUpdate:

组件更新之前(更新前状态)

修改vue实例的data时,vue就会自动帮我们更新渲染视图,在这个过程中,vue提供了beforeUpdate的钩子给我们,在检测到我们要修改数据的时候,更新渲染视图之前就会触发钩子beforeUpdate。

这里的更新对象是模板,即需要虚拟 DOM 重新渲染和打补丁,beforeUpdate发生在以上两个流程之前,此时新的虚拟DOM已经生成

updated:

组件更新之后(更新完成状态)

由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。当这个钩子被调用时,组件 DOM 已经更新,可以执行依赖于 DOM 的操作

beforeDestroy:

 

实例销毁之前调用。在这一步,实例仍然完全可用,this仍能获取到实例一般在这一步中进行:销毁定时器、解绑全局事件、销毁插件对象等操作

destoryed:

Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值