Vue生命周期及其钩子函数
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生命周期及其钩子函数相关推荐
- 初探 Vue 生命周期和钩子函数
生命周期 生命周期函数就是 Vue 实例在某一个时间点会自动执行的函数. 简单来说就是好像把人的出生到死亡分成一个个阶段,你取名字肯定是在你出生阶段,而不是在成年阶段:你结婚肯定是在成年阶段,而不是在 ...
- Vue生命周期和钩子函数的一些理解
vue生命周期简介 咱们从上图可以很明显的看出现在vue2.0都包括了哪些生命周期的函数了. 生命周期探究 对于执行顺序和什么时候执行,看上面两个图基本有个了解了.下面我们将结合代码去看看钩子函数的执 ...
- Vue生命周期中钩子函数理解简记
Vue生命周期钩子函数 钩子函数 beforeCreate created beforeMount mounted beforeUpdate updated beforeDestroy destroy ...
- [vue] 你有写过自定义指令吗?自定义指令的生命周期(钩子函数)有哪些?
[vue] 你有写过自定义指令吗?自定义指令的生命周期(钩子函数)有哪些? bind inserted update componentUpdated unbind 个人简介 我是歌谣,欢迎和大家一起 ...
- vue的生命周期和钩子函数的理解
对于vue的生命周期,官方文档上并没有太多的文字性说明,把自己对生命周期和钩子函数的理解记录下来 官方文档 自己的理解 vue生命周期的概念:vue对象从被创建,到执行逻辑,最后到被销毁的过程. 具体 ...
- Vue的过滤器,生命周期的钩子函数和使用Vue-router
一.过滤器 1.局部过滤器 在当前组件内部使用过滤器 给某些数据 添油加醋 //声明 filters:{'过滤器的名字':function(val,a,b){//a 就是alax ,val就是当前的数 ...
- Vue生命周期及钩子
一.前言 Vue是一个专注于视图层的一个响应式的前端框架,而且使用起来特别简单.灵活以及横向扩展性极高,跨平台,目前也广受前端开发人员以及企业的喜爱,从某种程度上能够达到高效率开发生产 二.Vue中的 ...
- vue 声明周期函数_Vue2.0 探索之路——生命周期和钩子函数的一些理解
前言 在使用vue一个多礼拜后,感觉现在还停留在初级阶段,虽然知道怎么和后端做数据交互,但是对于mounted这个挂载还不是很清楚的.放大之,对vue的生命周期不甚了解.只知道简单的使用,而不知道为什 ...
- vue知识(四)生命周期、钩子函数、路由
文章目录 一.生命周期 (一)vue生命周期 二.钩子函数 (一)钩子函数 (二)4大阶段8个方法 (1)如何知道vue生命周期到达了什么阶段? (2)钩子函数有哪些 (三)初始化 (1)new Vu ...
最新文章
- 内核中的对象操作的方法模块 和 C++ 构造和析构的对比
- SAP BW/4 HANA亮点解析
- gcc-linux6.3,[环境配置]Ubuntu16.04下编译安装gcc6.3.0
- 使用ildasm和ilasm修改dll
- 知识工程.Vs.软件构架,框架,设计模式.
- export function函数传参_04 js高阶函数(惰性函数、柯里化函数、compose函数)和单例设计模式...
- java中参数“ ...“的用法和意思
- Ubuntu 12.10安装配置JDK7环境
- linux禁止客户端上传文件_linux 文件服务
- mysql和oracle的时间字段区别_Oracle数据库中关于日期和时间字段类型
- 【重装Windows的十大理由】
- ios开发swift_10位Swift和iOS开发大师
- 5G 智能融合城域网特点与组网方案
- 【初探篇】Nginx 虚拟主机与域名解析
- expdp和impdp备份数据库(数据泵备份)
- 嵌入式系统项目设计——基于LED、按键、蜂鸣器的打地鼠游戏(完整代码)
- 四种常用聚类及代码(三):birch(一种层次聚类)
- 开源精选:AntdFront —— React 纯 Hook 多标签微前端管理系统解决方案
- 【机器学习】如何成为当下合格的算法工程师
- python中for无限循环_关于循环:在Python中从1循环到无穷大