Vue在GitHub上的star比React还多。虽然npm包下载量没有react大,但是vue的上升势头确实强劲。Vue生命周期2.0和1.0还是有一点区别的。百度也有很多关于生命周期的博文。今天简单提一下生命周期,再说说一些可能没有被注意到的点。先上Vue官网的生命周期图:先列出生命周期再一一详解beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestroydestroyed:beforeCreate实例组件刚刚创建,元素DOM和数据还没有初始化。我不知道如何在这个循环中进行生命操作。.创建的data数据已经初始化,可以调用方法,但是没有渲染DOM。有人问,请求是异步的,不会阻碍实例加载。这是我个人层面的问题。我在这里纠正它。在这个循环中,因为请求是异步的,所以不会阻碍实例的加载,除非那些同步操作会导致页面空白。这样如果在这个周期内进行请求,渲染速度会更快。beforeMountDOM还没有挂载,数据已经初始化,但是数据的双向绑定还是显示{{}},因为Vue使用了虚拟DOM(VirtualDom)技术。先占一个洞。挂载的数据和DOM都挂载,将上一个循环占用的数据渲染成值。您可以在此处请求,但创建的请求会更好。这个循环适合执行需要操作DOM的初始化方法。每当页面数据更改时,都会触发beforeUpdate。在数据更新之前,页面数据仍然是原始数据。当您请求分配数据时,将执行此循环。如果没有数据变化,则不会执行。只要页面数据发生变化,就会触发updated。数据更新后,更新页面数据。BeforeUpdate和updated要谨慎使用,因为它们会在页面更新数据时触发,在这里操作数据会影响性能,造成死循环。beforeDestroy循环在组件被销毁之前执行。在我的项目开发中,我觉得这其实有点类似于路由钩子beforeRouterLeave,在路由离开时执行。但是beforeDestroy不能阻止路由跳转,但是可以做一些路由离开Time的操作,因为data和method也可以在这个循环中使用。比如一个倒计时组件,如果在路由跳转的时候没有清零,定时器还在,可以在这个时候清空定时器。Destroyed函数在Vue实例被销毁后被调用。调用后,Vue实例指向的所有东西都将被解除绑定,所有事件监听器将被移除,所有子实例将被销毁。
