关于Vue实例的生命周期

最近在做的项目前段使用了Vue.js,在开发过程中对有关页面数据的初始化以及Vue的内置生命周期钩子的使用有些捉襟见肘,在查看了各大神的博客之后,决定自己总结一下~

先挂上官网的生命周期图示

说说什么是生命周期

我们先来看看百度百科给我们的介绍:生命周期就是指一个对象的生老病死。
很言简意赅,但这只是一个笼统的概念,当然,对于Vue来说,就只有生和死这两个状态,即Vue实例从创建到销毁的过程,就称作生命周期。
同时我们还要注意,在Vue的整个生命周期中,它提供了一系列的内置事件,即生命周期钩子函数(以下简称为钩子),我们可以在钩子里注册自己封装好的js方法,在Vue的生命周期中不同阶段触发这些方法,比如实现页面数据渲染,进行各种请求等等。注意,这些钩子里的this直接指向的是vue的实例。
让我们把官网的生命周期示例图翻译成中文来看看,到底Vue实例到底是怎么“生”又如何“死”:
在这里插入图片描述

每个钩子触发的阶段

beforeCreate:在Vue实例创建之前,数据观测(data observer) 和 event/watcher 事件配置之前触发。
created:Vue实例已经创建完成之后触发。此时实例已完成以下配置:数据观测(data observer),属性和方法的运算, watch/event 事件回调。此钩子通常用于初始化某些属性值。
beforeMount:在挂载开始之前被触发,相关的 render 函数首次被调用。
mounted:el 被新创建的 vm.$el 替换,并挂载到实例上去之后触发该钩子。通常是初始化页面完成后,再对html的dom节点进行一些需要的操作,如数据的显示等等。
beforeUpdate:数据更新时触发,发生在虚拟dom重新渲染和打补丁之前。 你可以在这个钩子中进一步地更改状态,不会触发附加的重渲染过程。
updated:在数据更改导致的虚拟 DOM 重新渲染和打补丁完成之后触发。
beforeDestroy:Vue实例销毁之前触发。但在这一步,实例仍然完全可用。
destroyed:Vue实例销毁后触发。在此之后,Vue 实例指示的所有东西都会解绑,所有的事件监听器会被移除,所有的子实例也会被销毁。该钩子在服务器端渲染期间不被调用。

created与mounted

在项目开发过程中最常使用的就是这两个钩子,根据上图我们能理解到:created钩子被触发时,html页面还未被渲染,仅仅只是Vue实例创建好了而已;而mounted钩子触发时html页面已经被渲染完成。
所以在开发过程中:
created钩子一般用于初始化一些基础的数据,如实体数据等等。
mounted钩子用于一些需要操作dom节点的方法,如图表插件echarts,初始化它们一般需要用到document.getElementById(“id”)这种形式,如果用在created中,html还未被渲染,页面是找不到这个节点的,在mounted中调用便可成功实现。

以上就是开发过程中本人对Vue实例生命周期以及相关钩子函数的理解
如果有不对的地方,请各位指正!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值