当我在vue组件(A)里面点击提交按钮后会commit一个flag,来告诉组件B,你需要提交自己的数据到vuex,
然后A的提交方法继续向下执行,并发起请求。并且这个请求依赖B commit的数据,但是当A发起请求的时候B还没来得急commit自己的数据到vuex,这个怎么解决?
这个应该是因为vue的响应式系统是异步导致的吧。
当我在vue组件(A)里面点击提交按钮后会commit一个flag,来告诉组件B,你需要提交自己的数据到vuex,
然后A的提交方法继续向下执行,并发起请求。并且这个请求依赖B commit的数据,但是当A发起请求的时候B还没来得急commit自己的数据到vuex,这个怎么解决?
这个应该是因为vue的响应式系统是异步导致的吧。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
这个如果了解异步编程,其实就很容易了.
就是设置一个回调函数,在将来某件事情完成的时候执行这个函数.
就你的业务而言,多种方法可以实现.
A通知B这里,你可以用数据总线$bus来实现.
main.js里给Vue原型挂一个Vue实例,利用其事件监听的作用.
A需要B的数据的时候,通过总线去和B要一下过来就可以.
在B监听个事件,事件接受一个回调函数作为参数,事件触发的时候把数据交给回调函数去处理:
B.vue
A里面则是发送事件,并带个回调函数给B就可以.
这样就OK了,应该能解决你的问题~