今天在做iview项目的时候,子组件的的初始化数据必须从父组件的初始化数据里取到数据后发请求
执行顺序如下:
- 父组件 created
- 子组件 created
- 子组件 mounted
- 父组件 mounted
如果有多个子组件:
- 父组件created钩子结束后,依次执行子组件的created钩子
- 多个子组件的created执行顺序为父组件内子组件DOM顺序
- 多个子组件的mounted顺序无法保证,跟子组件本身复杂程度有关
- 父组件一定在所有子组件结束mounted钩子之后,才会进入mounted钩子
父组件
created() {
if (this.$route.query.id) {
this.getDetails(this.$route.query.id)
}
},
子组件在created的时候,父组件的初始数据为传来,然后采用的是监听父组件传递给子组件的数据,子组件有数据进来了,就立即发请求进行数据初始化
props: {
detailInfo: {
type: Object,
default: () => { }
},
}
watch: {
detailInfo(newVal) {
console.log(newVal, '0000')
//设置群日历详情
if (newVal) {
this.calendarDetail = this.detailInfo
this.setDetails(this.calendarDetail)
}
}
},