vue3+ts封装axios

为什么要封装axios呢,直接使用不好吗。我个人浅显的认为,直接在页面中使用axios.get等发送请求,这样请求与页面的耦合度太高,如果要是修改某一个接口url,还要去页面找,太麻烦,因此,我们一般直接封装axios,把请求url与页面分开

我们开始封装axios吧

import axios,{ AxiosResponse, AxiosRequestConfig } from 'axios'
const isDev = process.env.NODE_ENV == 'development'
const request=axios.create({
  baseURL:isDev?'http://localhost:8080':'',
  timeout:30000,
})
//请求拦截器
request.interceptors.request.use((config: AxiosRequestConfig) => {
  if (config.headers) {
    config.headers.token = sessionStorage.getItem('token') || ''
  } 
  return config
},(error:any) => {
  return Promise.reject(error)
})
//响应拦截器
request.interceptors.response.use( (response:AxiosResponse) =>{
  return response.data
},(error:any) => {
  return Promise.reject(error)
})
export default request

在src目录下新建一个api文件夹,个人建议:文件名最好与vue页面文件名小写同名,以登录为例:建login.ts文件,在login.ts里面写登录页面的相关接口url
如果是get 方法就不用写method,默认就是get

import request from "@/utils/request";
export const postLogin = ((params:{username:string,password:string}) => {
  return request({
    url: '/user/login',
    method: 'post',
    data:params
  })
})

在登录页面使用

import { postLogin } from '../api/login'
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值