前言

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

因为我们有时候会在几个钩子函数里做一些事情,什么时候做,在哪个函数里做,我们不清楚。

于是我开始先去搜索,发现vue2.0的生命周期没啥文章。大多是1.0的版本介绍。最后还是找到一篇不错的(会放在最后)

vue生命周期简介

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

生命周期探究

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

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

{{ message }}

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); //undefined

console.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); //undefined

console.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)

}

})

create 和 mounted 相关

咱们在chrome浏览器里打开,F12看console就能发现

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的生命周期的理解,如有错误还请大牛指正,让小子也有得进步。

如果对你有所帮助,那是我最大的荣幸。

对了,兄台,对你有帮助的话不妨点个收藏或者推荐再走。

参考文献

感谢上面几位兄台的文章和提问。

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

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

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

  2. Vue2.0 探索之路——生命周期和钩子函数

    vue生命周期简介 Lifecycle hooks 在这里插入代码片 生命周期探究 对于执行顺序和什么时候执行,看上面两个图基本有个了解了.下面我们将结合代码去看看钩子函数的执行. ps:下面代码可以 ...

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

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

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

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

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

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

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

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

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

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

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

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

  9. vue学习之生命周期,钩子函数执行顺序

    vue的生命周期,钩子函授执行顺序 一般的执行顺序(从上往下): beforeCreate 在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用 ...

最新文章

  1. perl语言编程 第四版_2020年,5 种 将死的编程语言!
  2. Go 语言编程 — 使用 delve 进行 DEBUG 调试
  3. TensorFlow Keras 官方教程
  4. 大学的很重要的元素是圈子,是人气
  5. IEnumerableT和IQueryableT区分
  6. UpdataPanel学习之 RenderMode
  7. NLP基础—1.NLP概述
  8. 科研院所推进6S管理的难点及推进手段分析
  9. 笨方法学python 习题23
  10. 常用电脑端口作用大曝光
  11. 自己动手编译nodemcu固件(ESP8266)
  12. c#通讯录管理系统(女朋友版本)
  13. 彩虹表破解md5密码
  14. 基于云计算运维毕业设计与制作
  15. 如何提高学习效率,三大法则,五大步骤
  16. 读书笔记(英文) The Ngihtingale and Rose
  17. CMD到底是啥?有啥用?
  18. 第一次作业补充:项目调研
  19. mixamo骨骼_mixamo动作库的模型和动作绑定控制器的方法-上集
  20. 张氏矢量化骨骼化细化算法

热门文章

  1. java调用方法返回数组_JAVA使用下面的方法头编写方法,返回两个数组列表的并集...
  2. linux跑r语言代码,R语言快捷键(示例代码)
  3. java集合租车_Java入门第二季 租车系统
  4. CTF盲水印工具安装(排雷)
  5. Python基础入门:endswith() 函数
  6. 使用pip安装python库的几种方式,解决pip安装python库慢的问题
  7. Python基础教程:xrange和range的使用区别
  8. Python中使用class(),面向对象有什么优势
  9. Python 列表的应用场景有哪些?你使用对了吗?
  10. java实现套接字网络编程_Java网络编程(一)Socket套接字