父子孙组件三级的各个生命周期的执行顺序,个人理解应该是:
父组件:created
子组件:created
孙组件:created,mouented
子组件:mounted
父组件:mounted
但是项目里孙组件的created里面执行了ajax,然后父组件的mounted里也执行了ajax,但是父组件的ajax先于孙组件的ajax完成,这个要怎么调整一下变成同步的顺序执行?
父子孙组件三级的各个生命周期的执行顺序,个人理解应该是:
父组件:created
子组件:created
孙组件:created,mouented
子组件:mounted
父组件:mounted
但是项目里孙组件的created里面执行了ajax,然后父组件的mounted里也执行了ajax,但是父组件的ajax先于孙组件的ajax完成,这个要怎么调整一下变成同步的顺序执行?
ajax只是负责异步发送一个请求出去和接受请求结果 . 至于响应的顺序是由多方面决定的 , 比如服务器的带宽 , 客户端网速等 ...
如果想要满足你的使用场景 , 有两种解决方案
1 : 做一个简单的发布订阅 . 在孙组件请求结束后 , 通知父组件可以开始请求 .
2 : 可以将请求都放在父组件 , 可以使用 await 语法糖进行按序请求 . 孙组件作为UI组件使用 .
13 回答13.1k 阅读
8 回答3k 阅读
3 回答1.4k 阅读✓ 已解决
2 回答5.3k 阅读✓ 已解决
5 回答1.5k 阅读
9 回答1.8k 阅读✓ 已解决
6 回答1.7k 阅读
ajax的a指的是Asynchronous(异步),这当然不保证哪个先执行了,除非你改成同步请求,这会阻塞主线程,体验不好,如果你两个请求真的需要顺序执行那就提取一个等待孙组件ajax回调再通知父组件执行下一ajax,至于怎么通信这个方法很多搜一下