vue 父组件传值给子组件遇到的生命周期问题

项目遇到父组件传值给子组件,子组件监听数据变化可以用watch监听数据变化

watch:{

a:{

 handler(val) {

        console.log(val); // 这里就是父组件传递过来的真实数据

      }

        }

}

如果要在子组件打印父组件传来的数据必须是在beforeUpdate和updated生命周期才能监听的到,

原因如下:

 然后根据父子组件之间的生命周期函数执行的顺序,谈一谈我在项目中遇到的有关问题:
⭐问题一:父组件中的要传递的 props 属性是通过在created生命周期中发生ajax请求回来的一个数据,子组件的前四个生命周期中都无法拿到这个对象?
⭐原因是:父组件的created函数中调用某个方法而方法会去请求接口,而这个请求是属于异步操作,此时会把异步操作放到消息队列中,等到后面的父子生命周期函数等一系列同步任务执行完成后,会执行异步任务,即读取消息队列的任务,执行回调函数(这点可以去了解一下JS的单线程特点)。此时接口才会返回数据,父组件中的变量才能拿到该数据,但是子组件中的 created 、 mounted 这样只会执行一次的生命周期钩子,已经执行了,所以子组件的前4个生命周期是无法拿到父组件调接口拿来的数据的。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值