什么是生命周期?

生命周期?

生命周期:vue实例从创建到销毁的一系列过程
在每个周期中被自动调用的函数叫做生命周期函数,也叫
钩子函数

作用:在实例被创建到被回收的整个过程中,会在不同
的时期有不同的钩子函数,我们可以使用不同时期的
钩子函数做完成不同的操作

vue中的生命周期分3个阶段:初始阶段,更新阶段,销毁阶段
生命周期中的this指向的都是实例本身

2,vue中常用的生命周期函数有哪些?|| vue的钩子函数有哪些?
|| 每个生命周期可以做什么?
初始阶段:
1)beforeCreate:实例初始化之前,初始自己的生命周期,事件
初始的生命周期是指的:自己的父元素和子元素是谁,
初始的事件是:原型上的方法,例如 o n , on, on,emit,$mount…

  • 能做什么:
    初始化,data还没挂载,获取不到data的数据,一般开发中使用不多
    但是vue底层在这个阶段做了很多事情:
    Vue.use方法安装插件时一般会选在beforeCreate 这个钩子内执行,
    例如 ues vue-router 和 vuex 都会在beforeCreate 这个钩子内执行

2)created: vue实例初始化之后
挂载data中的数据,响应式的数据变化,观察数据(getter,setter)

  • 能做什么:可以去操作data的数据了,如果不使用dom元素渲染数据,可以在这个周期内调取后台的数据
    备注:但是不能获取到dom元素,因为此时的dom元素还没挂载到页面上

3)beforeMount: dom元素挂载之前
vue内部做的事情:会先检测是否有template内部模板
将template渲染成一个render函数
render函数作用:(可以把模板的内容转义成虚拟dom,最后再把虚拟dom转成真是的dom)
el 和template都存在:优先渲染template的内容

vue实例的$el和data都初始化了,但还是挂载之前为虚拟的dom节点

  • 能做什么:能更改是渲染el外部的模板还是template内部模板,
    可以在这加个loading事件
    备注:但是不能获取到dom真实元素,因为此时的虚拟节点还没渲染成真实dom元素

4)mounted:dom元素渲染之后

  • 能做什么:可以操作dom真实元素了,如果需要使用dom元素渲染数据,在这个周期内调取后台的数据

更新阶段:
5)beforeUpdate : 数据更新之前执行
前提是更新的数据被使用了

  • 能做什么:可以做二次的修改数据,会以这次的修改为主去渲染数据

6)updated:数据一更新就会触发

  • 能做什么:可以获取到最新的数据
    备注:但是慎用,因为在这里不小心又更改了数据,会引发死循环
    可以使用watch代替,监听数据的变化,获取到最新的数据

销毁阶段:
7)beforeDestroy:销毁前触发
前提是:执行了destroy() || 路由的切换(也会引发组件的销毁)

  • 能做什么:可以清除定时器和事件

8)destroyed:销毁后执行
此时销毁,响应式的数据没有了,实例还在

  • 能做什么:基本什么都做不了了

除此之外如果使用keep-alive组件用来缓存组件,还会有2个生命周期
9)activated:页面进入的时候
备注:钩子触发的顺序是created->mounted->activated
10)deactivated:页面退出的时候

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值