Vue中的生命周期钩子

Vue实例从创建到销毁的过程,就是Vue的生命周期,也就是从开始创建、初始化数据、编译模板、挂载DOM、更新、卸载等一系列的过程。在这个过程中会运行一些叫做生命周期钩子的函数。

模板编译:将template里的内容转换成真正的HTML代码。
在这里插入图片描述

  1. beforeCreate:创建前。在new一个vue实例后,只有一些默认的生命周期钩子和默认事件,其他的东西都还没创建。此时,data、methods和DOM元素均不能访问。
  2. created:创建后。实例已经创建。data、methods可以访问,但是DOM元素仍然不能访问。
  3. beforeMount:挂载前。在内存中已经编译好了模板,但是还没有挂载到页面中。访问不到具体的DOM元素
  4. mounted:挂载后。DOM元素可以访问。
  5. beforeUpdate:更新前。data中的数据是最新的,但还没有重新开始渲染DOM节点,页面中显示的数据还是旧的。
  6. updated:更新后。data中的数据和DOM都完成了更新。
  7. beforeDestroy:销毁前。在这一步,实例仍然完全可用。
  8. destroyed:销毁后。Vue实例的所有东西都会被解除绑定。

调用接口的时候,函数放在created/beforeMount/mounted 都可以,一般放在created中,但是如果要操作dom的话,就需要放在mounted中。

生命周期钩子的 this 上下文指向调用它的 Vue 实例。
不要在选项属性或回调上使用箭头函数,比如 created: () => console.log(this.a) 或 vm.$watch(‘a’, newValue => this.myMethod())。因为箭头函数并没有 this,this 会作为变量一直向上级词法作用域查找,直至找到为止,经常导致 Uncaught TypeError: Cannot read property of undefined 或 Uncaught TypeError: this.myMethod is not a function 之类的错误。

发布了258 篇原创文章 · 获赞 21 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/wsln_123456/article/details/105379911