vue生命周期简介

Lifecycle hooks

在这里插入代码片

生命周期探究

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

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浏览器里打开,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 :当前组件已被删除,清空相关内容

当然,还有更多,继续探索中…

Vue2.0 探索之路——生命周期和钩子函数相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. React UI 库:React Suite 3.7.8 版本更新
  2. 数据库事务系列-事务模型基础
  3. svn update 发生冲突(conflict)时,各选项含义
  4. 【cJson】 JSON格式详解
  5. 使用QT创建PythonGUI程序
  6. 前端学习(1349):用户的增删改查操作6删除
  7. python中代理模式分为几种_通俗 Python 设计模式——代理模式
  8. 如何升级docker的版本 ?
  9. Carlosfu技术系列文章总目录
  10. neo4j 节点与关系
  11. 基于持续集成的轻量级接口自动化测试 【持续更新...】
  12. ios中UIView和CALayer关系
  13. eclipse+java类不报错_eclipse,代码中有错误,项目或者java类中却不显示红叉
  14. PHP之封装梦网云通讯短信发送类
  15. 组策略 计算机配置 安全设置,使用组策略配置 Windows 防火墙设置
  16. sql级联更新和级联删除
  17. POJO,PO,JAVABEAN
  18. CORTEX-M 系列调试下载总览
  19. 品优购项目html代码
  20. 税分类及配置 tax

热门文章

  1. 安装memcache
  2. overflow encountered in ubyte_scalars像素加减运算溢出异常
  3. leetcode 172 python
  4. SpringMVC-动力节点-王鹤
  5. 详述一则数据库死锁故障的分析过程
  6. 从Oracle到PostgreSQL:最全控制文件
  7. ORA-600_16703比特币攻击案例分析
  8. 携程运维自动化平台,上万服务器变更也可以很轻松
  9. 图像视频压缩:深度学习,有一套
  10. 实战分享丨MySQL 与Django版本匹配相关经验