#创作灵感
在项目开发中,进行简单的封装
当然不是本人手懒,
随便看看就好~
判断环境
const isMode = import.meta.env.MODE === "development"
export const baseURL = isMode ? "http://localhost:3030" : "http://localhost:3030"
封装请求
const request = ({
url,
path = "",
params = {},
data,
method = "POST",
...rest
}: RequestOptions) => {
return new Promise((resole, reject) => {
return axios({
method,
url: baseURL + path || url,
data: {
...data,
...params
},
...rest
})
.then((res) => {
resole(res && res.data)
})
.catch((error) => {
reject(error)
})
})
}
export default request
声明类型
根据自己的需求进行动态调整,当然,最好不要用any,自己随便写写没什么
export interface RequestOptions {
url: string
path?: string
params?: Record<string, any>
data?: any
method?: "GET" | "POST" | "PUT" | "DELETE"
}
使用方式
export const obj = { url: baseURL, params: {} }
export const getList = () =>
request({
...obj,
path: "/list",
method: "GET"
})