美文网首页程序员Vue.js开发技巧
Vue 实例生命周期总结

Vue 实例生命周期总结

作者: CielNi | 来源:发表于2017-06-05 19:53 被阅读0次

问题

由于Vue项目中需要前端导出表格的功能,需要用到第三方组件tableexport。使用该组件只需通过该语句TableExport(document.getElementsByTagName("table"))生成一个TableExport对象。然而我却遇到一个bug,迟迟得不到预期,花了一整个白天没有解决。

睡觉之前我打印了document.getElementsByTagName("table")发现是undefined,这时候我意识到我生成TableExport对象的时机错误了,此时该table元素还没有插入文档中。于是我把这行代码从created钩子函数中移到了ready钩子函数中(vue 1.0),bug终于解决了。

之前的代码是这样子的:

  created () {
    this.startTime = '2016-06-01'
    this.endTime = moment().format('YYYY-MM-DD')
    this.updateColor()
    this.serial_numbers = ''
    this.product = 'nano'
    TableExport(document.getElementsByTagName("table"))
  },

  ready () {
    
  }

修改后的代码是这样子的:

  created () {
    this.startTime = '2016-06-01'
    this.endTime = moment().format('YYYY-MM-DD')
    this.updateColor()
    this.serial_numbers = ''
    this.product = 'nano'
  },

  ready () {
    TableExport(document.getElementsByTagName("table"))
  }

原因

这是由于在created钩子执行时,Vue实例虽已经创建完成,但模板还未被编译,元素还未插入DOM文档,所以document.getElementsByTagName("table")返回的是undefined。而在ready钩子执行时,模板已被编译,元素已插入DOM文档。

总结

查阅了官网并参考网上其他资料后,我总结出了如下了的Vue 实例生命周期表

Vue 1.0 Vue 2.0 描述
init beforeCreate 实例初始化之后,配置之前
created created 实例已经创建完成之后,已完成配置,挂载之前。
beforeCompile - 模板编译开始前
- beforeMount 挂载之前
compiled - 模板编译,但是不担保el已插入文档)
ready mounted 模板编译(el第一次插入文档之后)/挂载之后
- beforeUpdate 数据更新前
- updated 数据更新后
- activated keep-alive 组件激活时
- deactivated keep-alive 组件停用时
attached - el插入DOM时
detached - el从DOM中删除时
beforeDestory beforeDestory 实例销毁之前
destoryed destoryed Vue 实例销毁后,Vue 实例指示的所有东西都会解绑,所有的子实例也会被销毁

文章标题:Vue 实例生命周期总结
文章作者:Ciel Ni
文章链接:http://www.cielni.com/2017/06/05/vue-lifecycle/
有问题或建议欢迎在我的博客讨论,转载或引用希望标明出处,感激不尽!

相关文章

  • Vue.js入门(二):生命周期

    1 生命周期 Vue生命周期是Vue实例从创建到销毁的过程,就是生命周期。在Vue实例的生命周期过程中会运行生命周...

  • vue学习第二课之vue的生命周期

    vue生命周期图解: vue实例的生命周期 什么是生命周期:从Vue实例创建、运行、到销毁期间,总是伴随着各种各样...

  • vue生命周期

    一 vue生命周期 Vue的生命周期:就是vue实例从创建到销毁的全过程 二 vue生命周期钩子 vue生命周期...

  • 10、Vue_生命周期

    实例的生命周期 实例的生命周期图示(选项/生命周期钩子)实例生命周期 解释1.var v = new Vue{}:...

  • Vue生命周期

    vue生命周期 vue实例的创建到销毁的过程就是vue的生命周期,也就是实例创建-->初始化数据-->编译模板--...

  • Vue

    Vue框架 一、Vue基础 添加Vue到网页(无需保存到本地) Vue生命周期 二、Vue 实例 创建Vue实例:...

  • 一、vue基础知识点

    每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的: 实例生命周期钩子 每个 Vue 实例...

  • 2020-05-24

    日常知识点总结(vue篇): 1、vue的生命周期: Vue实例从开始创建,初始化数据,编译模板,挂载Dom->渲...

  • 前端之路-VUE面试题

    vue生命周期面试题vue 生命周期是什么? Vue 实例从创建到销毁的过程,就是生命周期 beforeCreat...

  • VUE实例生命周期钩子

    1、vue实例生命周期钩子的由来 每个vue应用都是通过vue函数创建一个新的vue实例开始的: vue实例再被创...

网友评论

    本文标题:Vue 实例生命周期总结

    本文链接:https://www.haomeiwen.com/subject/scrwfxtx.html