vue 生命周期

一 、vue的生命周期是什么

vue每个组件都是独立的,每个组件都有一个属于它的生命周期,从一个组件创建挂载更新销毁,这就是一个组件所谓的生命周期

附加一个vue官方的 【vue生命周期钩子】链接

创建:	beforeCreate  created

挂载:beforeMount  mounted 

修改:beforeUpdate updated

卸载:beforeDestroy  destroyed 

二、生命周期执行顺序

单组件生命周期:
beforeCreate => created => beforeMount => mounted => beforeUpdate => updated => beforeDestroy => destroyed

父子组件创建顺序:在父组件挂载完成之前先挂载子组件
父beforeCreate => 父created => 父beforeMount => 子beforeCreate =>子created => 子beforeMount =>子 mounted => 父mounted

父子组件更新顺序:在父组件更新完成之前先挂载子组件
父beforeUpdate => 子beforeUpdate => 子updated => 父updated

父子组件卸载顺序:在父组件卸载完成之前先挂载子组件
父beforeDestroy => 子beforeDestroy => 子destroyed => 父destroyed

三、各个生命周期的作用

beforeCreate:
在此阶段,实例刚在内存中被创建出来。此时,data的数据和methods中方法的都还没有初始化,数据和模板均获取不到

created:
在此阶段,实例已经在内存中创建完成。data 和 methods、computed都已经被初始化好了,如果要调用 methods 中的方法,或者操作 data 中的数据,最早可以在这个阶段中操作。此生命周期为最早可进行ajax异步数据请求的生命周期,服务端渲染也可在此进行

beforeMount:
执行到这个钩子的时候,在内存中已经编译好了模板了,相关的render函数首次被调用(虚拟DOM),但是还没有挂载到页面中,此时,页面还是旧的

mounted:
执行到这个钩子的时候,就表示Vue实例已经初始化完成了。此时组件脱离了创建阶段,进入到了运行阶段。 如果我们想要通过插件操作页面上的DOM节点,最早可以在和这个阶段中进行mounted只会执行一次

beforeUpdate:
当执行这个钩子时,页面中的显示的数据还是旧的,data中的数据是更新后的, 页面还没有和最新的数据保持同步,不会触发附加地重渲染过程

updated:

调用时,组件DOM已经更新,页面显示的数据和data中的数据已经保持同步了,都是最新的 。所以可以执行依赖于DOM的操作,然后在大多是情况下,应该避免在此期间更改状态,因为这可能会导致更新无限循环,该钩子在服务器端渲染期间不被调用

beforeDestory:
Vue实例从运行阶段进入到了销毁阶段,这个时候上所有的 data 和 methods , 指令, 过滤器 ……都是处于可用状态。还没有真正被销毁,此时还是可以访问实例的属性

  • 这一步还可以用this来获取实例,
  • 一般在这一步做一些重置的操作,比如清除掉组件中的定时器 和 监听的dom事件

destroyed:
调用后,Vue 所有的 data 和 methods , 指令, 过滤器 ……都是处于不可用状态,所有的事件监听器会被移除,所有的子实例也会被销毁。

四、vue中内置的方法 属性和vue生命周期的运行顺序

props => methods =>data => computed => watch;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值