vue生命周期及其作用

vue生命周期及其作用

1. 生命周期总览

2. beforeCreate

  • 我们在new Vue()时,初始化一个Vue空的实例对象,此时对象身上只有默认的声明周期函数和事件,此时data,methods都未被初始化

3. created

  • 此时,已经完成数据观测,属性和方法的运算,watch、event事件回调的配置
  • 可以调用methods中的的方法,访问和修改data数据出发响应式渲染dom,可以通过compute和watch完成数据计算
  • 此时,vm.$el并没有被创建

4. created->beforeMounted

  • 判断是否存在el选项,如果不存在,则停止编译,直到调用vm.$mount(el)才会继续编译
  • vm.el获取到的事挂载DOM的

5. beforeMount

  • 此时可以获取到vm.el
  • vm.el已完成DOM初始化,但未挂载到el选项上

6. beforeMount->Mounted

  • 此阶段vm.el完成挂载,vm.¥el生成的DOM替换了el选项所对应的DOM

7. Mounted

  • vm.el已完成DOM的挂载和渲染,

8. beforeUpdate

  • 更新的数据必须是被渲染在模板上的
  • 此时view层还没有更新

9. updated

  • 完成view层的更新

10. beforeDestroy

  • 实例被销毁前调用,此时实例属性与方法仍可访问

11. destroyed

  • 完全销毁一个实例,仅销毁实例,并不能清楚DOM

12. 总结

生命周期 描述
beforeCreate 执行时组件实例还未被创建,可用于插件开发中执行一些初始化任务
created 组件初始化完毕,各种数据可以使用,常用于异步数据获取
beforeMount 未执行渲染、更新,dom未创建
mounted 初始化结束,DOM已经创建,可用于获取访问数据和DOM元素
beforeUpdate 更新前,可用于获取更新前各种状态
updated 更新后,所有状态意识最新
beforeDestroy 销毁前,可用于一些定时器清楚或者订阅的取消
destroyed 组件已销毁

13. created和mounted数据请求的区别

  • created是在实例创建完成之后立刻调用,这时候dom节点未生成,如果进行数据请求,后续在mounted时就一次性渲染结束
  • mounted是在dom挂载完立刻执行,这时候如果再进行数据请求,可能会发生回流和重绘,页面会闪动
  • 所以,数据请求一般放在created中
相关推荐
AC赳赳老秦2 分钟前
外文文献精读:DeepSeek翻译并解析顶会论文核心技术要点
前端·flutter·zookeeper·自动化·rabbitmq·prometheus·deepseek
小宇的天下9 分钟前
Calibre 3Dstack --每日一个命令day18【floating_trace】(3-18)
服务器·前端·数据库
毕设源码-钟学长15 分钟前
【开题答辩全过程】以 基于web技术的酒店信息管理系统设计与实现-为例,包含答辩的问题和答案
前端
css趣多多23 分钟前
this.$watch
前端·javascript·vue.js
Code小翊27 分钟前
JS语法速查手册,一遍过JS
javascript
干前端44 分钟前
Vue3虚拟滚动列表组件进阶:不定高度及原理分析!!!
前端·前端组件
子春一1 小时前
Flutter for OpenHarmony:构建一个 Flutter 天气卡片组件,深入解析动态 UI、响应式布局与语义化设计
javascript·flutter·ui
雨季6661 小时前
Flutter 三端应用实战:OpenHarmony “极简文本行数统计器”
开发语言·前端·flutter·ui·交互
有来技术1 小时前
ASP.NET Core 权限管理系统(RBAC)设计与实现|vue3-element-admin .NET 后端
vue.js·后端·c#·asp.net·.net
qq_12498707531 小时前
基于springboot的林业资源管理系统设计与实现(源码+论文+部署+安装)
java·vue.js·spring boot·后端·spring·毕业设计·计算机毕业设计