每个 Vue 实例在被创建时都要经过一系列的初始化过程 :创建实例,装载模板,渲染模板、销毁等。Vue为生命周期中的每个状态都设置了钩子函数(监听函数)。当Vue实例处于不同的生命周期时,对应的函数就会被触发调用。

生命周期图示

下图展示了实例的生命周期。你不需要立马弄明白所有的东西,不过随着你的不断学习和使用,它的参考价值会越来越高。

钩子函数

每个 Vue 实例在被创建时都要经过一系列的初始化过程。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这些函数在生命周期的不同阶段自动触发执行,这给了用户在不同阶段添加自己的代码的机会。

生命周期钩子 含义
beforeCreate(vue对象创建前) 组件实例刚被创建,组件属性计算之前,此时不能访问属性
created(创建后) 组件实例创建完,属性可以访问,但是还不能通过 $el 访问DOM
beforeMount(加载前) 模板编译、挂载之前,可以通过 $el 访问渲染前的DOM
mounted(载入后) 模板编译、挂载之后,可以通过 $el访问渲染前的DOM
beforeUpdate(更新前) 组件更新之前,可以获取组件更新前的DOM
updated(更新后) 组件更新之后,可以获取组件更新后的DOM
beforeDestroy(销毁前) 组件销毁前调用
destroyed(销毁后) 组件销毁后调用

通过以下案例,演示下各个钩子函数的使用:

<div id="app"><h1>{{msg}}</h1><button @click="changeMsg">点我修改msg</button>
</div><script>const vm = new Vue({el:"#app",data:{msg:"hell vue"},methods:{changeMsg(){this.msg = "hello baizhi";}},beforeCreate:function(){// alert("beforeCreate...");console.log("beforeCreate...");console.log(this.$el);//undefinedconsole.log(this.msg);//undefined},created:function(){// alert("created...");console.log("created...");console.log(this.$el);//undefinedconsole.log(this.msg);//hello vue},beforeMount:function(){// alert("beforeMount...");console.log("beforeMount...");console.log(this.$el);//加载前的标签,就是原始代码,插值表达式、事件绑定都还没解析console.log(this.msg);//hello vue},mounted:function(){// alert("mounted...");console.log("mounted...");console.log(this.$el);//加载后的标签,插值表达式、事件绑定均已解析console.log(this.msg);//hello vue},beforeUpdate:function(){// alert("beforeUpdated...");console.log("beforeUpdated...");console.log(this.$el.innerHTML);//更新前的DOMconsole.log(this.msg);//hello baizhi},updated:function(){// alert("updated...");console.log("updated...");console.log(this.$el.innerHTML);//更新后的DOMconsole.log(this.msg);//hello baizhi},beforeDestroy:function(){//在console中执行vm.$destroy()触发,开发时很少关注// alert("destroyed...");console.log("beforeDestroy...");console.log(this.$el);console.log(this.msg);},destroyed:function(){// alert("destroyed...");console.log("destroyed...");console.log(this.$el);console.log(this.msg);}})
</script>

说明:一般地,我们会在 created 钩子函数中,从服务端获取数据,并对数据进行初始化。

Vue第一部分(6):Vue的生命周期相关推荐

  1. Vue 的属性、方法和生命周期

    实例 <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8&qu ...

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

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

  3. Vue笔记(五)——Token生命周期

    Token 定义:令牌,一般用于用户身份验证 Token的特点 随机性 不可预测性 时效性 无状态 跨域 node所需模块 jsonwebtoken 生成并加密Token // 设置对象 let us ...

  4. vue created 调用方法_vue 基础-生命周期 lifecycle 的执行顺序和作用

    前言 <vue 基础>系列是再次回炉 vue 记的笔记,除了官网那部分知识点外,还会加入自己的一些理解.(里面会有部分和官网相同的文案,有经验的同学择感兴趣的阅读) 平时开发中,我真的不太 ...

  5. Vue深入学习4—指令和生命周期

    1.Vue是怎么识别 v- 指令的? 首先将HTML结构解析成属性列表,存入到数组中,接着遍历数组中的每一个节点,获取到不同指令对应的方法. // 将HTML看作真正的属性列表 var ndoeAtt ...

  6. vue中beforeupdate意思_VUE的生命周期之beforeMount、mounted、beforeUpdate、updated

    释放双眼,带上耳机,听听看~! beforeMount:渲染前,被vue管理起来的dom在vue实例里还没完成渲染,所以就是还不能访问vue渲染的dom,平时项目中基本用不到,知道有这个是干什么的就行 ...

  7. Vue —— 基础(六)(生命周期)

    Vue2.x 系列文章目录 内容 参考链接 Vue2.x - 基础(零) 模板语法.数据绑定.el/data写法.MVVM模型 Vue2.x - 基础(一) 数据代理.事件处理.键盘事件 Vue2.x ...

  8. Vue的系列之详解生命周期

    生命周期介绍 简单说就是一个组件从开始到最后消亡所经历的各种状态,就是一个组件的生命周期 vue的生命周期图 beforeCreate(创建前) beforeCreate(初始化页面前) 详情:实例初 ...

  9. vue 中 created 和 mounted 钩子生命周期 问题

    正如前面一篇博客中遇到的钩子生命周期问题 ,如果对基本的原理不清楚 就很难弄懂 这个问题 到底是什么原因造成的.所以今天我们就来简单的研究下 这两个钩子到底是个啥意思 created  钩子 moun ...

  10. RxJava 教程第一部分:入门之 生命周期管理

    原文出处:http://blog.chengyunfeng.com/?p=954#ixzz4KaYiN2oT Rx 背后的理念是:无法知道事件流何时发射数据.也不知何时结束发射,但是你需要控制何时开始 ...

最新文章

  1. IP地址与网络上的其他系统有冲突
  2. Prometheus 序章/第一/二讲
  3. linux ifconfig route ip 网络相关命令
  4. CF198D Cube Snake(三维空间/增量构造)
  5. 遇到Visual Studio 当前不会命中断点.还没有为该文档加载任何符号的情况
  6. oracle 中表,oracle中表操作
  7. ALLyeSNO 优化版浩方 第二版 Ver 2007 06 15 清除广告 自动挤房间
  8. 铁大Facebook——十天冲刺(4)
  9. python高中题_python练习题
  10. 五一单片机将歌谱转换为c语言,51单片机蜂鸣器音乐简谱转换工具
  11. 双向链表、双向循环链表
  12. QTableView样式设置
  13. vue+element使用动态加载路由方式实现三级菜单页面显示问题
  14. Nginx解决无法代理域名问题
  15. 链栈的表示和实现(C++)
  16. Excel值班表方案:使用Excel进行不同班次排班并实现多功能自动化统计及视图转换
  17. Tcp通讯错误代码10061
  18. Leetcode算法题-解法转载
  19. pol点获取及火星坐标系转换
  20. 懂得换位思考,是一个人的顶级修养

热门文章

  1. 动态SQL和PL/SQL的EXECUTE选项分析
  2. 通过JQUERY获取SELECT OPTION中选中的值
  3. 股票开盘的最大成交额-----一道不错的贪心算法题目
  4. 使用双栈实现一个队列
  5. ruby on rails 2.3+的版本不再支持cgi
  6. SQL Sever中SQL语句语法,适合初学者使用
  7. @计算机专业大学生,毕业后如何明确自己的职业方向,该走那条路?
  8. 数据行业工作3年,我靠这7个能力,成为领导青睐的高级数据分析师
  9. 极目眺望的tiantianguandan
  10. 批量网站IP地址查询-BlueCatTools 最新版下载地址