生命周期

定义:

每个 Vue 实例在被创建时都要经过从创建倒挂载再到更新、卸载的一系列过程,同时在这个过程中也会运行一些叫做生命周期钩子的函数,可以让我们用自己注册的js方法控制整个大局,在这些事件响应方法中的this直接指向的是vue的实例。

钩子函数的执行时间

beforeCreate

在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用。

created

实例已经创建完成之后被调用。在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算, watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。

beforeMount

在挂载开始之前被调用:相关的 render 函数首次被调用。

mounted

el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。

beforeUpdate

数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。

updated

由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。

beforeDestroy

实例销毁之前调用。在这一步,实例仍然完全可用。

destroyed

Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。 该钩子在服务器端渲染期间不被调用。

还有两个特殊的(配合使用keep-alive):activated、deactivated

activated

keep-alive组件被激活时调用

deactivated

keep-alive组件被停用时调用

钩子函数中该做的事情

created

实例已经创建完成,因为它是最早触发的原因可以进行一些数据,资源的请求。

mounted

实例已经挂载完成,可以进行一些DOM操作

beforeUpdate

可以在这个钩子中进一步地更改状态,这不会触发附加的重渲染过程。

updated

可以执行依赖于 DOM 的操作。然而在大多数情况下,你应该避免在此期间更改状态,因为这可能会导致更新无限循环。

该钩子在服务器端渲染期间不被调用。

destroyed

可以执行一些优化操作

keep-alive

在使用vue-router时有时需要使用来缓存组件状态,这个时候created钩子就不会被重复调用了,如果我们的子组件需要在每次加载的时候进行某些操作,可以使用activated钩子触发。

vue从入门到精通之基础篇(三)生命周期相关推荐

  1. vue从入门到精通之基础篇(二)组件

    (1).局部组件的使用 ​ 渲染组件-父使用子组件 1: 创建子组件(对象) var Header = { template:'模板' , data是一个函数,methods:功能,component ...

  2. vue从入门到精通之基础篇(一)语法概要

    (1).vue起步 1:引包 2:启动 new Vue({el:目的地,template:模板内容}); options 目的地 el 内容 template 数据 data 保存数据属性 数据驱动视 ...

  3. vue从入门到精通之进阶篇(三)axios

    基本使用 Axios.method('url',[,..data],options) .then(function(res){ }) .catch(function(err) { } ) 合并请求 t ...

  4. vue从入门到精通之进阶篇(一)vue-router基础

    路由原理 传统开发方式 url改变后 立刻发起请求,响应整个页面,渲染整个页面 SPA 锚点值改变后 不会发起请求,发起ajax请求,局部改变页面数据 页面不跳转 用户体验更好 SPA single ...

  5. vue从入门到精通之进阶篇(二)组件通信:兄弟组件通信

    $emit和$on进行组件之间的传值 注意:emit和emit和emit和on的事件必须在一个公共的实例上,才能够触发 需求: ​ 1.有A,B,C三个组件,同时挂载到入口组件中 ​ 2.将A组件中的 ...

  6. vue从入门到精通之高级篇(一)vue-router的高级用法

    今天要介绍的是路由元信息,滚动行为以及路由懒加载这几个的使用方法. 1.路由元信息 什么是路由元信息,看看官网的解释,定义路由的时候可以配置 meta 字段可以匹配meta字段,那么我们该如何使用它, ...

  7. vue从入门到精通之进阶篇(一)vue-router:导航守卫

    vue-router的导航守卫之在导航完成后获取数据 需求:在导航完成之后加载数据.渲染DOM <!DOCTYPE html> <html lang="en"&g ...

  8. vue从入门到精通之进阶篇(五)脚手架vue-cli

    vue-cli2.x脚手架的使用 参考链接:https://github.com/vuejs/vue-cli/tree/v2#vue-cli-- 安装: npm install -g vue-cli ...

  9. vue从入门到精通之进阶篇(四)模块化工具 webpack

    模块化 webpack命令 npm init -y npm install webpack@3.6.0 --save-dev --registry https://registry.npm.taoba ...

最新文章

  1. [deviceone开发]-日程日历示例
  2. bmob php支付,基于Bmob在小程序端实现一键支付
  3. 20140710文安c++面试总结
  4. VTK:图片之ImageWarp
  5. android应用崩溃的调试方法
  6. Photoshop 保存PNG格式交错和不交错有差别
  7. php 查询and or,php – SQL查询多个AND和OR不起作用
  8. node python复用代码_python-代码复用(函数、lambda、递归、PyInstaller库)
  9. 论文浅尝 - EMNLP2020 | 基于规则引导的协作 agent 知识图谱推理学习
  10. find命令基本使用一览
  11. 自带密钥 (BYOK)
  12. wifidog php源码 配置,wifidog官方源码
  13. 楼宇报警器 java程序_智能楼宇防盗报警系统
  14. 单页面优化有哪些可以参考的策略
  15. 【Linux】常见错误 “cp: omitting directory”解决办法
  16. android 通话自动录音服务
  17. 如何用ipad控制多台电脑主机
  18. 进化算法中的两种常用交叉算子SBX和DE
  19. SQLserver 外键语句出现“引用了无效的表”
  20. Centos操作系统yum源的使用

热门文章

  1. Device /dev/ttyUSB0 is locked.解决办法
  2. python抽象工厂模式_Python设计模式之抽象工厂模式
  3. 读取当前linux进程内存_(笔记)Linux上的内存分配
  4. easy excel date 类型解析报错_ptarchiver原理解析
  5. 受限玻尔兹曼机准备知识——蒙特卡洛方法
  6. 最好用的koa2+mysql的RESTful API脚手架,mvc架构,支持node调试,pm2部署。
  7. Java生鲜电商平台-生鲜供应链(采购管理)
  8. Centos 7 配置 NFS
  9. 如何优化增强第三方库?
  10. Android开发学习---使用Intelij idea 13.1 进行android 开发