Vuex仓库

Vue.use(Vuex)

import {auth} from '../api/index.js'

export default new Vuex.Store({
	state:{
		token:null,
		userinfo:{
			nickName:'',
			avatar:''
		}
	},
	getters:{
		getToken(state){
			if(state.token){
				return state.token
			}
			return uni.getStorageSync('token')
		}
	},
	mutations:{
		setToken(state,token){
			state.token = token
			uni.setStorageSync("token", token)
		},
		setUserInfo(state,user){
			state.userinfo.nickName = user.nickName;
			state.userinfo.avatarUrl = user.avatarUrl
			uni.setStorageSync("nickName", user.nickName)
			uni.setStorageSync("avatarUrl", user.avatarUrl)
			auth({
				token:state.token,
				avatarUrl:user.avatarUrl,
				nickName:user.nickName,
				gender:user.gender,
				province:user.province
			}).then(res=>{
				// console.log(res)
			})
		}
	},
	actions:{},
})

拦截器

// 引入仓库,用于保存header
import store from '../store/index.js'
export default function({url,data,method}) {
	return new Promise((resolve, reject) => {
		uni.request({
			url,
			data,
			method,
			header:{
				Authorization:store.getters.getToken
			},
			success: (res) => {
				resolve(res)
				// console.log(res.data.message)
			},
			fail: (err) => {
				reject(err)
				// console.log('报错了:', err)
			}
		})
	})
}

api书写

import request from '../utils/index.js'
//xxx接口
export const name= (code,appId,appSecret) => {
	return request({
		url:'路径',
		method: 'POST',
		data: {
			code,
			appId,
			appSecret
		}
	})
}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