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

  • 单元格格式怎么设置成文本格式(单元格格式怎么设置成数字格式)

    单元格格式怎么设置成文本格式(单元格格式怎么设置成数字格式)

  • oppo账号密码在哪里查(oppo账号密码在哪里设置密码)

    oppo账号密码在哪里查(oppo账号密码在哪里设置密码)

  • 抖音怎么关闭下载视频功能(抖音怎么关闭下面的字)

    抖音怎么关闭下载视频功能(抖音怎么关闭下面的字)

  • 固态240g硬盘够不够(固态硬盘240g够用么)

    固态240g硬盘够不够(固态硬盘240g够用么)

  • 苹果11序列号fk开头什么意思(苹果11序列号Fk1CHG4GN705)

    苹果11序列号fk开头什么意思(苹果11序列号Fk1CHG4GN705)

  • 二维码收款码可以发给别人吗(二维码收款码可以改吗)

    二维码收款码可以发给别人吗(二维码收款码可以改吗)

  • hub和交换机区别(hub跟交换机的区别)

    hub和交换机区别(hub跟交换机的区别)

  • 淘宝的评价管理多久更新一次(淘宝的评价管理周月在哪里)

    淘宝的评价管理多久更新一次(淘宝的评价管理周月在哪里)

  • 粉笔账号一次允许多少人登(粉笔账号最多可以几台设备登录)

    粉笔账号一次允许多少人登(粉笔账号最多可以几台设备登录)

  • 怎样用微信交合作医疗

    怎样用微信交合作医疗

  • 电脑屏幕怎么截屏(电脑屏幕怎么截屏ctrl加什么)

    电脑屏幕怎么截屏(电脑屏幕怎么截屏ctrl加什么)

  • 微信分享在哪里找(微信的分享在哪里可以看到)

    微信分享在哪里找(微信的分享在哪里可以看到)

  • 小米音量悬浮窗怎么关闭(小米音量悬浮窗怎么打开)

    小米音量悬浮窗怎么关闭(小米音量悬浮窗怎么打开)

  • 苹果手机免打扰模式打电话提示什么(苹果手机免打扰模式在哪里关闭)

    苹果手机免打扰模式打电话提示什么(苹果手机免打扰模式在哪里关闭)

  • airpods不使用怎么关机(airpods没用)

    airpods不使用怎么关机(airpods没用)

  • 苹果11怎么插耳机(苹果11怎么插耳机蓝牙)

    苹果11怎么插耳机(苹果11怎么插耳机蓝牙)

  • 怎么样把微信好友静音(怎么样把微信好友彻底删除)

    怎么样把微信好友静音(怎么样把微信好友彻底删除)

  • 手机多个摄像头的用处(手机多个摄像头怎么切换)

    手机多个摄像头的用处(手机多个摄像头怎么切换)

  • pcem00是什么手机型号(pcgm00是什么手机)

    pcem00是什么手机型号(pcgm00是什么手机)

  • qq大会员怎么换名牌(qq会员怎么换成普通名片)

    qq大会员怎么换名牌(qq会员怎么换成普通名片)

  • 调制解调器怎么重启(调制解调器怎么打开)

    调制解调器怎么重启(调制解调器怎么打开)

  • g933如何蓝牙连手机(g933s连接蓝牙)

    g933如何蓝牙连手机(g933s连接蓝牙)

  • airpods音质和有线的一样吗(airpods音质和有线的大小一样吗)

    airpods音质和有线的一样吗(airpods音质和有线的大小一样吗)

  • JavaScript 30 JavaScript 日期格式

    JavaScript 30 JavaScript 日期格式

  • 国际税收协定的名词解释
  • 新办企业发票核定及申领,选否行吗
  • 利润分配的规则
  • 全年一次性奖金税率表
  • 其他收益科目代码
  • 发票领回来了怎么读入发票
  • 注册地址与实际办公地址不一致怎么办
  • 城市规划部门收取的市政建设配套费是否作为契税的征税基数
  • 红字发票是否需要写进出仓单里
  • 外购商品用于促销能抵扣吗
  • 其他应交款和应交税费
  • 单位员工借款的认定
  • 非营业活动交增值税吗
  • 在会计中加速折旧的方法
  • 工会经费申报网址是什么
  • 资本公积金转增资本属于所有者权益吗
  • 房地产公司未售房产出租账务处理
  • 手机中的流量统计在哪里寻找
  • 劳务报酬所得包括哪些?与工资薪金所得的区别?
  • 认证超时什么意思
  • PHP:oci_num_rows()的用法_Oracle函数
  • php如何实现
  • 忘记电脑开机密码怎么打开电脑
  • 会计中在建工程与建筑安装工程的区别
  • 百合花怎么养殖简单
  • php中url什么意思
  • 增值税专用发票上注明的价款含税吗
  • PHP:pg_field_type()的用法_PostgreSQL函数
  • php内容修改
  • hp是什么软件
  • 增值税专用发票几个点
  • 全资子公司取得注册证可以免临床
  • 汇算清缴的表在哪里
  • vue2:elementUI中Form 表单在特定情况下做动态rules添加删除
  • 员工宿舍装宽带
  • 国内来料加工会亏本吗
  • 住宿费电子发票没有章
  • 机器学习期末复习题
  • Laravel4中的Validator验证扩展用法详解
  • 企业的会计科目可以任意设置随意修改
  • php hash_hmac
  • 利润表三步法
  • 小规模纳税人财务报表是按季还是按月申报
  • 小规模纳税人采购需要发票吗
  • 个体工商户转企业政策
  • 第四季度报表和年报对不上
  • 现金股利和现金利润的区别
  • 差旅费津贴要交税吗怎么算
  • 小规模纳税人免税怎么做账
  • 主营业务成本的摘要怎么写
  • mysql密码忘了怎么办?
  • 未确认融资费用摊销额怎么计算
  • 购入厂部用小汽车一部是管理费用吗
  • 制造费用包括哪些内容科目
  • 运费在会计科目中属于什么费用
  • 现金日记账年结怎么做
  • 个人开具的收据能税前扣除吗
  • 个人所得税个人申报和公司申报区别
  • 新成立的公司购买的家具可以计入主营业务成本吗
  • 会计账户分类是什么意思
  • 京东卖家怎么开普通发票
  • 查询sql server版本
  • sql server key
  • sql server如何打开mdf格式文件
  • centos bond mode
  • 清除桌面应用软件
  • mac os 如何备份
  • linux 开启snmp
  • windos10正式版
  • cocos2dx官方文档
  • js继承的关键字
  • vim tagbar
  • javascriptz
  • javascript高级程序设计最新版
  • JavaScript中setUTCMilliseconds()方法的使用详解
  • js类的实现
  • 备份系统apk
  • 苏州峰谷电怎么申请
  • 云南省低保查询网上查询
  • 税务分局长级别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设