> 需求描述:用户通过手机号获取验证码的方式注册或者登录,进入主页,侧边栏有用户头像和昵称,点击头像可以进行信息的修改,修改提交后侧边栏要求在不刷新页面的前提下也同步改变;用户刷新浏览器后或者关闭浏览器不必进行重新登录(一段时间内),如果用户清理缓存,应立刻跳转到登录页重新登录,此时无论从哪个入口进入都会重定向到登录页。目标:弄清楚登录流程,以及vuex和vue-router的使用。着重看路由的导航守卫
实现思路:由于项目基于vue,属于单页面应用,多组件通信,考虑用到vuex,然而vuex中存储的状态在刷新页面后会重置为初始状态,所以用户的登录态要在本地进行存储,我用到的是cookie,页面跳转通过判断这个登录态是否存在,而决定是跳到即将跳转到的页面还是跳回登录页,所以需要注册一个全局前值守卫rouer.beforeEach(),根据to.path决定next.path。
暂时没有API,所以数据都是自己模拟的。
模拟数据
1 | const userInfo = [ |
登录
提交表单,触发登录的action
1 | this.$refs.form.validate(valid => { |
vuex中action处理,然后提交改变state
1 | // import netWorkRequest from '@/utils/netWorkRequest' |
拦截路由,导航守卫部分
1 | import router from './router' |