一个组件加载的时候生命周期的渲染顺序为:beforeCreate,created,beforeMount,mounted
如果一个父组件中引入了子组件,则父子组件的生命周期执行顺序为:父beforeCreate,父created,父beforeMount,子beforeCreate,子created,子beforeMount,子mounted,父mounted
1.如果请求数据不需要考虑父子关系,那么在哪一个生命周期执行都是可以的,由于请求是异步函数会在同步函数的后面执行,所以在上面四个任何一个生命周期请求之后再对DOM元素进行处理,也是可以获取到DOM元素的。
2.如果请求方法单独封装之后放在methods中的,则不可以在beforCreate中进行this.方法名()的方式调用,此时this指向不正确,会报错。
3.如果父组件子组件对数据有顺序的要求,则可以根据加载父子生命周期加载顺序来合理安排放在哪个生命周期里。
常用的生命周期理解:
1.created,单组件请求数据
2.mounted,可同步进行DOM操作;如果有父子组件嵌套,子组件的请求结果要先于父组件的请求,则子组件的请求可以写在created中,父组件的请求写在mounted中
3.actived,该生命周期是组件使用了keep-alive;可进行性能优化。在该生命周期中判断当前的id和上一次进来的id是否相同,如果不同则发起新请求,否则不进行请求。
4.destroyed,可以在该生命周期中进行一些保存的请求,比如一个视频播放器的播放时长可以在该生命周期中发起请求进行存储,以便下次打开该组件时,播放时长接上原来的