vue父子孙组件生命周期执行顺序

vue父子孙组件生命周期执行顺序

父子孙组件三级的各个生命周期的执行顺序,个人理解应该是:
父组件:created
子组件:created
孙组件:created,mouented
子组件:mounted
父组件:mounted
但是项目里孙组件的created里面执行了ajax,然后父组件的mounted里也执行了ajax,但是父组件的ajax先于孙组件的ajax完成,这个要怎么调整一下变成同步的顺序执行?


回答:

ajax的a指的是Asynchronous(异步),这当然不保证哪个先执行了,除非你改成同步请求,这会阻塞主线程,体验不好,如果你两个请求真的需要顺序执行那就提取一个等待孙组件ajax回调再通知父组件执行下一ajax,至于怎么通信这个方法很多搜一下


回答:

ajax的发起顺序可控,完成顺序就不好控制了,这个取决于相应速度了,先发起也未必先完成,如果想要控制结束的顺序就应该等前一个完成了再去发一下


回答:

ajax只是负责异步发送一个请求出去和接受请求结果 . 至于响应的顺序是由多方面决定的 , 比如服务器的带宽 , 客户端网速等 ...

如果想要满足你的使用场景 , 有两种解决方案

1 : 做一个简单的发布订阅 . 在孙组件请求结束后 , 通知父组件可以开始请求 .
2 : 可以将请求都放在父组件 , 可以使用 await 语法糖进行按序请求 . 孙组件作为UI组件使用 .

以上是 vue父子孙组件生命周期执行顺序 的全部内容, 来源链接: utcz.com/p/936046.html

回到顶部