前言:学习vue就是为了在实际开发中解决问题。而解决问题最重要的就是解决思路,这篇文章会提出一系列的问题,然后利用所学知识给出答案。
第一节 登录注册页
问题1:如何做一个完整的登录注册页面?
答:第一步:创建组件-->配置路由-->测试跳转是否成功-->布局结构-->调整样式-->基础静态页面搭建完成。
第二步:实现功能:表单校验(前端得做)-->调接口发请求-->根据后台反馈结果,给出提示
问题2:你认为在这个功能模块中,哪里最重要?
答:发送请求后,如登陆成功。后台发回来的token需要保存,因为后续开发的许多功能模块都需要使用到token。
问题3:你是怎么保存的?
答:通过vuex保存的,同时也保存到了本地存储中。
首先,在vuex的actions函数里,发送请求。接着将获取到的token值,通过context.commit()传给mutations,让mutations去保存token。因为只有mutations可以修改state里面的值,将token存到vuex好处是所有的组件都可以通过this.$store.state.token 拿到token的值。localStorage setItem保存到本地。用getItem()取值。
问题4 为什么要这么麻烦,还要存到本地?
答:vuex保存的数据是存到内存里面,页面一刷新数据就没了。而存到本地时效性变的相对长,但是本地存储不是响应式的,而vuex是响应式的,所以利用他们的优点。
问题5 那登录成功之后怎么跳转?
答:分两种情况。第一种就是正常登录,可以使用编程式跳转this.$router.push('/xx')
还有一种情况,就是用户访问了某些需要权限的页面,被跳转到了登录页,这个时候就需要跳转到用户来之前的页面,我们可以从query里面取值。this.$router.push(this.$router.query.backto || '/') 就是说有backto就用没有就去主页
问题6 如果用户登陆了,那么它访问需要token权限的页面(请求需要带token),你是怎么处理的?
答:我可以在这次请求中,将token的值从state中取出来,给请求
我会封装一个请求拦截器,每次发送请求的时候,将token发给后台。
问题6 怎么处理 非登陆用户去访问敏感页面?
首先,用户没有权限是不能访问需要权限的页面的。应该让他去登录页。
利用路由守卫(前置路由守卫),为了更好的用户体验,我们应该记住用户之前所在的页面,以便用户登录之后,跳转到之前的页面 。因此,我们需要在跳转到登录页前传入要返回的地址
next('/xxx?backto=' + to.fullPath) 而用户登录成功后,会根据传回来的地址跳转过去利用
this.$router.push(this.$router.query.backto || '/首页' ) 如果没有的话跳首页
【待更新…】
第二节 布局问题(UI组件、二级路由)
问题1 :使用了哪些第三方UI库
问题2 :
第三节 封装问题
问题1 :什么时候封装?
问题2 :封装了哪些?
问题3 :封装的流程?
第四节 axios请求问题
问题1 :传参