Skip to content

Commit 2fa1343

Browse files
author
kevin
committed
feat: add axios for http request
1 parent e8f1164 commit 2fa1343

File tree

6 files changed

+100
-1
lines changed

6 files changed

+100
-1
lines changed

package-lock.json

Lines changed: 41 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"prepare": "husky install"
1111
},
1212
"dependencies": {
13+
"axios": "^0.26.1",
1314
"vue": "^3.2.25",
1415
"vue-router": "^4.0.14"
1516
},

src/api/manager.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import service from './service'
2+
3+
export const get = (url, params) => {
4+
return service.requese({ url: url, params: params, method: 'GET' })
5+
}
6+
7+
export const post = (url, data) => {
8+
return service.request({ url: url, data: data, method: 'POST' })
9+
}

src/api/service.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import axios from 'axios'
2+
3+
const baseURL = import.meta.env.VITE_API_BASE_URL
4+
5+
const service = axios.create({
6+
baseURL: baseURL,
7+
timeout: 10 * 60 * 1000
8+
})
9+
10+
service.interceptors.request.use(
11+
(config) => {
12+
// 在请求之前配置header
13+
return config
14+
},
15+
(error) => {
16+
return Promise.reject(error)
17+
}
18+
)
19+
20+
service.interceptors.response.use(
21+
(response) => {
22+
const { status, statusText, data } = response
23+
if (status === 200) {
24+
return data
25+
} else {
26+
return Promise.reject(statusText)
27+
}
28+
},
29+
(error) => {
30+
return Promise.reject(error)
31+
}
32+
)
33+
34+
export default service

src/api/user.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { post, get } from './manager'
2+
3+
export const info = (params) => get('/user/info', params)
4+
export const login = (data) => post('/user/login', data)

src/pages/Home.vue

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,19 @@
33
</template>
44

55
<script>
6+
import { ref, onBeforeMount } from 'vue'
7+
import { info } from '../api/user'
8+
69
export default {
710
setup() {
8-
return {}
11+
const userInfo = ref(null)
12+
onBeforeMount(async () => {
13+
const res = await info({ id: 1 })
14+
userInfo.value = res
15+
})
16+
return {
17+
userInfo
18+
}
919
}
1020
}
1121
</script>

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy