父子组件生命周期及子组件获取数据传值问题剖析

 更新时间:2023年10月12日 08:33:55   作者:孤独的野鬼  
这篇文章主要介绍了父子组件生命周期及子组件获取数据问题剖析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

一、父子组件的生命周期

1.普通父子组件:

父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount->子mounted->父mounted

2.爷组件Y、父组件F、子组件Z

其中父组件为component(:is="")写法,

子组件为按需引入写法 

switch(this.pos){
    case enums.top:
        return ()=> import("./top.vue")
    default:
        return ()=>import("./default.vue")
}

生命周期:

爷beforeCreate-爷created->爷beforeMount->父beforeCreate->父created->父beforeMount->父mounted->爷mounted->子beforeCreate->子created->子beforeMount->子mounted

二、父传子props数据问题分析

1.异步数据问题 在子组件的created和mounted打印不到最新的props 

如父组件传过来的数据是created中请求接口获取的,走到父created遇见请求接口的异步任务,会将其放到一个任务队列,继续执行生命周期(生命周期是同步的)钩子,执行到子组件的created和mounted,还没开始请求接口当然打印不到最新的数据,只能打印到父组件在data中定义的该数据

注意:如果在created中有await语法则await之后的代码块同样的也会被放入任务队列,先执行子组件的生命周期,子挂载后再执行父mounted中的同步代码,等所有同步任务执行完再执行await的异步及await之后的代码块

2.同步数据 父组件在data定义的数据或执行到子created前父组件生命周期中的同步数据

同步数据可以在子组件的created中直接打印处理

三、子组件渲染及如何处理父组件的异步数据 

1.无需在子组件中进行处理的数据

如父传递的数据无需特别处理,不论该数据是同步异步,都可用来展示,因为vue是响应式的即使异步数据等数据更新后页面后自动刷新的,不过若为异步数据在子的created里打印不到最新的,不过为什莫要打印呢哈哈

2.子对接受的父数据需要处理

同步:可直接在created写方法进行处理

异步:

方案一:watch 监听到传来的新数据时通过方法进行处理

方案二:在父组件添加v-if 如下,请求接口后 给list赋值,通过list的长度判断是否展示模块

这样就可以确保子组件执行created值一定是接口的值然后再进行处理,相当于把数据变成同步的了

topModule(v-if="list.length")
data(){
    return {
        list:[]   
     }
}

以上就是父子组件生命周期及子组件获取数据问题的详细内容,更多关于父子组件生命周期传值的资料请关注脚本之家其它相关文章!

相关文章

  • 详解windows下vue-cli及webpack 构建网站(三)使用组件

    详解windows下vue-cli及webpack 构建网站(三)使用组件

    本篇文章主要介绍了详解windows下vue-cli及webpack 构建网站(三)使用组件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • vue绑定设置属性的多种方式(5)

    vue绑定设置属性的多种方式(5)

    这篇文章主要为大家详细介绍了vue绑定设置属性的多种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • vue v-for直接循环数字实例

    vue v-for直接循环数字实例

    今天小编就为大家分享一篇vue v-for直接循环数字实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • vue3中vue.config.js配置Element-plus组件和Icon图标实现按需自动引入实例代码

    vue3中vue.config.js配置Element-plus组件和Icon图标实现按需自动引入实例代码

    这篇文章主要给大家介绍了关于vue3中vue.config.js配置Element-plus组件和Icon图标实现按需自动引入的相关资料,在Vue 3中可以通过配置vue.config.js文件来进行按需自动引入,需要的朋友可以参考下
    2024-02-02
  • 使用Plotly.js在Vue中创建交互式散点图的示例代码

    使用Plotly.js在Vue中创建交互式散点图的示例代码

    Plotly.js是一个功能强大的JavaScript库,用于创建交互式数据可视化,它支持各种图表类型,包括散点图、折线图和直方图,在Vue.js应用程序中,Plotly.js可用于创建动态且引人入胜的数据可视化,本文介绍了使用Plotly.js在Vue中创建交互式散点图,需要的朋友可以参考下
    2024-07-07
  • 最简单的vue消息提示全局组件的方法

    最简单的vue消息提示全局组件的方法

    这篇文章主要介绍了最简单的vue消息提示全局组件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • Vue CLI 3搭建vue+vuex最全分析(推荐)

    Vue CLI 3搭建vue+vuex最全分析(推荐)

    这篇文章主要介绍了Vue CLI 3搭建vue+vuex最全分析(推荐),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • 浅谈Vue的双向绑定和单向数据流冲突吗

    浅谈Vue的双向绑定和单向数据流冲突吗

    单项数据流和双向数据绑定的概念,这两种不是相互冲突的吗?即然能用v-model双向数据绑定,不应该就是双向数据流了吗?本文就详细的介绍一下
    2022-04-04
  • 对vue中的事件穿透与禁止穿透实例详解

    对vue中的事件穿透与禁止穿透实例详解

    今天小编就为大家分享一篇对vue中的事件穿透与禁止穿透实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • ant-design-vue按需加载的坑的解决

    ant-design-vue按需加载的坑的解决

    这篇文章主要介绍了ant-design-vue按需加载的坑的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05

最新评论