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)