vue的生命周期、生命周期函数,又叫钩子函数   

生命周期钩子===生命周期函数===生命周期事件

目录

一、Vue生命周期

1、vue实例从创建到销毁的过程

2、vue生命周期有4个阶段

3、父子组件执行顺序

二、钩子函数

1、钩子函数三个阶段

2、vue第一次加载页面会执行哪几个钩子

3、vue中常用的钩子

三、代码实现

1、代码案例

2、执行结果

3、分析总结


一、Vue生命周期

1、vue实例从创建到销毁的过程

2、vue生命周期有4个阶段

  • 阶段一:创建  (创建vue实例)
  • 阶段二:挂载   (data数据渲染到el上)
  • 阶段三:更新   (检测data变化并更新el)
  • 阶段四:  销毁   (解除data与el的绑定关系)

3、父子组件执行顺序

挂载:父created -> 子created -> 子mounted> 父mounted
        更新:父beforeUpdate -> 子beforeUpdated -> 子updated -> 父updated
        销毁:父beforeDestroy -> 子beforeDestroy -> 子destroyed -> 父destroyed

二、钩子函数

1、钩子函数三个阶段

挂载阶段:beforeCreate、created、beforeMounted、mounted
更新阶段:beforeUpdate、updated
销毁阶段:beforeDestroy、destroyed

  • 1、beforeCreate :创建vue实例前。这个钩子就是 data中的数据还没有创建,拿不到数据
  • 2、created:vue实例创建完成。这个钩子就是data / methods / computed中的数据已经创建了,可以访问到数据
  • 3、beforeMount : data数据还没有渲染el或者$montd上面。这个钩子就是el或着$montd已经完成了创建,但是还没有进行渲染到页面
  • 4、mounted :完成挂载,data中的数据渲染到页面上。这个钩子就是已经完成了渲染
  • 5、beforeUpdate:数据更新前(检测数据发生了变化,但是真是DOM元素页面还没有更新)
  • 6、updated:完成数据的更新(把data中修改后的数据渲染到DOM页面上)
  • 7、beforeDestroy:vue实例销毁前,这个钩子就是解除了data和el的绑定关系
  • 应用场景:一般用来清除定时器/全局事件
  • 8、destroyed  完成销毁

2、vue第一次加载页面会执行哪几个钩子

1、创建vue的实例之前:beforeCreate

2、创建vue实例后:created

3、挂载前:beforemount

4、挂载后(初始的渲染,将data中的数据渲染到el上):mounted

3、vue中常用的钩子

1、created:完成data数据创建(一般用于发送axios的请求)

2、mounted:完成了初始的渲染,data中的数据渲染到el上,但没有加载到页面上

三、代码实现

1、代码案例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body>
<div id="app">
<h1 id="ape">{{message}}</h1>
</div>
<script src="js/vue.min.js"></script>
<script>
let vm = new Vue({
el:'#app',
data:{
message:'APESOURCE'
},
computed:{},
watch:{},
// beforeCreate vue实例创造前
beforeCreate(){
console.log('vue实例创建前');
console.log('----------'+this.$el);
console.log('----------'+this.$data)
console.log('----------'+this.message);
},
//vue实例创造之后,可以操作数据
created:function(){
console.log('vue实例创建后');
console.log('----------'+this.$el);
console.log('----------'+this.$data)
console.log('----------'+this.message);
},
// DOM挂载前
beforeMount:function(){
console.log('DOM挂载前');
// 此时的$el为虚拟的DOM节点
console.log('----------'+this.$el);
console.log('----------'+this.$data);
console.log(document.querySelector('#ape').innerHTML);
},
// DOM挂载后
mounted :function() {
console.log('DOM挂载后');
// 此时的$el为真是的DOM节点
console.log('----------'+this.$el);
console.log('----------'+this.$data);
console.log(document.querySelector('#ape').innerHTML);
},
methods:{
}
})
</script>
</body>
</html>

2、执行结果

3、分析总结

  • vue实例创建前:输出的都显示的没有定义
  • vue实例创建后:实例创建后,可以操作数据
  • DOM挂载前:第三个数据时虚拟DOM
  • DOM挂载前:第三个数据时真实的DOM

