位置: IT常识 - 正文

Vue生命周期钩子(vue生命周期钩子函数)

编辑:rootadmin
在页面加载时,主动执行某些程序。 模拟场景:当页面加载完成之后,像是后台加载数据 new Vue()就是初始化一个Vue实例。 Vue实例额生命周期钩子(函数):每个Vue实例在被创建时(new Vue)都要经过一系列的初始化过程 例如:created() 组件初始化完成 mouted() 模板已创 ...

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

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

在页面加载时,主动执行某些程序。

模拟场景:当页面加载完成之后,像是后台加载数据

new Vue()就是初始化一个Vue实例。Vue实例额生命周期钩子(函数):每个Vue实例在被创建时(new Vue)都要经过一系列的初始化过程例如:created() 组件初始化完成mouted() 模板已创建

这是官方文档给出的一个组件从被创建出来到最后被销毁所要经历的一系列过程,所以这个过程也叫做一个组件的生命周期图。从图中我们可以看到,一个组件从被创建到最后被销毁,总共要经历以下8个过程:

Vue生命周期钩子(vue生命周期钩子函数)

1、beforeCreate:组件创建之前2、created:组件创建完毕3、beforeMount:组件挂载之前4、mounted:组件挂载完毕5、beforeUpate:组件更新之前6、upated:组件更新完毕7、beforeDestoy:组件销毁之前8、destoyed:组件销毁完毕

了解了组件生命周期各个过程后,我们放一波代码,真正的看一看一个组件从生到死到底经历了什么。

