位置: IT常识 - 正文

Vue生命周期钩子剖析(共12个钩子)(vue生命周期钩子函数)

编辑:rootadmin
Vue生命周期钩子剖析(共12个钩子)

推荐整理分享Vue生命周期钩子剖析(共12个钩子)(vue生命周期钩子函数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue生命周期钩子函数各阶段特点及可以用来作什么?,vue生命周期钩子详解,vue生命周期钩子函数,vue生命周期钩子函数各阶段特点及可以用来作什么?,vue生命周期钩子函数执行顺序,vue生命周期钩子函数有哪些?,vue生命周期钩子函数各阶段特点及可以用来作什么?,vue生命周期钩子函数,内容如对您有帮助,希望把文章链接给更多的朋友!

生命周期示意图:

 生命周期及其钩子函数理解

生命周期: Vue是一个构造函数,当执行执行这个函数时,相当于初始化vue实例;在创建实例过程中,需要设置数据监听,编译模板,将实例挂载到DOM上,数据更新能够让DOM也更新,同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。

生命周期钩子函数:

生命周期钩子函数,让够让咱们在初始化实例时,添加自己的代码; 生命周期的钩子函数中的this,会默认指向vue的实例;

钩子函数汇总:

beforeCreate:是第一个生命周期函数,表示实例完全被创建出来之前会执行这个函数。在此函数执行时,data和methods中的属性与方法定义都还没有初始化。created:是第一个生命周期函数,在此函数中,data 和 methods 都已经被初始化好了。beforeMount:是第三个生命周期函数,表示模板已经在内存中编辑完成了,但是还没有被渲染到页面中。mounted:第四个生命周期函数,此时内存中的模板已经挂载到了页面中,用户可以看到渲染好的页面。mounted是实例创建期间的最后一个生命周期函数,当此函数执行完毕,表示实例已经被完全创建好了。beforeUpdate:此时界面还没有被更新。updated:updated 事件执行的时候,页面和 data 数据已经保持同步。beforeDestroy:销毁之前执行,当beforeDestroy函数执行时,表示vue实例已从运行阶段进入销毁阶段,vue实例身上所有的方法与数据都处于可用状态。destroyed:当destroy函数执行时,组件中所有的方法与数据已经被完全销毁。

其余三个钩子:

keep-alive 缓存组件 生命周期的钩子函数 activated deactivated 生命周期的钩子函数activated(:当缓存组件有被显示出来时,会触发这个钩子函数deactivated:  当缓存的组件隐藏时,会触发这个钩子函数;

errorCaptured :当子孙组件出错时,会调用这个钩子函数

还有一个隐藏的钩子,经常会用到,但注意,这个钩子不是已函数形式写在script中,而是vm实例自带的一个方法,所以在vc(VueComponent)实例上也能访问:

this.$nextTick():在下次 DOM 更新循环结束之后执行延迟回调;在修改数据之后立即使用这个方法,获取更新后的 DOM。

生命周期钩子详解及注意事项 beforeCreate()

生命周期函数被执行此时不能访问data和menthods等中的东西

created()

生命周期钩子函数被执行,实例创建此时能访问data和menthods等中的东西 接下来开始编译模板:开始分析

 template选项检查: 有:编译template返回render渲染函数 无:编译el选项对应标签作为template(要渲染的模板)vue工程项目不支持 虚拟DOM挂载成真实DOM之前:

beforeMount()Vue生命周期钩子剖析(共12个钩子)(vue生命周期钩子函数)

beforeMount :生命周期钩子函数被执行 Create vm$el and replace "el" with it:把虚拟DOM和渲染的数据一并挂到真实DOM上 挂载完毕,mounted:生命周期钩子函数被执行

mounted()

需要注意的问题,避免做项目时踩坑

在这发起后端请求,拿回数据,配合路由钩子做一些事情

详细:

el被新创建的 vm.el替换,并挂载到实例上去之后调用该钩子。如果root实例挂载了一个文档内元素,当mounted被调用时vm.el替换,并挂载到实例上去之后调用该钩子。如果root实例挂载了一个文档内元素,当mounted被调用时vm.el 也在文档内 该钩子在服务器端渲染期间不被调用。

注意: 如果在此钩子中向后台发送请求,无法立刻拿到数据,如有需要,可在watch中监听该数据调用this.$nextTick()获取更新后的数据

示例:

<template> <div class="swiper-container" ref="cur"> <div class="swiper-wrapper"> <div class="swiper-slide" v-for="(carousel, index) in list" :key="carousel.id"> <img :src="carousel.imgUrl" /> </div> </div> </div></template><script>import Swiper from "swiper";export default { props: ["list"], watch: { list: { immediate: true, handler() { if (this.list.length === 0) return this.$nextTick(() => { var mySwiper = new Swiper(this.$refs.cur, { loop: true, // 循环模式选项 // observer: true, autoplay: true, // 如果需要分页器 pagination: { el: ".swiper-pagination", clickable: true, }, // 如果需要前进后退按钮 navigation: { nextEl: ".swiper-button-next", prevEl: ".swiper-button-prev", }, // 如果需要滚动条 scrollbar: { el: ".swiper-scrollbar", }, }); }); }, }, },//错误示例mounted(){ var mySwiper = new Swiper(this.$refs.cur, {...}}};</script><style></style>

错误原因:此时获取到的v-for的数据是从后台返回过来的,这需要一定的时间,此时v-for遍历不到任何数据,在数据返回之前页面已经挂载完成,即已开始执行mounted函数,而后台数据成功获取到后再页面重新渲染生成的dom元素,所以在mounted中获取不到该dom元素

beforeUpdate()

当data里数据改变, 更新DOM之前,beforeUpdate – 生命周期钩子函数被执行此时获取不到更新的真实dom

虚拟DOM重新渲染, 打补丁到真实DOM

updated – 生命周期钩子函数开始执行,当有data数据改变 – 重复这个循环

updated()beforeDestroy()

当$destroy()被调用:比如组件DOM被移除(例v-if)

beforeDestroy:生命周期钩子函数被执行

拆卸数据监视器、子组件和事件侦听器

实例销毁后, 最后触发一个钩子函数

destroyed: 生命周期钩子函数开始执行

destroyed()activated()

在vue对象存活的情况下,进入当前存在activated()函数的页面时,一进入页面就触发;可用于初始化页面数据等。

activatedcreated触发顺序组件创建最初始created  =>  mounted >activated触发次数只在组件刚创建时创建在使用keep-alive标签中有效,每次进入都会执行钩子中的函数deactivated()

路由组件失活时执行

errorCaptured ()

子孙组件出错时调用,一般不用

this.$nextTick()

当你修改了数据,vue帮你操作完dom ,把真实的dom放入页面,vue再帮你调用$nextTick

本文链接地址:https://www.jiuchutong.com/zhishi/298416.html 转载请保留说明!

上一篇:【机器学习】KNN算法及K值的选取

下一篇:IDEA如何完美配置Servlet(适用于IDEA 2022及以下版本)(idea配置meaven)

  • QQ音乐听歌房间怎么关闭(qq音乐听歌房间怎么关闭)

    QQ音乐听歌房间怎么关闭(qq音乐听歌房间怎么关闭)

  • iqoo5有红外遥控功能吗(iqoo5有没有红外)

    iqoo5有红外遥控功能吗(iqoo5有没有红外)

  • 抖音黑名单解除后没有此好友(抖音黑名单解除后怎么找到对方)

    抖音黑名单解除后没有此好友(抖音黑名单解除后怎么找到对方)

  • 手机经常无服务是什么原因(为什么苹果手机经常无服务)

    手机经常无服务是什么原因(为什么苹果手机经常无服务)

  • 微信朋友圈位置怎么改到别的城市(微信朋友圈位置怎么定位)

    微信朋友圈位置怎么改到别的城市(微信朋友圈位置怎么定位)

  • 微信文件没下载过期了(微信文件没下载完)

    微信文件没下载过期了(微信文件没下载完)

  • 显示屏45和72哪个更伤眼睛(显示屏45和72哪个好)

    显示屏45和72哪个更伤眼睛(显示屏45和72哪个好)

  • 陌陌拉黑对方还有聊天记录吗(陌陌拉黑对方还能收到信息吗)

    陌陌拉黑对方还有聊天记录吗(陌陌拉黑对方还能收到信息吗)

  • 键盘上下左右键移动不了格子位置怎么办(键盘上下左右键不动怎么办)

    键盘上下左右键移动不了格子位置怎么办(键盘上下左右键不动怎么办)

  • 以word形式是什么意思(什么叫以word形式)

    以word形式是什么意思(什么叫以word形式)

  • 苹果手机点屏幕就亮了咋关掉(苹果手机点屏幕不亮怎么回事)

    苹果手机点屏幕就亮了咋关掉(苹果手机点屏幕不亮怎么回事)

  • pr出现未响应还要等吗(pr未响应等待有用吗)

    pr出现未响应还要等吗(pr未响应等待有用吗)

  • 苹果7p一直重启循环怎么回事(苹果7p一直重启循环开不了机)

    苹果7p一直重启循环怎么回事(苹果7p一直重启循环开不了机)

  • 轻聊版qq有什么不一样(qq轻聊版能干嘛)

    轻聊版qq有什么不一样(qq轻聊版能干嘛)

  • 快闪是什么(快闪是什么意思饭圈)

    快闪是什么(快闪是什么意思饭圈)

  • 苹果电池寿命88%要换吗(苹果电池寿命88为什么耗电很快)

    苹果电池寿命88%要换吗(苹果电池寿命88为什么耗电很快)

  • oppo手机怎么关机重启(oppo手机怎么关闭5g用4g)

    oppo手机怎么关机重启(oppo手机怎么关闭5g用4g)

  • 安卓怎么隐藏app图标(安卓怎么隐藏app名称)

    安卓怎么隐藏app图标(安卓怎么隐藏app名称)

  • 未发货不想要了可以退款吗(未发货不想要了怎么退款)

    未发货不想要了可以退款吗(未发货不想要了怎么退款)

  • 长照片怎么做(长照片怎么做滚动)

    长照片怎么做(长照片怎么做滚动)

  • iphone8p电池容量(iphone8p电池容量多少毫)

    iphone8p电池容量(iphone8p电池容量多少毫)

  • 多多果园删除好友还能恢复吗(多多果园删除好友对方有提示吗)

    多多果园删除好友还能恢复吗(多多果园删除好友对方有提示吗)

  • 美图秀秀贴纸怎么用(美图秀秀贴纸怎么保存)

    美图秀秀贴纸怎么用(美图秀秀贴纸怎么保存)

  • 【审稿意见】科研菜鸟如何攥写审稿意见?万能模板!!!(审稿意见范例)

    【审稿意见】科研菜鸟如何攥写审稿意见?万能模板!!!(审稿意见范例)

  • 增值税发票确认平台怎么认证发票
  • 转让股份的印花税怎么交
  • 高新技术企业加计抵减
  • 什么是印花税的税目
  • 商誉是减值还是摊销
  • 当年亏损额为什么不能填?
  • 费用化的研发支出是否可以加计扣除
  • 房地产购买材料财务报销单上怎么写
  • 法人股东分红交什么税
  • 个税申报赡养老人可以填公婆吗
  • 视同销售货物缴纳增值税的有哪些?
  • 固定资产减值必有损益吗
  • 企业垫付土地补偿款
  • 运费单是什么
  • 企业利润分配如何分析
  • 增值税税负的概念和如何确定税负
  • 6种个人所得税违规手段,财务人再小心别跳坑!
  • 融资租赁开始时的账务处理
  • 其他权益工具通俗
  • 资产评估入账的评估报告
  • 1697508750
  • 如何彻底清洁
  • win10系统还原会删除其他盘的文件吗
  • 上月暂估入账
  • 固定资产未开发票怎么入账
  • 前端项目中遇到的问题,如何解决
  • 车船税不计提怎么做分录
  • 被白雪覆盖的彩虹歌词
  • 只有收据没有发票怎么报销
  • php选择结构
  • nlp baseline
  • 微信小程序实现文件上传
  • yolov5增加检测层
  • php图片代码
  • 确认收入的五个原则
  • timestamp 0
  • 出差托运行李公司报销吗
  • 员工体检费发票可以抵扣进项吗
  • 火车头造型
  • mysql服务开不起来
  • 公司购买空调计入什么费用
  • 货代一般一个柜利润多少
  • 公司购进设备会计分录
  • 出售固定资产的损失计入什么科目
  • 企业所得税的扣除是什么意思
  • 税务多措并举
  • 个人所得税的减免政策有哪些
  • 代扣代缴境外增值税怎么申报
  • 挂靠指的是什么意思?
  • 小规模减免的增值税要交所得税吗
  • 上年度亏损,本年要交所得税吗
  • 财务软件是有哪些软件
  • 商业购进商品运费怎么算
  • 交易性金融资产属于流动资产
  • 应收账款应付账款可以抵消吗
  • 不能收回的应收账款
  • 如何结转生产成本及制造费用
  • 免抵税额什么意思
  • 现金流量表的编制基础是权责发生制
  • 投资性房地产摊销从什么时候开始
  • mysql5.7安装教程详细
  • WIN10系统中WPS字体颜色浅
  • VMware虚拟机中安装MATE桌面环境
  • linux oracle12c
  • 删除xp本地保存的视频
  • 微软撤回快捷键
  • linux ps-l
  • pacis.exe - pacis是什么进程 有什么用
  • 汤姆猫arcode
  • jQuery插件封装时如要实现链式编程,需要
  • u盘备份系统操作步骤
  • unity3d坐标系
  • bootstrap与Jquery UI 按钮样式冲突的解决办法
  • jQuery Validation Plugin验证插件手动验证
  • Android4.4 wpa_supplicant深入分析之wpa_supplicant初始化流程
  • python中序列
  • 发票缴销办理流程图
  • 江苏税务新办企业套餐
  • 税务系统领发票
  • 全款房契税退税需要什么资料
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设