位置: 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)

  • 星际小说(星际残骸)(星际小说星际穿越沼泽)

    星际小说(星际残骸)(星际小说星际穿越沼泽)

  • iqoo8pro支持pd快充吗(iqoo8支持pd快充吗)

    iqoo8pro支持pd快充吗(iqoo8支持pd快充吗)

  • 饿了么可以用支付宝支付吗(饿了么可以用支付宝亲情卡吗)

    饿了么可以用支付宝支付吗(饿了么可以用支付宝亲情卡吗)

  • 小米手机怎么把两张照片合成一张(小米手机怎么把下面三个键隐藏)

    小米手机怎么把两张照片合成一张(小米手机怎么把下面三个键隐藏)

  • 显示器当电视用需要什么(显示器当电视用危害)

    显示器当电视用需要什么(显示器当电视用危害)

  • 荣耀v20单摄还是双摄(荣耀v20相机参数配置)

    荣耀v20单摄还是双摄(荣耀v20相机参数配置)

  • vivo 5g手机有哪些(vivo5G手机有哪些是屏幕指纹)

    vivo 5g手机有哪些(vivo5G手机有哪些是屏幕指纹)

  • 抖音为什么看不到别人在线(抖音为什么看不到直播)

    抖音为什么看不到别人在线(抖音为什么看不到直播)

  • 什么屏幕会烧屏(什么屏幕烧屏厉害)

    什么屏幕会烧屏(什么屏幕烧屏厉害)

  • 华为nova7和vivos6对比(华为nova7和vivox70哪个好)

    华为nova7和vivos6对比(华为nova7和vivox70哪个好)

  • msg文件怎么打开(怎么打开文件)

    msg文件怎么打开(怎么打开文件)

  • 高清语音通话有什么用(高清语音通话有什么好处)

    高清语音通话有什么用(高清语音通话有什么好处)

  • 加湿器有风无雾是什么原因(加湿器有风无雾解析图片)

    加湿器有风无雾是什么原因(加湿器有风无雾解析图片)

  • ipadair2有32g的吗(ipadair2有没有128g)

    ipadair2有32g的吗(ipadair2有没有128g)

  • 为什么央视影音卫视没有回放(为什么央视影音看不了世界杯直播)

    为什么央视影音卫视没有回放(为什么央视影音看不了世界杯直播)

  • iphone xs多少cm(iphone xs多少像素)

    iphone xs多少cm(iphone xs多少像素)

  • 黑鲨2pro屏幕刷新率是多少(黑鲨2pro线刷)

    黑鲨2pro屏幕刷新率是多少(黑鲨2pro线刷)

  • 华为nova5pro卡槽针插哪(华为nova5pro卡槽打不开怎么办)

    华为nova5pro卡槽针插哪(华为nova5pro卡槽打不开怎么办)

  • 抖音怎么取消实名认证(抖音怎么取消实名身份认证绑定?)

    抖音怎么取消实名认证(抖音怎么取消实名身份认证绑定?)

  • 手机怎么取消sos(手机怎么取消SOS)

    手机怎么取消sos(手机怎么取消SOS)

  • 小米9信号不好怎么回事(小米9信号不好时总跳辅助键)

    小米9信号不好怎么回事(小米9信号不好时总跳辅助键)

  • 自己快手作品怎么置顶(自己快手作品怎么看不到浏览记录)

    自己快手作品怎么置顶(自己快手作品怎么看不到浏览记录)

  • 7p能升级ios12吗(7p能升级ios14吗)

    7p能升级ios12吗(7p能升级ios14吗)

  • 如何查看别人抖音点赞(如何查看别人抖音购物)

    如何查看别人抖音点赞(如何查看别人抖音购物)

  • 8p后盖玻璃能单换吗(8p手机玻璃后盖要多少钱)

    8p后盖玻璃能单换吗(8p手机玻璃后盖要多少钱)

  • 充电宝押金什么时候退(充电宝押金什么时候返)

    充电宝押金什么时候退(充电宝押金什么时候返)

  • qq怎么恢复好友手机版本(QQ怎么恢复好友天数)

    qq怎么恢复好友手机版本(QQ怎么恢复好友天数)

  • iphone x如何强制重启(iphonex如何强制关机手机)

    iphone x如何强制重启(iphonex如何强制关机手机)

  • 应交增值税和未交增值税都有余额
  • 财务软件费用可以抵税吗
  • 企业办理银行承兑汇票的手续费用应计入什么账户
  • 视同销售收入是纳税调整项目吗
  • 增值税税控服务费的账务处理
  • 餐饮增值税发票抵扣
  • 设计合同需要缴哪些税
  • 预付加油卡发票可以报销吗
  • 收到以前年度的政府补助会计分录
  • 民营企业的待遇
  • 股票价值的计算公式财务管理
  • 受托代销商品手续费会计分录
  • 已认证进项发票转出会计分录
  • 自查补缴的企业怎么处理
  • 拨款和支出的区别
  • 国税开增值税专票怎么开
  • 建筑业的发票
  • 增值税减免税款科目怎么结转
  • 金税盘点了没反应
  • 专利年费是不是只能一项一项交
  • 参加展会的住宿费计入什么科目
  • 减免税金需要结转吗
  • 出售已计提减值准备的固定资产
  • 稽查以前年度补税
  • 集体企业属于事业单位吗
  • 租赁押金的法律规定
  • qt5core.dll丢失解决方法
  • 个体户开劳务费发票需要交哪些税
  • 企业所得税调增调减怎么理解
  • 应交增值税的结转
  • 财务管理终值和现值
  • 怎么更改定位位置信息
  • 百内国家公园塔状尖峰
  • windows设备超时是什么意思
  • 自己给笔记本更换硬盘
  • 贴现息等于什么
  • 混合销售会计处理
  • 临时用工账务处理流程
  • 日本长野县在哪
  • 事业单位体检费用标准
  • thinkphp框架搭建
  • json字符串转json js
  • 餐饮手撕票在哪里买多少钱
  • 小说《从零开始》
  • 认识数据库思维导图
  • 小满秒懂百科
  • react组件调用方法
  • 电影制片过程
  • 承租人经营租赁账务处理
  • 企业坏账准备提取的方法和提取的比例由国家统一规定
  • 应收债款的融资属于
  • c语言f lf
  • python 熵值法
  • 差旅费报销相关政策
  • 所得税视同销售行为有哪些呢?
  • 原材料用于加工什么
  • 什么是注册资本
  • 印花税怎么用
  • 融资租入固定资产改建支出计入
  • 当月开的发票次月预缴税款行得通吗?
  • 财政补贴的政策
  • 高速过路费抵扣增值税
  • 股东投资款是否要缴税
  • 本年利润的年末余额
  • 报销单粘贴单
  • sql null替换
  • win7怎么打开后缀
  • iis支持什么后端语言
  • linux几种安装方式
  • win7系统怎么用
  • ubuntu每次开机都会进入grub
  • win1020h2版本千万别更新
  • linux去掉指定字符
  • js随机抽取姓名
  • Android---60---Notification 通知栏的简单使用
  • 批处理应用实例
  • python的opencv
  • 淘宝模拟生成器
  • 国税系统打印不了发票怎么办
  • 一巩固三衔接
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设