? ? ? ? ? ? 利用element-ui提供的文档绑定rules规则后实现校验
? ? ? ? ? 利用proxy代理来解决跨域的问题
? 两个点:1. 在请求拦截的成功回调中,如果token,因为调用其它的接口需要token才能调取。
? ? ? ? ? ? ? ? ? 在请求头中加入token。
? ? ? ? ? ? ? 2.在响应拦截器中进行数据的一层解析: return res .data
? ? ? ? ? ? ? ? ? 进行统一错误的处理,返回的状态码是200,但是success的值是false,代表业务的失败。
在根路径准备好生成环境和开发环境的基地址。
baseUrl:process.env获取
按需导入使用第三方库的方法
import {gettoken,settoken,removetoken} from '第三方库的路径'
satae:
token:gettoken()
mutation
定义方法来获取token
action
定义接口来获取token
默认导入
import request from '拦截器文件'
定义方法:
export login(){
url:'/api地址'
method:请求的方法
}
导入方法
import {login } form '文件的路径'
在表单验证通过后:
调用接口 login().then(res=>{
通过 this.$store.dispatch('vuex action方法的模块名字' ,返回回来的token作为实参传递过(res))
})
这样就获取到了token。
在点击登录按钮之后,会出现
在这个步骤中,通过this.$store.dispatch来出发模块并且调用接口,很显然这个步骤是一个异步的,
如果采用.then的方法,他是一个回调函数
使用then方法,他还是立马执行:
this.$store.push('/')
很明显这是不符合逻辑的,假设我们的业务逻辑的:
action这个模块还没出发,就直接跳转到了首页。
如果解决这个问题?
利用async await即可解决:??????????
如果 await后面是一个Promise对象,则会等Promise对象返回后面的值在去执行它之后的代码。
如果返回的不是一个Promise,则指向的是代码完成的一个返回值。