文章详情页
javascript - vue渲染子组件异步问题
浏览:245日期:2023-01-07 15:56:33
问题描述
现在有一个组件A。里面包含了组件B,C,D,由于涉及了数据共享,组件B需要用x参数发请求,但是x参数是在A里面发请求获取到的,现在出现的问题是在A还没获取到参数x的时候B就已经先一步发请求了(结果请求400错误),出现问题的根本问题是父组件与子组件的渲染都是异步进行的,在父组件获取参数时用了async+await。
async beforeMount(){ let x = await this.getCityInfo(); this.GET_POSITION(x); console.log(11);},
现在目前能想到的方案就将B,C,D全部整合到A内部,使A内部没有子组件,这样就不会有组件之间异步渲染的问题,请问还有其他更好的方案吗?
问题解答
回答1:获取 x 成功之前不渲染 B
<B v-if='x'></B>
或者 B 自己 watch prop x ,值不对不发请求。
watch: { x (value) { if (value) { // send request } }}回答2:
A请求完了emit一个事件 B去监听就是了
标签:
JavaScript
相关文章:
1. html5 - 只用CSS如何实现input框的宽度随框里输入的内容长短自动适应?2. PHP类中的$this3. boot2docker无法启动4. html - 急求,能否用flex或者高端点的CSS来布局这个图呢?不想用浮动或定位了5. javascript - 初学angularJS+express,路由路径中/转换成%2F,导致路径失效,求原因?6. javascript - 关于jsp中嵌入js代码的问题7. javascript - 百度坐标,返回目标附近有哪些坐标8. html5 - 在微信上扫二维码看到有趣的h5页面,怎样才可以看到它的代码呢?9. Python操作sqlserver是异步的吗?10. javascript - 前端如何实现这种美图秀秀效果
排行榜

网公网安备