1. 生命周期有哪些?
Vue2.x系统自带有8个:
beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
beforeDestroy
destroyed
2. 发送请求在created还是mounted?
这个问题需要参考具体的实际情况:
- 父组件引入了子组件,先执行父组件的前三个生命周期,再执行子组件的前四个生命周期
- 业务需求是在父组件中引入子组件,并且优先加载子组件的数据,发送请求放mounted中
- 如果在当前组件没有依赖关系,那么将发送请求放在哪个生命周期都是可以
3. 为什么发送请求不在beforeCreate里?
- 因为如果请求在methods中封装好了,那么在beforeCreate调用的时候,在beforeCreate阶段是拿不到methods里面的方法的,会报错。
- beforeCreate中没有$data, created中有$data, 因此created可以拿到methods里的方法。
4. 在created中如何获取dom
- 通过异步代码获取dom
- 通过系统内置的this.$nextTick()
5. 一旦进入组件会执行哪些生命周期?
- beforeCreate
- created
- beforemount
- mounted
6. 第二次或者第N次进去组件会执行哪些生命周期?
- beforeCreate created beforeMount mounted
- 若加入了keep-alive组件,则只会执行activated,因为组件已经缓存
7. 你在什么情况下用过哪些生命周期?说一说生命周期使用场景?
- created: 单个组件请求, 简单请求或者是调用methods里面已经封装好的方法
- mounted: 同步操作可以获取dom,如果子组件先请求后父组件,需要把请求放在mounted中
- activated:判断id是否相等,不等就发请求(缓存页面数据)
- destroyed: 在关闭页面的时候,记录视频播放的时间, 初始化的时候从上一次的历史开始播放