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

  • 红米note11tpro怎么设置应用是否使用移动数据(红米note11tpro怎么截长图)

    红米note11tpro怎么设置应用是否使用移动数据(红米note11tpro怎么截长图)

  • 12306退票怎么查询退款进度呢(12306退票怎么查询退款进度帮别人买的票)

    12306退票怎么查询退款进度呢(12306退票怎么查询退款进度帮别人买的票)

  • 荣耀畅玩20支持快充吗(荣耀畅玩20支持5g吗)

    荣耀畅玩20支持快充吗(荣耀畅玩20支持5g吗)

  • 苹果11与苹果11pro拍照对比(苹果11与苹果11pro max对比)

    苹果11与苹果11pro拍照对比(苹果11与苹果11pro max对比)

  • 手机上的照片能打印吗(手机上的照片能不能复印出来)

    手机上的照片能打印吗(手机上的照片能不能复印出来)

  • 苹果11微信视频能美颜吗(苹果11微信视频来电没有声音怎么回事)

    苹果11微信视频能美颜吗(苹果11微信视频来电没有声音怎么回事)

  • 苹果8摔过震动有异响(苹果8摔过震动会坏吗)

    苹果8摔过震动有异响(苹果8摔过震动会坏吗)

  • 蓝光8m什么意思(蓝光8m和4m)

    蓝光8m什么意思(蓝光8m和4m)

  • 耳机发黄了怎么变白(耳机发黄怎么变白妙招)

    耳机发黄了怎么变白(耳机发黄怎么变白妙招)

  • qq如何设置青少年模式(qq如何设置青少年管理)

    qq如何设置青少年模式(qq如何设置青少年管理)

  • 苹果se是5g手机吗(苹果se是不是5s)

    苹果se是5g手机吗(苹果se是不是5s)

  • qq基友值最高可以多少(qq基友值超过10000)

    qq基友值最高可以多少(qq基友值超过10000)

  • vivos6带nfc功能吗(vivos6手机带nfc吗)

    vivos6带nfc功能吗(vivos6手机带nfc吗)

  • 苹果x下面两个喇叭都响吗

    苹果x下面两个喇叭都响吗

  • 锂电池保护板输出电压低(锂电池保护板输出电压与电池电压不一致)

    锂电池保护板输出电压低(锂电池保护板输出电压与电池电压不一致)

  • 快手下载的视频在哪里(快手下载的视频如何去水印保存)

    快手下载的视频在哪里(快手下载的视频如何去水印保存)

  • 华为mate30pro怎么返回上一页(华为mate30pro怎么截屏)

    华为mate30pro怎么返回上一页(华为mate30pro怎么截屏)

  • 笔记本长期插电源对电池有影响么(笔记本长期插电源使用好吗)

    笔记本长期插电源对电池有影响么(笔记本长期插电源使用好吗)

  • 手机怎样连接电脑上传照片(手机怎样连接电脑传输照片)

    手机怎样连接电脑上传照片(手机怎样连接电脑传输照片)

  • 手机号怎么查抖音(手机号怎么查抖音用户名)

    手机号怎么查抖音(手机号怎么查抖音用户名)

  • win10网易云音乐无法下载问题怎么办(win10网易云音乐图标)

    win10网易云音乐无法下载问题怎么办(win10网易云音乐图标)

  • 苹果手机可以设置来电视频吗(苹果手机可以设置通话录音吗)

    苹果手机可以设置来电视频吗(苹果手机可以设置通话录音吗)

  • 微信里的dwg怎么打开(微信dwg文件)

    微信里的dwg怎么打开(微信dwg文件)

  • 荣耀20出厂自带钢化膜吗(荣耀出厂自带的膜怎么样)

    荣耀20出厂自带钢化膜吗(荣耀出厂自带的膜怎么样)

  • 台式电脑怎么联网宽带(台式电脑怎么联网连接无线网)

    台式电脑怎么联网宽带(台式电脑怎么联网连接无线网)

  • 接电话黑屏在哪里设置(接电话黑屏在哪里设置华为)

    接电话黑屏在哪里设置(接电话黑屏在哪里设置华为)

  • 拉斯梅德拉斯的古罗马金矿遗址,西班牙莱昂 (© DEEPOL by plainpicture/David Santiago Garcia)(梅拉和艾斯德斯)

    拉斯梅德拉斯的古罗马金矿遗址,西班牙莱昂 (© DEEPOL by plainpicture/David Santiago Garcia)(梅拉和艾斯德斯)

  • 职工薪酬支出及纳税调整
  • 公司有买社保就要交税吗
  • 认证不过的进项税是怎么调出分录?
  • 车船税的免征对象是什么
  • 企业税号还未开户
  • 注销银行帐户需要什么
  • 增值税应交税费和申报的不一样怎么调整
  • 超过认证期的发票能用吗
  • 增值税发票如何作废流程
  • 餐饮服务需要缴纳增值税吗
  • 怎样填写增值税普通发票
  • 基本户没有注销对法人有影响吗
  • 所得税申报表填写样本
  • 员工一次性补偿要缴纳个税吗
  • 资产损失税前扣除管理办法
  • 房地产企业预缴土地增值税
  • 退休工资怎样扣社保
  • 长期应付款预算会计
  • 付款金额比发票金额少怎么办
  • 生产车间的房屋租赁费计入什么科目
  • 没有对公账户的公司怎么注销
  • 会务费发票税率是
  • 评估入账的开发权是否可以税前扣除?
  • 工资分两次发的风险是什么?
  • 小微企业的免税标准
  • 一个项目可以有几个单位工程
  • 公司奖励金怎么做记账凭证?
  • 预提费用年底如何结转
  • 跨省银行承兑汇票可以接受吗
  • 固定资产净残值是什么意思
  • 社保打的生育保险怎么做账
  • 个体工商户公转私用途写什么
  • 事业单位财政补助收入会计分录
  • 最新windows10
  • 计提小规模增值税怎么做账
  • 在win7系统中将打开窗口拖到屏幕顶端
  • 试乘试驾车入账分录
  • 借股东现金会计分录
  • 返还保证金的法律依据
  • 投资性房地产转换的会计处理
  • 集团与子公司资产的关系
  • 未开票收入本月未收款的分录
  • vue中过滤器有什么作用及详解
  • vue实战开发项目视频
  • C++ Linux Web Server 面试基础篇-操作系统(四、线程通信)
  • 增值税专票怎么作废
  • vuexy
  • ai绘画网站
  • 财务软件服务合同要交印花税吗
  • 开票软件的证书口令是多少
  • 公司购进软件的账务处理
  • mongodb时序
  • 年末关账注意事项
  • 请问资产负债表中净资产怎么算
  • 补交以前年度的城建税会计分录
  • 行程单入账多久钱能到账
  • 实收资本增减变化为负数的原因
  • 员工在异地缴纳社保,公司还能上吗
  • 其他应收款收不回来怎么写情况说明
  • 报销发票金额大于付款金额
  • 库存商品的出售
  • 火车票退票改签手续费
  • 小规模纳税人变更一般纳税人条件
  • 员工个人买的保险可以税前扣除吗
  • 汇算清缴从业人数平均值怎么算
  • 各种会计凭证的填制
  • 怎么验证触发器的执行
  • linux自动清理内存软件
  • linux系统中网络配置文件一般放在
  • spybuddy.exe - spybuddy是什么进程
  • javascript的区别
  • node.js环境搭建
  • python怎么图像处理
  • 如何理解闭包,闭包的优缺点
  • django图片加载不出来
  • python快速排序法
  • JavaScript中的数据类型
  • 海南购房税费最新2019规定
  • 2022年车船税减半政策
  • 上海税务怎么样
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设