位置: 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安装步骤)

  • 土地 税
  • 申报增值税附加税减免项目选错了
  • 经营所得个税计算案例
  • 出租人融资租赁发生的初始直接费用
  • 企业注销,账面余额怎样调账
  • 专项附加扣除可以随时填报吗
  • 债权投资减值对摊余成本和利息收入的影响
  • 管理人员工作服计入什么科目
  • 个人股权转让给公司
  • 税务局代扣代缴税费
  • 小规模纳税人第一次网上报税
  • 银行如何做存款
  • 向其他单位无偿提供服务的不需缴纳增值税
  • 上季度开的发票这季度冲红怎么做会计分录?
  • 有支出没有发票应怎么整改
  • 与成本直接相关的工资怎么会计处理?
  • 采购退回的分录
  • 增值税发票小规模2023
  • 购买方开具红字信息表流程
  • 个人所得税申报是什么意思?
  • 电子普通发票进什么科目
  • 打款给个体户
  • 开发票货物或应税服务两行怎么开
  • 商品促销有关问题
  • 技术服务收入和产品服务收入举个例子
  • 企业债券和公司债券
  • 项目投资净现值计算公式
  • 固定资产改扩建账务处理
  • PHP:oci_field_name()的用法_Oracle函数
  • 木星应该涂什么颜色
  • 实行核定征收印花税的纳税期限为一个月税额较小的
  • 防伪税控风险纳税人
  • 跨市设立分公司
  • 非货币性资产交换是企业经常发生的
  • 陆家嘴金融贸易区管委会主任
  • php实现文件的下载
  • 有什么办法解决前进中的问题
  • three.js 教程
  • javascript常用的数据类型
  • 社会保险费的征收机构由什么规定
  • 命令start
  • python datetime把日期转换字符串
  • 应收账款期末余额在借方还是贷方
  • 应该如何打造自己
  • 标书注意事项与如何制作标书
  • 2020织梦建站教程全集
  • 利润总额包括的内容主要有
  • 公司帐户转到法人私卡备用金行吗
  • 车间设备折旧费计入产品成本吗
  • 企业赠送个人房产 所得税
  • 开票系统服务费计入什么费用
  • 总公司与分公司账务处理
  • 民办非企业的申请流程
  • 暂扣员工工资应怎么处理
  • 付款与开票单位不一致怎样做账
  • 销售废旧物资计入哪个科目
  • 以前年度损益调整怎么做账
  • 资产减值损失审计程序是什么
  • 商品盘点库存的方法
  • 新成立公司会计未来规划
  • mysql zip archive 版本(5.7.19)安装教程详细介绍
  • win95开始菜单
  • ubuntu文本编辑器怎么打开
  • 电脑重装xp系统怎么设置
  • rrpcsb.exe - rrpcsb是什么进程 有什么用
  • win7系统的桌面图标怎么调出来
  • unity控制相机
  • extjs DataReader、JsonReader、XmlReader的构造方法
  • bat批处理命令教程
  • 安卓wifimanager详解
  • 用bat脚本快速编程
  • javascriptcom
  • Android调用系统的电话拨号程序
  • 山西省税务局投诉平台
  • 仓储物流企业的事故指标
  • 别墅与普通住宅的优缺点
  • 北京市生育津贴发放标准
  • 销售折让怎么开票
  • 2020各省旅游
  • 云南省电子税务局登录入口
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设