在学习网上的vue项目的时候,发现很多人都选择把ajax请求封装到action中,如果我这个ajax请求没有涉及到全局变量,只在当前页面生效,那么还需要将ajax请求封装在action中吗
在学习网上的vue项目的时候,发现很多人都选择把ajax请求封装到action中,如果我这个ajax请求没有涉及到全局变量,只在当前页面生效,那么还需要将ajax请求封装在action中吗
Action 提交的是 mutation,而不是直接变更状态。
Action 可以包含任意异步操作。
当你发送ajax之后,通过mutation去设置state中的值,因为更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。
这才是要放到Action中的主要原因吧。
我还是比较喜欢 axios
你这里是两个问题
第一:用不用vuex?;如果ajax请求的数据不需要给其他组件使用,你可以放在当前组件里面。不用vuex
第二:用vuex的话是不是要放在action里面?;因为Mutation 必须是同步函数;Action 提交的是 mutation,而不是直接变更状态。ajax请求一般都会写在action里面,当然你也可以在ajax的回调去提交Mutation
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答4.6k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答5.1k 阅读
这个跟全局变量没有关系,比如你有个评论数0,你评论了,你通过ajax提交了评论,但是发现评论数没有立即变成1,这个时候我们才发现要通过action去提交mutation来更新state!