Vue生命周期

Vue在GitHub上面的star数量已经超过了react,虽然npm包下载的数量尚未react多,可是Vue上升的势头真的很猛。react

Vue生命周期2.0和1.0差异仍是有一点的,生命周期的博客文章百度也是不少,今天我简单提一下生命周期,而后说一下一些可能比较没人注意的点。web

先上Vue官网的生命周期图片:npm


先罗列出生命周期而后一个一个讲解异步

beforeCreate性能

createdspa

beforeMount双向绑定

mountedorm

beforeUpdate生命周期

updated图片

beforeDestroy

destroyed

beforeCreate

实例组件刚建立,元素DOM和数据都尚未初始化,暂时不知道能在这个周期里面进行生命操做。

created

数据data已经初始化完成,方法也已经能够调用,可是DOM未渲染。有人问了,请求都是异步的,并不会阻碍实例加载。这是我我的水平的问题,这边改正,在这个周期里面,请求由于是异步的,不会阻碍实例加载,除非是那些同步操走才会致使页面空白。这样说来,在这个周期里面进行请求,渲染速度反而会更快。

beforeMount

DOM未完成挂载,数据也初始化完成,可是数据的双向绑定仍是显示{{}},这是由于Vue采用了Virtual DOM(虚拟Dom)技术。先占住了一个坑。

mounted

数据和DOM都完成挂载,在上一个周期占位的数据把值给渲染进去。能够在这边请求,不过created请求会更好一些。这个周期适合执行初始化须要操做DOM的方法。

beforeUpdate

只要是页面数据改变了都会触发,数据更新以前,页面数据仍是原来的数据,当你请求赋值一个数据的时候会执行这个周期,若是没有数据改变不执行。

updated

只要是页面数据改变了都会触发,数据更新完毕,页面的数据是更新完成的。beforeUpdate和updated要谨慎使用,由于页面更新数据的时候都会触发,在这里操做数据很影响性能和容易死循环。

beforeDestroy

这个周期是在组件销毁以前执行,在我项目开发中,以为这个其实有点相似路由钩子beforeRouterLeave,都是在路由离开的时候执行,只不过beforeDestroy没法阻止路由跳转,可是能够作一些路由离开的时候操做,由于这个周期里面还可使用data和method。好比一个倒计时组件,若是在路由跳转的时候没有清除,这个定时器仍是在的,这时候就能够在这个里面清除计时器。

Destroyed

说实在的,我还真的不知道这个周期跟beforeDestroy有什么区别,我在这个周期里面调用data的数据和methods的方法都能调用,因此我会以为跟beforeDestroy是同样的。

相关文章
相关标签/搜索