前端vue,如何使用axios实现接口的封装与调用

1,安装axios:在项目的控制栏里使用命令 npm install axios 安装axios

2,在src文件下新建一个axios文件

3,在axios文件下创建baseURL.js文件用于管理接口域名、创建api.js用于配置每个接口

4,在baseURL.js文件里面配置我们的域名:

import axios from 'axios'

const service = axios.create({
    baseURL: 'http://192.168.1.133:8080/api/',  //请求的地址
    timeout: 5000  //访问超时的时间
});

export default service;

5,在api.js文件里面配置我们的每一个接口:

import axios from './baseURL' // 引入刚刚创建的域名文件
const base = '/api';// 解决跨域问题
const api = {
    // post方法
    getLogin(params) {
        return axios.post(`${base}/login`, {params: params})
    },
    // get方法
    getUsersList(params) {
        return axios.get(`${base}/users`, {params: params})
    },
    // put方法
    getCar(id, state) {
        return axios.put(`${base}/users/${id}/state/${state}`)
    },
    // 如需传参数可以这样
    getPeople(id, state, params) {
        return axios.put(`${base}/users/${id}/state/${state}`, {params: params})
    },
};
export default api

6,使用接口(第一种方法):

在需要使用接口的组件里:

import {要引入的方法名字} from ../axios/api.js

methods:{

        方法名({

        name:'张三',//向接口里面传递的数据,如果没有则不写

        age:'30',//向接口里面传递的数据,如果没有则不写

})

                 .then(res=>{ //成功的操作 })

                .catch(err=>{ //报错的操作});

}

7,使用接口(第二种方法):

7.1在main.js文件里面

        import api from './axios/api.js'  //引入api.js文件
        Vue.prototype.$api = api  // 将api文件挂载到vue实例上,这样就可以不用每一个组件里都引用接口文件

7.2在需要使用的组件里:

methods:{

        this.$api.方法名()

                .then(res=>{ //成功的操作 })

                .catch(err=>{ //报错的操作});

}

  • 10
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
首先,在Vue项目中安装axios: ``` npm install axios --save ``` 然后,我们可以在src目录下创建一个utils目录,用于存放封装axios请求相关的工具类。 在utils目录下,新建一个http.js文件,用于封装axios请求。 ```js import axios from 'axios' // 创建axios实例 const service = axios.create({ baseURL: process.env.BASE_API, // api的base_url timeout: 5000 // 请求超时时间 }) // request拦截器 service.interceptors.request.use(config => { // Do something before request is sent // ... return config }, error => { // Do something with request error console.log(error) // for debug Promise.reject(error) }) // respone拦截器 service.interceptors.response.use( response => { const res = response.data // 判断请求状态码 if (res.code !== 200) { // 这里可以根据后端返回的状态码进行统一的错误处理 console.log(res.message) return Promise.reject('error') } else { return response.data } }, error => { console.log('err' + error) // for debug return Promise.reject(error) } ) export default service ``` 在这个文件中我们封装了一个axios实例,并且设置了请求的超时时间,以及请求和响应的拦截器。 接下来,在utils目录下新建一个api.js文件,用于封装后端接口。 ```js import request from '@/utils/http' export function login(data) { return request({ url: '/login', method: 'post', data }) } export function getInfo(token) { return request({ url: '/user/info', method: 'get', params: { token } }) } export function logout() { return request({ url: '/logout', method: 'post' }) } ``` 在这个文件中,我们可以根据后端接口的定义,封装对应的请求方法,其中包括接口的URL、请求方法和请求参数。 最后,在Vue组件使用这些封装好的API接口: ```js import { login } from '@/utils/api' export default { name: 'login', methods: { handleLogin() { login(this.form).then(response => { // 这里可以根据后端返回的数据进行相应的处理 console.log(response) }).catch(error => { // 这里可以根据后端返回的错误信息进行相应的处理 console.log(error) }) } } } ``` 在这个例子中,我们使用了login方法,在响应成功后,打印出了后端返回的数据。 通过这种方式,我们可以将后端接口进行统一的封装和管理,并且在Vue组件中可以方便的调用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向小江

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值