vue 父子组件加载顺序

自己动手丰衣足食!在父子组件中把生命周期函数都写上并打印,自然就知道了,而且记得牢!
Myform.vue父组件,RichText.vue子组件,下面是打印结果。
Myform.vue?657b:83 父 beforeCreate
Myform.vue?657b:85 父 created
Myform.vue?657b:86 父 beforeMount

RichText.vue?09a6:153 子beforeCreate
RichText.vue?09a6:155 子 created
RichText.vue?09a6:156 子 beforeMount
RichText.vue?09a6:63 子 mounted
Myform.vue?657b:63 父 mounted
Myform.vue?657b:87 父 beforeUpdate

RichText.vue?09a6:157 子 beforeUpdate
RichText.vue?09a6:158 子 updated
Myform.vue?657b:88 父 updated
其实,大家关注这个顺序无非就两种情况,1面试,2项目应用中父子组件加载时,值初始化放在哪里较好,因为经常遇到的问题就是子组件无法加载父组件的props传值,并且有时候父组件的值变化了子组件却没有跟着变
下面就第二种情况说明一下:
通常,我们在父组件的created中发请求获取数据,通过prop传递给子组件。子组件在created或者mounted中拿父组件传递过来的数据,这样处理有时候是有问题的。有可能子组件获取不到值,有童鞋说我传一个name=“张三”,子组件明明显示了值呀,其实在实际项目中,为了减少页面响应时间,我们在父组件获取值一般都采用axios等异步方式获取值,在请求数据较多或是网络情况不佳的时候,子页面已经渲染了但是值还没获取到,解决办法是

1.在子组件标签上加上v-if=“childData”,这样没有获得数据前子组件不渲染,等获得数据后再渲染就可以了
2.在子组件中使用 watch 监听,父组件获取到值,这个值就会变化,自然是可以监听到的,最好使用深度监听,防止vue2的子组件在对数组或对象深层次监听时不变化,我们使用this.$nextTick保证数据能获取

props:['childData'],
watch:{
    childData:{
      deep:true,
      handler:function(newVal,oldVal) {
        this.$nextTick(() => {
          this.childData= newVal
        })
      }
    },
}

谁能仅靠十年寒窗苦读,去经营百岁人生?
活到老,学到老!
知识改变人生!
共勉!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值