1.生命周期有哪些
VUE2.x 自带八个:beforeCreate,created,beforeMount,mounted,beforeUpdate,updated,beforeDestroy,destroyed
2.一旦进入组件会执行哪些生命周期
beforeCreate,created,beforeMount,mounted
beforeCreate,没有DOM($el),没有data,不能拿到方法
created没有DOM($el),有data,可以拿到方法
beforeMount:准备DOM,有data
mounted:挂载DOM,有data
3.父组件引入子组件,生命周期的顺序是?
beforeCreate(父)-》created(父)-》beforeMount(父)-》
beforeCreate(子)-》created(子)-》beforeMount(子)-》mounted(子)-》
mounted(父)
4.发送请求是在哪个生命周期?beforeCreate为什么不发送请求?
先执行同步再执行异步,生命周期是同步的,请求是异步的,加载页面四个生命周期执行完才会执行发送请求,写在哪里都行
如果请求在methods中封装好的,在beforeCreate中拿不到
根据父组件引用子组件的顺序,如果要优先加载子组件数据,请求需要放在父组件mounted中,没有依赖关系的话,放在哪个生命周期都可以
5.在created如何获得dom
1)只要created中异步请求(请求、setTimeout,Promise.xxx,async+await)中获取dom就可以了 2)使用vue系统内置this.$nextTick $ref
6.加入keep-alive会执行哪些生命周期?
keep-alive 是什么?缓存当前组件
新增activated\deactivated
第一次进入界面五个生命周期:beforeCreate,created,beforeMount,mounted,activated
第二(N)次进入:activated
7.生命周期使用场景
1)单组件请求用created
2)同步条件下,获得DOM。选择mounted;先子组件请求,后父组件请求,其他区情况具体分析;
3)keep-alive时,使用activated,如果页面id不同,在这里重新发送请求
4)关闭页面记录视频播放历史,初始化的时候从上一次播放历史播放
从网上找个图