vue3封装axios请求引入示例及使用教程

2024-07-24   阅读:198   类型:后端   分类:Vue    标签: API

一、安装axios

npm install axios

二、新建api目录

在前端项目src目录下新建api目录

三、在api目录下新建request.js文件,用于封装请求接口,编写如下代码

import axios from "axios";
import { ElMessage } from "element-Plus";
const service = axios.create();
// 添加请求拦截器
service.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });
// 添加响应拦截器
service.interceptors.response.use((res)=>{
      // console.log(res)
        const {code, data ,msg} = res.data
        if(code===200){
            return data;
        }else{
            const NETWORK_ERROR = '网络错误...'
            ElMessage.error(msg || NETWORK_ERROR);
            return Promise.reject(msg || NETWORK_ERROR)
        }
    }
   
 );
 function request(options){
    options.method = options.method || "get";
    return service(options);
 }
 export default request;

四、在api目录下新建api.js,用于整个项目api统一管理,编写如下代码:

// 整个项目api统一管理
import request from "./request";
// 请求首页表格数据
export default{
    getTableData(){
        return request({
            url: 'https://www.exame.com/list',
            method: "get",
        })
    }
}

五、全局引入

打开main.js文件,全局引入

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import api from "./api/api";
const app = createApp(App)

app.config.globalProperties.$api = api
app.use(router)
app.mount('#app')
// createApp(App).mount('#app')

六、在对应的页面使用

<script setup>
	import { ref, getCurrentInstance, onMounted } from 'vue';
	const { proxy } = getCurrentInstance(); 
	const getTableData = async ()=>{
    const data = await proxy.$api.getTableData();
        console.log(data)
    }
    onMounted(()=>{
        getTableData()
    })
</script>
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价,云服务器3年机/5年机限时抢购,低至 2.5折

‘简忆博客’微信公众号 扫码关注‘简忆博客’微信公众号,获取最新文章动态
转载:请说明文章出处“来源简忆博客”。http://tpxhm.com/adetail/1108.html

×
觉得文章有用就打赏一下文章作者
微信扫一扫打赏 微信扫一扫打赏
支付宝扫一扫打赏 支付宝扫一扫打赏

文章评论(0)

登录
简忆博客壁纸一
简忆博客壁纸二
简忆博客壁纸三
简忆博客壁纸四
简忆博客壁纸五
简忆博客壁纸六
简忆博客壁纸七
简忆博客壁纸八
头像

简忆博客
勤于学习,乐于分享

置顶推荐

打赏本站

如果你觉得本站很棒,可以通过扫码支付打赏哦!
微信扫码:你说多少就多少~
微信扫码
支付宝扫码:你说多少就多少~
支付宝扫码
×