api.js
//let user = JSON.parse( localStorage.getItem('userInfo') )
//let o = {
// uid: user.uid,
// token: user.token
// } 不能在外面取值赋值 因为只执行一次
export const user = {
out () {
let user = JSON.parse( localStorage.getItem('userInfo') )
let o = {
uid: user && user.uid,
token: user && user.token
} //写在方法里才会每次都执行 但是每次都要取值赋值很麻烦
return service.post('/user/logout', {...o} )
}
}
所以在封装axios时 参数预处理 赋值
let o = {
uid: '',
token: ''
} //在api页面放空值
//请求参数预处理 在这里赋值
const requestParams = ({ config } = {}) => {
const isLogin = JSON.parse( localStorage.getItem('userInfo') )
const param = qs.parse(config.data)
if(param.token !== undefined){ //判断参数里有没有token值 有则赋值
param.token = isLogin && isLogin.token
param.uid = isLogin && isLogin.uid
}
……
}