Vue生命周期及其钩子函数相关推荐

  1. 初探 Vue 生命周期和钩子函数

    生命周期 生命周期函数就是 Vue 实例在某一个时间点会自动执行的函数. 简单来说就是好像把人的出生到死亡分成一个个阶段,你取名字肯定是在你出生阶段,而不是在成年阶段:你结婚肯定是在成年阶段,而不是在 ...

  2. Vue生命周期和钩子函数的一些理解

    vue生命周期简介 咱们从上图可以很明显的看出现在vue2.0都包括了哪些生命周期的函数了. 生命周期探究 对于执行顺序和什么时候执行,看上面两个图基本有个了解了.下面我们将结合代码去看看钩子函数的执 ...

  3. Vue生命周期中钩子函数理解简记

    Vue生命周期钩子函数 钩子函数 beforeCreate created beforeMount mounted beforeUpdate updated beforeDestroy destroy ...

  4. [vue] 你有写过自定义指令吗?自定义指令的生命周期(钩子函数)有哪些?

    [vue] 你有写过自定义指令吗?自定义指令的生命周期(钩子函数)有哪些? bind inserted update componentUpdated unbind 个人简介 我是歌谣,欢迎和大家一起 ...

  5. vue的生命周期和钩子函数的理解

    对于vue的生命周期,官方文档上并没有太多的文字性说明,把自己对生命周期和钩子函数的理解记录下来 官方文档 自己的理解 vue生命周期的概念:vue对象从被创建,到执行逻辑,最后到被销毁的过程. 具体 ...

  6. Vue的过滤器,生命周期的钩子函数和使用Vue-router

    一.过滤器 1.局部过滤器 在当前组件内部使用过滤器 给某些数据 添油加醋 //声明 filters:{'过滤器的名字':function(val,a,b){//a 就是alax ,val就是当前的数 ...

  7. Vue生命周期及钩子

    一.前言 Vue是一个专注于视图层的一个响应式的前端框架,而且使用起来特别简单.灵活以及横向扩展性极高,跨平台,目前也广受前端开发人员以及企业的喜爱,从某种程度上能够达到高效率开发生产 二.Vue中的 ...

  8. vue 声明周期函数_Vue2.0 探索之路——生命周期和钩子函数的一些理解

    前言 在使用vue一个多礼拜后,感觉现在还停留在初级阶段,虽然知道怎么和后端做数据交互,但是对于mounted这个挂载还不是很清楚的.放大之,对vue的生命周期不甚了解.只知道简单的使用,而不知道为什 ...

  9. vue知识(四)生命周期、钩子函数、路由

    文章目录 一.生命周期 (一)vue生命周期 二.钩子函数 (一)钩子函数 (二)4大阶段8个方法 (1)如何知道vue生命周期到达了什么阶段? (2)钩子函数有哪些 (三)初始化 (1)new Vu ...

最新文章

  1. 内核中的对象操作的方法模块 和 C++ 构造和析构的对比
  2. SAP BW/4 HANA亮点解析
  3. gcc-linux6.3,[环境配置]Ubuntu16.04下编译安装gcc6.3.0
  4. 使用ildasm和ilasm修改dll
  5. 知识工程.Vs.软件构架,框架,设计模式.
  6. export function函数传参_04 js高阶函数(惰性函数、柯里化函数、compose函数)和单例设计模式...
  7. java中参数“ ...“的用法和意思
  8. Ubuntu 12.10安装配置JDK7环境
  9. linux禁止客户端上传文件_linux 文件服务
  10. mysql和oracle的时间字段区别_Oracle数据库中关于日期和时间字段类型
  11. 【重装Windows的十大理由】
  12. ios开发swift_10位Swift和iOS开发大师
  13. 5G 智能融合城域网特点与组网方案
  14. 【初探篇】Nginx 虚拟主机与域名解析
  15. expdp和impdp备份数据库(数据泵备份)
  16. 嵌入式系统项目设计——基于LED、按键、蜂鸣器的打地鼠游戏(完整代码)
  17. 四种常用聚类及代码(三):birch(一种层次聚类)
  18. 开源精选:AntdFront —— React 纯 Hook 多标签微前端管理系统解决方案
  19. 【机器学习】如何成为当下合格的算法工程师
  20. python中for无限循环_关于循环:在Python中从1循环到无穷大

热门文章

  1. GE IFix OPC服务分析
  2. 数模matlab入门教程-001-xlsread用法
  3. 从敦煌套系国潮厨电看华帝潘叶江的创新理念
  4. win10解决解压复制粘贴速度慢的问题
  5. 抽象工厂模式--实例分析
  6. YOLO3多gpu训练方法
  7. 最新JAVA安装教程(Mac版)
  8. 互动应用开发p5.js——WebGL太阳系
  9. Linux 格式化U盘为ext4格式以及修复分区表方法
  10. Oracle 11g RAC 原地升级到 19c