<body> <div id="app"> <h1>{{ message }}</h1> </div> <script src="https://cdn.jsdelivr.net/npm/vue@2.7.8/dist/vue.js"></script> <script> var app = new Vue({ el: '#app', data: { message : "vue组件的生命周期了解一下?= =" }, //组件创建之前 beforeCreate(){ console.group('beforeCreate 组件创建之前状态===============》'); console.log("%c%s", "color:red" , "el : " + this.$el); console.log("%c%s", "color:red","data : " + this.$data); console.log("%c%s", "color:red","message: " + this.message) }, //组件创建完毕 created(){ console.group('created 组件创建完毕状态===============》'); console.log("%c%s", "color:red","el : " + this.$el); console.log("%c%s", "color:red","data : " + this.$data); console.log("%c%s", "color:red","message: " + this.message); }, // 组件挂载之前 beforeMount(){ console.group('beforeMount 组件挂载之前状态===============》'); console.log("%c%s", "color:red","el : " + (this.$el)); console.log(this.$el); console.log("%c%s", "color:red","data : " + this.$data); console.log("%c%s", "color:red","message: " + this.message); }, // 组件挂载完毕 mounted(){ console.group('mounted 组件挂载完毕状态===============》'); console.log("%c%s", "color:red","el : " + this.$el); console.log(this.$el); console.log("%c%s", "color:red","data : " + this.$data); console.log("%c%s", "color:red","message: " + this.message); }, // 组件更新之前 beforeUpdate(){ console.group('beforeUpdate 组件更新之前状态===============》'); console.log("%c%s", "color:red","el : " + this.$el); console.log(this.$el); console.log("%c%s", "color:red","data : " + this.$data); console.log("%c%s", "color:red","message: " + this.message); }, // 组件更新完毕 updated(){ console.group('updated 组件更新完毕状态===============》'); console.log("%c%s", "color:red","el : " + this.$el); console.log(this.$el); console.log("%c%s", "color:red","data : " + this.$data); console.log("%c%s", "color:red","message: " + this.message); }, // 组件销毁之前 beforeDestroy(){ console.group('beforeDestroy 组件销毁之前状态===============》'); console.log("%c%s", "color:red","el : " + this.$el); console.log(this.$el); console.log("%c%s", "color:red","data : " + this.$data); console.log("%c%s", "color:red","message: " + this.message); }, // 组件销毁完毕 destroyed(){ console.group('destroyed 组件销毁完毕状态===============》'); console.log("%c%s", "color:red","el : " + this.$el); console.log(this.$el); console.log("%c%s", "color:red","data : " + this.$data); console.log("%c%s", "color:red","message: " + this.message) } }) </script> </body>

运行上面代码,我们在控制台中可以看到:

我们并没有使用任何事件,就触发了这个函数created和mounted是有顺序的,和写的上下顺序无关,都是先执行created在执行mouted

<template> <div id="app"> </div></template><script>export default { mounted() { console.log("这是mounted函数的内容") }, created() { console.log("这是created函数的内容") }}</script><style></style>

有时候我们想操作html的时候,在created中写是获取不到元素的,在mouted可以,初始化数据的话在created里面就可以

如果我们想异步加载数据的话,就可以把获取数据的方法写在生命周期函数中

我们异步来加载水果列表通常页面的数据我们是通过异步和服务器获取的,而不是直接写在data中的,而是应该写在methods中的getData(),将数据放进data中,使用计数器来模拟Ajax的异步获取数据,在created中调用getData()方法

<template> <div id="app"> <h1>水果列表</h1> <ul> <li v-for="(item,index) of fruitList" :key="index"> {{item}} </li> </ul> </div></template><script>export default { data () { return { fruitList:[]//初始状态下,这里不放数据 } }, methods: { getData() { //通过计数器,模拟一个ajax获取数据的方法 setTimeout(()=> { this.fruitList = ["香蕉","苹果","鸭梨"] },2000) } }, //使用created方法来调用getData获取数据 created() { this.getData() }}</script><style></style>

``异步加载演示

这个我们可以来做加载动画,未加载完成显示【loading...】

我们可以使用v-if来实现,通过一个值为loading的布尔变量,当组件创建完毕前,取loading为true,当获取到数据后,去loading为false

<template> <div id="app"> <h1>水果列表</h1>//使用v-if,通过设定好的布尔值来判断是否渲染DOM <p v-if="loading">Loading...</p> <ul v-if="!loading"> <li v-for="(item,index) of fruitList" :key="index"> {{item}} </li> </ul> </div></template><script>export default { data () { return { fruitList:[], loading:true, } }, methods: { getData() { //通过计数器,模拟一个ajax获取数据的方法 setTimeout(()=> { this.fruitList = ["香蕉","苹果","鸭梨"] this.loading = false//获取数据后,使loading取值为false,即加载动画消失 },2000) } }, created() { this.getData() }}</script><style></style>

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

上一篇:织梦dedecms目录权限检测工具(织梦怎么用模板建站)

下一篇:dedecms教程:DedeCMSV5.7中织梦链怎么删除(dedecms安装步骤)

  • vivox70怎么打开开发者模式(vivox70怎么打开nfc功能)

    vivox70怎么打开开发者模式(vivox70怎么打开nfc功能)

  • 联想电脑自带录屏功能在哪(联想电脑自带录屏软件)

    联想电脑自带录屏功能在哪(联想电脑自带录屏软件)

  • 流量的单位是什么(流量的单位是什么意思)

    流量的单位是什么(流量的单位是什么意思)

  • 抖音怎么直播点赞(抖音怎么直播点歌)

    抖音怎么直播点赞(抖音怎么直播点歌)

  • 苹果11不按侧边怎么锁屏(苹果11不按侧边按钮)

    苹果11不按侧边怎么锁屏(苹果11不按侧边按钮)

  • 腾讯聊天记录保存几年(腾讯聊天记录保存多久失效)

    腾讯聊天记录保存几年(腾讯聊天记录保存多久失效)

  • 电源风扇进风还是出风(电源风扇的风往里吹还是往外吹)

    电源风扇进风还是出风(电源风扇的风往里吹还是往外吹)

  • 计算机时代划分依据(计算机时代划分的依据)

    计算机时代划分依据(计算机时代划分的依据)

  • 腾讯会议可以共享屏幕吗(腾讯会议可以共享爱奇艺视频吗)

    腾讯会议可以共享屏幕吗(腾讯会议可以共享爱奇艺视频吗)

  • 升级后的华为手机悬浮球设置在哪里(升级后的华为手机nova8如何关闭纯净模式)

    升级后的华为手机悬浮球设置在哪里(升级后的华为手机nova8如何关闭纯净模式)

  • 改ip地址后有什么后果(改ip地址后有什么好处)

    改ip地址后有什么后果(改ip地址后有什么好处)

  • 计算机网络的功能有哪四个(计算机网络的功能主要表现在硬件资源共享)

    计算机网络的功能有哪四个(计算机网络的功能主要表现在硬件资源共享)

  • ipad2很卡反应慢怎么办(ipad2很卡解决办法)

    ipad2很卡反应慢怎么办(ipad2很卡解决办法)

  • 快手上点红心和关注收费吗(快手点红心和关注)

    快手上点红心和关注收费吗(快手点红心和关注)

  • 网络大数据特点(网络大数据时代的特征是什么)

    网络大数据特点(网络大数据时代的特征是什么)

  • 找不到文件netcfg.hlp是什么意思(找不到文件netpowerzip)

    找不到文件netcfg.hlp是什么意思(找不到文件netpowerzip)

  • word文档使用的缺省扩展名(Word文档使用的缺省扩展名是.DOTA对B错)

    word文档使用的缺省扩展名(Word文档使用的缺省扩展名是.DOTA对B错)

  • jbl如何和电脑连接(jbl音响连接电脑)

    jbl如何和电脑连接(jbl音响连接电脑)

  • 苹果x无线充电怎么开启(苹果x无线充电多少w)

    苹果x无线充电怎么开启(苹果x无线充电多少w)

  • 怎么取消电脑上的垃圾广告(怎么取消电脑上的开机密码)

    怎么取消电脑上的垃圾广告(怎么取消电脑上的开机密码)

  • 抖音更换背景音乐教程(抖音怎么换音乐背景)

    抖音更换背景音乐教程(抖音怎么换音乐背景)

  • 触宝电话如何设置方法(触宝电话如何设置密码)

    触宝电话如何设置方法(触宝电话如何设置密码)

  • Win7系统防止锁定的主页被恶意篡改的方法(怎么让win7不锁定)

    Win7系统防止锁定的主页被恶意篡改的方法(怎么让win7不锁定)

  • 怎么成为稚晖君?(稚晖君的学历)

    怎么成为稚晖君?(稚晖君的学历)

  • 支付境外劳务费需要缴纳哪些税费
  • 普通发票税率1%要交税吗
  • 双定户经营所得用申报吗
  • 内含报酬率指
  • 简易征收预缴税款可以抵扣吗
  • 厂部管理人员薪酬计入什么费用
  • 建筑业预缴企业所得税
  • 减税降费对企业的影响案例
  • 纳税人领购普通发票要求
  • 固定资产盘亏是营业外支出吗
  • 分期收款销售商品确认收入会计分录
  • 房地产契税新政策2021退税
  • 公司开出增值税发票可以作为货款证据起诉
  • 3%税率是一般纳税人还是小规模
  • 服务业发票税率是多少
  • 付款小于发票金额的原因
  • 退货专票已经认证进项税怎么处理
  • 工信部联企业[2011]300号 小型企业
  • 问福利费的发票如果是增值税专用发票,增值税可以抵扣吗?
  • 用于研发的材料进项能否加计抵扣1%
  • 两公司之间内部转账的会计处理
  • 金融机构计提减值准备
  • 分公司筹备方案
  • 坏账准备本期期末应有金额
  • 酒店长包房正常打几折
  • 腾讯手游助手卡顿严重
  • 新版edge浏览器兼容模式怎么设置
  • 预付账款和应付账款怎么调账
  • deepin安装windows字体
  • win10重装系统后网卡没了
  • 商场充值卡发票在哪开
  • 用公司资质应交什么费用
  • 政策性搬迁补偿收入如何财税处理
  • 银行对公账户收款码手续费多少
  • 高新企业政府补贴怎么入账
  • 酒店需要的原材料和包装费有哪些
  • 主营业务收入会计分录例题
  • mediabrowser.exe是什么
  • 材料采购业务流程
  • 年金单位缴费计入个人账户(税前)
  • html5期末大作业智能家具
  • 哪些费用报销可以不用发票
  • 其他应付款清账
  • python怎么过滤多余空格
  • 织梦自适应模板怎么弄
  • 小规模纳税企业在应交增值税明细科目
  • 金蝶软件修改凭证
  • 期末存货材料成本差异
  • 跨年发票能不能用
  • 如何处理库存货
  • 税控技术维护费普通发票可以抵扣吗
  • 商贸企业发出商品怎么确认收入
  • 管理人员工资属于酌量性固定成本
  • 主播工资不发应该到哪里投诉
  • 电子发票报销后退款
  • 职工福利费税前扣除标准是应发工资还是实发工资
  • 高速过路费抵扣增值税
  • 结转已到期未兑现的商业承兑汇票会计分录
  • 分红做什么会计分录
  • 财务费用和应付利息都在借方
  • 折扣 会计
  • 外汇汇率调整分为哪几种
  • 公司向员工个人借款怎么处理
  • mysql中/g
  • mac修改文件名
  • Extjs4 GridPanel 的几种样式使用介绍
  • python结巴分词
  • rpg游戏脚本已经被备份
  • 获取外网ip地址有什么用
  • jquery设置图片大小
  • 2个月培训
  • android network
  • python web ui
  • 由简入繁是成语吗
  • 开票系统增值税专票税率选多少
  • 增值税是否在利润表反映
  • 江苏 税务局
  • 税务鉴定收费标准
  • 新沂恩华大药房会员日
  • 从哪里可以免费听歌
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设