ajax请求的数据没有涉及到全局变量,那么还需要将ajax请求封装到action中吗?

在学习网上的vue项目的时候,发现很多人都选择把ajax请求封装到action中,如果我这个ajax请求没有涉及到全局变量,只在当前页面生效,那么还需要将ajax请求封装在action中吗

阅读 3k
3 个回答

这个跟全局变量没有关系,比如你有个评论数0,你评论了,你通过ajax提交了评论,但是发现评论数没有立即变成1,这个时候我们才发现要通过action去提交mutation来更新state!

Action 提交的是 mutation,而不是直接变更状态。
Action 可以包含任意异步操作。
当你发送ajax之后,通过mutation去设置state中的值,因为更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。
这才是要放到Action中的主要原因吧。
我还是比较喜欢 axios

你这里是两个问题
第一:用不用vuex?;如果ajax请求的数据不需要给其他组件使用,你可以放在当前组件里面。不用vuex
第二:用vuex的话是不是要放在action里面?;因为Mutation 必须是同步函数;Action 提交的是 mutation,而不是直接变更状态。ajax请求一般都会写在action里面,当然你也可以在ajax的回调去提交Mutation

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题