当前位置: 首页 > news >正文

vue组件的生命周期

一、组件运行的过程

开始--》import导入组件--》components注册组件--》以标签形式使用组件--》在内存中创建组建的实例对象--》把创建的组件实例渲染到页面上--》组件切换时销毁需要被隐藏的组件--》结束

组件的生命周期指的是:组件从创建、运行(渲染)、销毁的整个过程,强调的是一个时间段。

二、监听组件的不同时刻

vue框架为组件内置了不同时刻的生命周期函数,生命周期函数会伴随着组件的运行而自动调用。

1.当组件在内存中被创建完毕后,会自动调用created函数

2.当组件被成功渲染到页面上之后,会自动调用mounted函数

3.当组件被销毁完毕后,会自动调用unmounted函数

三、监听组件的更新

当组件的data数据更新后,vue会自动重新渲染组件的dom结构,从而保证view视图展示的数据和model数据源保持一致。

当组件被重新渲染完毕后,会自动调用updated生命周期函数。

四、组件中主要的生命周期函数

生命周期函数执行时机所属阶段执行次数应用场景
created组件在内存中创建完毕后创建阶段唯一1次发ajax请求初始数据
mounted组件初次在页面中渲染完毕后创建阶段唯一1次操作dom元素
updated组件在页面中被重新渲染完毕后运行阶段0或多次-
unmounted组件被销毁后(页面和内存)销毁阶段唯一1次-

在实际开发中,created是最常用的生命周期函数。

五、完整的生命周期函数

生命周期函数执行时机所属阶段执行次数应用场景
beforeCreate在内存中开始创建组件之前创建阶段唯一1次-
created组件在内存中创建完毕后创建阶段唯一1次发ajax请求初始数据
beforeMount在把组件初次渲染到页面之前创建阶段唯一1次-
mounted组件初次在页面中渲染完毕后创建阶段唯一1次操作dom元素
beforeUpdate在组件被重新渲染之前运行阶段0或多次-
updated组件在页面中被重新渲染完毕后运行阶段0或多次-
beforeUnmount在组件被销毁之前销毁阶段唯一1次-
unmounted组件被销毁后(页面和内存)销毁阶段唯一1次-

为什么不在beforeCreate中发ajax请求初始数据?

在beforeCreate中,无法访问到data里面数据,请求到的数据无法挂载到da'ta中供组件渲染使用

操作dom在mounted函数中

<template>{{ count }}<button @click="count+=1">按钮</button>
</template>
<script>
export default {data(){return{count:1}},beforeCreate(){console.log('beforeCreate,在内存中开始创建组件之前',this.count);},created(){console.log('created,组件在内存中被创建了',this.count);},beforeMount(){console.log('beforeMount,在把组件初次渲染到页面之前');},mounted(){console.log('mounted,组件第一次被渲染到页面上了');},beforeUpdate(){console.log('beforeUpdate,在组件被重新渲染之前');},updated(){console.log('updated,组件被重新渲染完毕了');},beforeUmounte(){console.log('beforeUmounte,组件被销毁之前');},unmounted(){console.log('unmounted,组件被销毁完毕了');}
}
</script>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 常用集合(Set等)
  • CTF夺旗赛经验总结及落地实践,零基础入门到精通,收藏这一篇就够了
  • 跟着问题学12——GRU详解
  • 应用targetSdkVersion升级指导
  • 探索C语言与Linux编程:获取当前用户ID与进程ID
  • 中秋节特别游戏:给玉兔投喂月饼
  • Mac端口扫描工具
  • C++——打印以下图案:用字符数组方法。
  • golang学习笔记28——golang中实现多态与面向对象
  • 摄影社团管理系统
  • MySQL-DQL(数据查询语言)
  • Avalonia第三方UI库Semi.Avalonia用法详解
  • 数据库数据恢复—SQL Server附加数据库出现“错误823”怎么恢复数据?
  • 在Windows系统上安装的 zstd C++ 库
  • 面试知识点总结篇一
  • .pyc 想到的一些问题
  • 【RocksDB】TransactionDB源码分析
  • Android 控件背景颜色处理
  • Android框架之Volley
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • Java反射-动态类加载和重新加载
  • Js基础知识(一) - 变量
  • magento 货币换算
  • Mysql优化
  • PHP面试之三:MySQL数据库
  • Spark学习笔记之相关记录
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • Vue.js 移动端适配之 vw 解决方案
  • Vue2 SSR 的优化之旅
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 技术:超级实用的电脑小技巧
  • 技术胖1-4季视频复习— (看视频笔记)
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 前端工程化(Gulp、Webpack)-webpack
  • 如何利用MongoDB打造TOP榜小程序
  • 应用生命周期终极 DevOps 工具包
  • 用Visual Studio开发以太坊智能合约
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • ​ssh免密码登录设置及问题总结
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • (30)数组元素和与数字和的绝对差
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (搬运以学习)flask 上下文的实现
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)详解PHP处理密码的几种方式
  • ***监测系统的构建(chkrootkit )
  • .form文件_一篇文章学会文件上传
  • .NET Core WebAPI中封装Swagger配置
  • .NET 分布式技术比较
  • .Net--CLS,CTS,CLI,BCL,FCL