最近的一个项目里面用到vue2+vuex+axios+vue-router(由于是小白,第一次接触,应该有很多不规范的地方,不过最后还是获取到了router)
页面登录功能,判断登录成功之后改变state的isLogin属性为true并存入localStorage,然后返回跳转登录页之前的页面,由于是在store里面操作的,this.$router.go(-1)里面的$router是查找不到的,心路历程:
一、想到在页面做判断localstorage的isLogin,遇到的问题是dispatch(doLogin)之后,再做判断跳转页面的时候,下面的跳转在isLogin属性改变之前就先执行了,异步操作在作怪。放弃
二、在‘’一‘’的基础上,想到能否让doLogin先执行完再跳转,于是用到了return Promise.resolve(),但是跳转部分一直报语法错误,遂放弃
三、也想过将请求放入页面中,当时数据是公众且多页面都会用到,避免后期代码重复。
最后:其实很简单,就是用一个参数,将页面的$router传进来。其实转了一圈还是最基本的方法,猝~~
网友评论