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

  • 华为荣耀20青春版机身多厚(华为荣耀20青春版图片)

    华为荣耀20青春版机身多厚(华为荣耀20青春版图片)

  • 抖音怎么自己创作视频(抖音怎么自己创建合集)

    抖音怎么自己创作视频(抖音怎么自己创建合集)

  • 蓝牙耳机忽略后搜不到(蓝牙耳机忽略后搜索不到怎么回事)

    蓝牙耳机忽略后搜不到(蓝牙耳机忽略后搜索不到怎么回事)

  • 微信打字覆盖后面的字怎么办(微信打字覆盖后面的内容)

    微信打字覆盖后面的字怎么办(微信打字覆盖后面的内容)

  • 如何关闭微信刷脸支付(如何关闭微信刷脸支付功能)

    如何关闭微信刷脸支付(如何关闭微信刷脸支付功能)

  • vivox9手机volte通话

    vivox9手机volte通话

  • win10突然软件都打不开(win10软件都打不开怎么回事)

    win10突然软件都打不开(win10软件都打不开怎么回事)

  • iphone11发烫是什么原因(iphone11发热发烫)

    iphone11发烫是什么原因(iphone11发热发烫)

  • 手机上出现hd怎么去除(手机上出现HD怎么关闭华为)

    手机上出现hd怎么去除(手机上出现HD怎么关闭华为)

  • vue快动作怎么用(vue点击动画)

    vue快动作怎么用(vue点击动画)

  • 如何查到对方微信位置(如何查到对方微信号绑定手机)

    如何查到对方微信位置(如何查到对方微信号绑定手机)

  • vue怎么调节视频快慢(vue视频编辑速度怎么放慢)

    vue怎么调节视频快慢(vue视频编辑速度怎么放慢)

  • 苹果系统为什么不能下载小红书(苹果系统为什么好用)

    苹果系统为什么不能下载小红书(苹果系统为什么好用)

  • qq音乐绿钻账号可以几个人使用(qq音乐绿钻账号无资格兑换)

    qq音乐绿钻账号可以几个人使用(qq音乐绿钻账号无资格兑换)

  • iqoo有防水功能吗(iqoo5防水等级)

    iqoo有防水功能吗(iqoo5防水等级)

  • 爱追剧怎么用不了(爱追剧怎么用不了流量)

    爱追剧怎么用不了(爱追剧怎么用不了流量)

  • 消息已发出但被对方拒收了是什么意思(消息已发出但被对方拒收什么意思)

    消息已发出但被对方拒收了是什么意思(消息已发出但被对方拒收什么意思)

  • 微信头像右上角有个圈是什么意思(微信头像右上角的数字怎么弄)

    微信头像右上角有个圈是什么意思(微信头像右上角的数字怎么弄)

  • 抖音一直闪退怎么办(抖音一直闪退怎么回事)

    抖音一直闪退怎么办(抖音一直闪退怎么回事)

  • 苹果手机要激活是怎么回事(苹果手机要激活后才能查序列号吗)

    苹果手机要激活是怎么回事(苹果手机要激活后才能查序列号吗)

  • 小米9自带充电器多少w(小米9自带充电器)

    小米9自带充电器多少w(小米9自带充电器)

  • 爱奇艺横屏在哪里设置(爱奇艺横屏在哪里打开)

    爱奇艺横屏在哪里设置(爱奇艺横屏在哪里打开)

  • Win10如何解决重启后桌面图标重新排列(win10重启按什么键重置)

    Win10如何解决重启后桌面图标重新排列(win10重启按什么键重置)

  • OPENCV多种模板匹配使用对比(opencv模板匹配多目标旋转)

    OPENCV多种模板匹配使用对比(opencv模板匹配多目标旋转)

  • WordPress建立数据库连接时出错解决方法(wordpress建立数据库失败)

    WordPress建立数据库连接时出错解决方法(wordpress建立数据库失败)

  • 增值税专用发票几个点
  • 为临时工购买礼物怎么说
  • 取得社会团体会费专用票据可以税前扣除吗
  • 企业所得税年报过了申报期还能修改吗
  • 高速公路上的机电一体化有哪些
  • 适用会计制度备注怎么填?
  • 盈余公积转增股本的分录怎么写
  • 汽车折旧年限 税法
  • 个人独资企业是一般纳税人吗
  • 理财产品 会计分录
  • 印花税是不是不用计提
  • 个体工商户怎么注册
  • 可以给行政事业单位开增值税专用发票吗
  • 税务手工发票还能用吗2019
  • 混凝土增值税政策
  • 水利行政事业性收费收入会计分录
  • 批发行业增值税税负率是多少呢
  • 个人定期存款利率怎么算
  • 小规模收到专票要做进项税额转出吗
  • 免征的教育费附加如何账务处理
  • 代收代付水电费会计分录
  • 坏账准备年底有余额吗
  • 统一社会信用代码在哪里可以查询
  • 增值税普通发票几个点
  • 存货年末余额怎么算出来的
  • 白银及其制品出自哪里
  • 计征所得税会计分录怎么做?
  • 长期股权投资溢价购入
  • 完成产值怎么算
  • win8电脑一键还原怎么操作
  • 净资产收益率是什么指标
  • 调解仲裁法什么时候实施
  • PHP:mb_internal_encoding()的用法_mbstring函数
  • 什么是产品?产品的举例子
  • 资产划转的账务处理
  • php 实例
  • sk是什么软件的缩写
  • PHP:pcntl_setpriority()的用法_PCNTL函数
  • 工业用地被政府征收怎么补偿
  • 损益类科目月末结转到哪个科目
  • 金税盘锁死咋办
  • 承租方的物品如何处理
  • transformer模型包含哪些结构
  • 什么叫呆账损失
  • 个人出租非住房房产税
  • js与或运算符
  • 如何访问一台网络上的电脑
  • ibps对公提回贷记有什么影响
  • 固定资产的定义是什么?
  • 代扣的个人所得税怎么做分录
  • 固定资产盘亏账务处理的问题
  • 扶贫差旅费
  • 研发成功后的产品出售如何处理
  • 工人的工资占企业的比例
  • 工程结算和工程竣工决算的区别
  • 应付账款核算的项目
  • sqlserver函数大全
  • ubuntu系统管理
  • linux虚拟系统
  • wbs是什么文件
  • win7 word
  • windows10下软件的app
  • centos如何查询ip
  • mac怎么旋转窗口
  • win8应用程序没有响应
  • win个性化设置没反应
  • win10连热点无网络
  • jquery提交表单调用serialize方法
  • 编写自己的linux系统
  • css划动
  • vue实现分页功能
  • python难度
  • jQuery Ajax 上传文件处理方式介绍(推荐)
  • 国家电子税务局登录入口
  • 国家税务总局的局长什么级别
  • 山东国税网
  • 进出口货物的报关时限
  • 公司注销报税怎么申报
  • 广西国家税务局于红林
  • 日本海淘推荐
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设