关于vuex与v-route的结合使用
把vue实际用于项目的过程中遇到过一些问题
1.如何将vuex和vue-route结合使用(接口调用成功回调页面这类等等)
1.初始考虑的方法是在vuex引入vue-router,vuex写一些业务逻辑代码,当接口处理完毕之后通过vue-route来处理页面。
当时这种方式耦合性太高,不推荐使用。vuex应该处理数据相关的操作,不应该处理界面层的事情。
2.通过Promise的方式,比较推荐这种方式。在vuex里面返回Promise,页面层通过Promise来处理页面相关的操作,代码如下
actions: {
activitySetOrModifyManage({commit}, param){
console.log(param);
return new Promise((resolve, reject) => {
axios.post(baseUrl.activitySetManageUrl, qs.stringify(param))
.then(function (response) {
console.log(JSON.stringify(response.data));
let data = response.data;
if (data.code == 200) {
resolve();
} else {
reject()
}
})
.catch(function (error) {
console.log(error);
reject()
});
});
},
this.activitySetOrModifyManage(param).then(
()=>{
console.log('接口调用成功,编程改变路由')
this.$router.push({ path: '/activityList' })
},
()=>{
console.log('接口调用失败')
}
);
在回调的Promise里面可以处理很多事情,关于页面层的事情都可以在这里处理。逻辑业务全部剥离放在vuex里面,降低耦合性。

浙公网安备 33010602011771号