🌵Vue生命周期的那些事~

简介: 🌵Vue生命周期的那些事~

前言


如今学习Vue的人越来越多了,Vue框架或React框架的学习也成为开发了前端开发人员的必备技能,今天我们就来聊聊Vue中的生命周期函数,Vue中生命周期函数的参考价值很高,让我们来一起认识它吧~


一、Vue2中的生命周期


实例的生命周期


在介绍生命周期之前,我们需要知道在Vue中要渲染一块页面内容的时候,会有下面这几个过程:


  1. 解析语法生成 AST。
  2. 根据 AST 结果,完成 data 数据初始化。
  3. 根据 AST 结果和 data 数据绑定情况,生成虚拟 DOM。
  4. 将虚拟 DOM 生成真正的 DOM 插入到页面中,此时页面会被渲染。

当我们绑定的数据进行更新的时候,又会产生以下这些过程:

  1. 框架接收到数据变更的事件,根据数据生成新的虚拟 DOM 树。比较新旧两棵虚拟 DOM 树,得到差异。
  2. 把差异应用到真正的 DOM 树上,即根据差异来更新页面内容。

当我们清空页面内容时,还有:

  1. 注销实例,清空页面内容,移除绑定事件、监听器等。

Vue为实例提供的生命周期函数一共有8个:

  1. beforeCreate(): 初始化实例前,datamethods等不可获取——1之后,2之前
  2. created():实例化初始化完成,此时可获取data里数据和methods事件——2之后,3之前
  3. beforeMount():虚拟DOM创建完成,此时未挂载到页面中,vm.$el可获取未挂载模板——3之后,4之前
  4. mounted():数据绑定完成,真实DOM已挂载到页面,vm.$el可获取真实DOM——4之后
  5. beforeUpdate():数据更新,DOM Diff得到差异,未更新到页面——5之后,6之前
  6. updated():数据更新,页面也已更新——6之后
  7. beforeDestroy():实例销毁前——7之前
  8. destroyed():实例销毁完成——7之后 关于实例的生命周期,大家还可以参考官方的图例


8130bde041754b4f87a413d2362c71e5_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


其它生命周期钩子


其它的生命周期函数还有activated(), deactivated(), errorCaptured() keep-alive独有的生命周期分别为activateddeactivated


用keep-alive包裹的组件在切换时不会进行销毁,而是缓存在内存中并执行deactived钩子函数,命中缓存渲染后会执行activated钩子函数


errorCaptured()钩子当在子组件内捕获到错误时会调用这个钩子函数。


二、Vue3中的生命周期


Vue3中的生命周期在使用Options API和Composition API会有所不同。


Options API生命周期


  • beforeDestroy改为beforeUnmount
  • destroyed改为unmounted


尤大大为什么要把他改成这样,他的回复是这很大程度上是为了更好的命名约定,对应的中文正是卸载组件和前面的挂载组件契合不少。


  • 其它沿用Vue2生命周期


Composition API生命周期


在Composition API中使用钩子函数,我们只需要在钩子函数前面添加“on”,并在setup函数内部即可,它就会变成这样👇


daa98ae8b34a453789473217d436a56c_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


我们只需要引入这些钩子函数就可以使用啦


Vue3的钩子函数如下:


  1. onBeforemount()
  2. onMounted()
  3. onBeforeUpdate()
  4. onUpdated()
  5. onBeforeUnmount()
  6. onUnmounted()
  7. onActivated()
  8. onDeactivated()
  9. onErrorCaptured()


如果你注意观察,你会发现两个生命周期函数消失了,beforeCreate()和created()不会出现在Composition API中,我们有setup()方法即可,setup()方法出现在beforeCreate()和created()之间。


两个新的Vue3生命周期函数


  • onRenderTracked():第一次在render函数中访问反应性依赖项时,将调用此函数,当我们想查看正在跟踪哪些依赖项时,钩子很有用,对调式很有作用。
  • onRenderTriggered():当触发新渲染时,将调用此选项,允许检查哪个依赖项触发了要重新渲染的组件。


最后


⚽这篇文章主要介绍了Vue中的生命周期函数,相信你一定有所收获~

⚾如果你对这篇文章感兴趣欢迎点赞关注+收藏,更多精彩知识正在等你!😘

相关文章
|
4天前
|
JavaScript
vue使用iconfont图标
vue使用iconfont图标
39 1
|
15天前
|
JavaScript 关系型数据库 MySQL
基于VUE的校园二手交易平台系统设计与实现毕业设计论文模板
基于Vue的校园二手交易平台是一款专为校园用户设计的在线交易系统,提供简洁高效、安全可靠的二手商品买卖环境。平台利用Vue框架的响应式数据绑定和组件化特性,实现用户友好的界面,方便商品浏览、发布与管理。该系统采用Node.js、MySQL及B/S架构,确保稳定性和多功能模块设计,涵盖管理员和用户功能模块,促进物品循环使用,降低开销,提升环保意识,助力绿色校园文化建设。
|
2月前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱前端的大一学生,专注于JavaScript与Vue,正向全栈进发。博客分享Vue学习心得、命令式与声明式编程对比、列表展示及计数器案例等。关注我,持续更新中!🎉🎉🎉
46 1
vue学习第一章
|
2月前
|
JavaScript 前端开发 索引
vue学习第三章
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中的v-bind指令,包括基本使用、动态绑定class及style等,希望能为你的前端学习之路提供帮助。持续关注,更多精彩内容即将呈现!🎉🎉🎉
32 1
|
2月前
|
JavaScript API 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
2月前
|
JavaScript 前端开发 开发者
Vue是如何劫持响应式对象的
Vue是如何劫持响应式对象的
33 1
|
2月前
|
JavaScript 前端开发 API
介绍一下Vue中的响应式原理
介绍一下Vue中的响应式原理
35 1
|
2月前
|
JavaScript 前端开发 开发者
vue 数据驱动视图
总之,Vue 数据驱动视图是一种先进的理念和技术,它为前端开发带来了巨大的便利和优势。通过理解和应用这一特性,开发者能够构建出更加动态、高效、用户体验良好的前端应用。在不断发展的前端领域中,数据驱动视图将继续发挥重要作用,推动着应用界面的不断创新和进化。
|
2月前
|
JavaScript 前端开发 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
2月前
|
存储 JavaScript 前端开发
介绍一下Vue的核心功能
介绍一下Vue的核心功能

热门文章

最新文章