vue生命周期简介

咱们从上图可以很明显的看出现在vue2.0都包括了哪些生命周期的函数了。

生命周期探究

对于执行顺序和什么时候执行,看上面两个图基本有个了解了。下面我们将结合代码去看看钩子函数的执行。

ps:下面代码可以直接复制出去执行

<!DOCTYPE html>
<html>
<head><title></title><script type="text/javascript" src="https://cdn.jsdelivr.net/vue/2.1.3/vue.js"></script>
</head>
<body><div id="app"><p>{{ message }}</p>
</div><script type="text/javascript">var app = new Vue({el: '#app',data: {message : "xuxiao is boy" },beforeCreate: function () {console.group('beforeCreate 创建前状态===============》');console.log("%c%s", "color:red" , "el     : " + this.$el); //undefinedconsole.log("%c%s", "color:red","data   : " + this.$data); //undefined console.log("%c%s", "color:red","message: " + this.message)  },created: function () {console.group('created 创建完毕状态===============》');console.log("%c%s", "color:red","el     : " + this.$el); //undefinedconsole.log("%c%s", "color:red","data   : " + this.$data); //已被初始化 console.log("%c%s", "color:red","message: " + this.message); //已被初始化},beforeMount: function () {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: function () {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: function () {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: function () {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: function () {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: function () {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>
</html>

create 和 mounted 相关

咱们在chrome浏览器里打开,F12console就能发现

beforecreated:el 和 data 并未初始化 
created:完成了 data 数据的初始化,el没有
beforeMount:完成了 el 和 data 初始化 
mounted :完成挂载

另外在标红处,我们能发现el还是 {{message}},这里就是应用的 Virtual DOM(虚拟Dom)技术,先把坑占住了。到后面mounted挂载的时候再把值渲染进去。

update 相关

这里我们在 chrome console里执行以下命令

app.message= 'yes !! I do';

下面就能看到data里的值被修改后,将会触发update的操作。

destroy 相关

有关于销毁,暂时还不是很清楚。我们在console里执行下命令对 vue实例进行销毁。销毁完成后,我们再重新改变message的值,vue不再对此动作进行响应了。但是原先生成的dom元素还存在,可以这么理解,执行了destroy操作,后续就不再受vue控制了。

app.$destroy();

生命周期总结

这么多钩子函数,我们怎么用呢,我想大家可能有这样的疑问吧,我也有,哈哈哈。

beforecreate : 举个栗子:可以在这加个loading事件 
created :在这结束loading,还做一些初始化,实现函数自执行 
mounted : 在这发起后端请求,拿回数据,配合路由钩子做一些事情
beforeDestroy: 你确认删除XX吗? destroyed :当前组件已被删除,清空相关内容

Vue生命周期和钩子函数的一些理解相关推荐

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

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

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

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

  3. Vue生命周期及其钩子函数

    vue的生命周期.生命周期函数,又叫钩子函数    生命周期钩子===生命周期函数===生命周期事件 目录 一.Vue生命周期 1.vue实例从创建到销毁的过程 2.vue生命周期有4个阶段 3.父子 ...

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

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

  5. Vue2.0 探索之路——生命周期和钩子函数的一些理解

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

  6. mounted钩子函数_Vue 探索之路——生命周期和钩子函数的一些理解

    对于执行顺序和什么时候,下面我们将结合代码去看看钩子函数的执 行 <!DOCTYPE html> <html> <head><title></ti ...

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

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

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

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

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

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

最新文章

  1. java并发编程同步器 Semaphore、CyclicBarrier、Exchanger、CountDownLatch
  2. ALDownloadManager 基于Alamofire封装的下载器
  3. python 多进程共享类实例demo
  4. httpclient base64 文件上传_文件上传下载
  5. Print2flash在.NET(C#)64位中的使用,即文档在线预览(转载)
  6. [工具向]__关于androidstudio工具使用过程中学习到的一些知识点简记
  7. matlab 小波启发式阈值滤波,小波阈值去噪
  8. 如何在引导程序中将容器垂直对齐
  9. ros control
  10. WPF 获取控件模板中的控件
  11. IMPORTANT: You may need to close and restart your shell after running ‘conda init‘.
  12. C语言 符号的不同意义
  13. 适用于Creo 4.0-6.0的PTC Creo EMX 12.0.2.8
  14. PS CC2018替换/修改图片上的文字内容
  15. GGYUN免费网络验证系统源码对接Lua脚本成品
  16. 低代码平台和专业开发人员——完美搭档?
  17. cuda安装以及conda安装对应版本的pytorch-gpu
  18. Django Web 开发极简实战
  19. MySQL中:一条update语句是怎样执行的
  20. html 5 压缩zip,Zip

热门文章

  1. 关于Andrdoid编程中出现BufferQueue的“queueBuffer: fence is NULL”的一种解决方案
  2. SQL语句关联查询,UNION ALL用法,结果中查询
  3. AcWing 1015. 摘花生 (DP)
  4. 【英语】秋风吹---9月英语
  5. 简单干净的C#方法设计案例:SFCUI.AjaxValue()之三
  6. Scrum立会报告+燃尽图(Beta阶段第一次)
  7. 【poj3615】 Cow Hurdles
  8. (笔试题)和一半的组合数
  9. UVa 11889 (GCD) Benefit
  10. Java_模拟comet的实现