Vue3引入axios封装接口的两种方法实例

yizhihongxing

下面我将详细讲解"Vue3引入axios封装接口的两种方法实例"这个话题。

1. 什么是axios

axios是一个基于Promise的HTTP框架, 可以用于浏览器和node.js,同时也是Vue.js官方推荐的第三方库之一,让前端开发人员可以轻松地向服务器发送 HTTP 请求以及以一种优雅的方式处理服务器端的响应。

2. 在Vue3中引入axios

下面介绍两种在Vue3中引入axios的方法:

2.1 第一种方法:封装axios

封装axios方法可以更好地管理请求的错误和响应,可以把axios的请求和响应拦截器统一写在一起。

import axios from 'axios';

const instance = axios.create({
  baseURL: 'http://your.api.url',
  timeout: 5000,
  headers: { 'Content-Type': 'application/json' },
});

// 请求发送前拦截
instance.interceptors.request.use(
  (config) => {
    // 加入自定义请求头、请求体等等
    config.headers.Authorization = 'Bearer ' + localStorage.getItem('token');
    return config;
  },
  (error) => Promise.reject(error)
);

// 响应后拦截
instance.interceptors.response.use(
  (response) => {
    const { data } = response;
    // 处理后端返回的非正常响应,如 token 失效等
    if (data.res === 0) {
      console.warn('token is invalid');
      localStorage.removeItem('token');
    }
    return response;
  },
  (error) => Promise.reject(error)
);

export default {
  get(url, params = {}) {
    return instance.get(url, { params });
  },
  post(url, data = {}) {
    return instance.post(url, data);
  },
  put(url, data = {}) {
    return instance.put(url, data);
  },
  delete(url, params = {}) {
    return instance.delete(url, { params });
  },
};

在Vue3的组件中使用:

<template>
  <p>{{users}}</p>
</template>

<script>
import axios from '@/utils/request';

export default {
  data() {
    return {
      users: [],
    };
  },
  mounted() {
    axios.get('/api/users')
      .then(res => {
        this.users = res.data;
      })
      .catch(err => {
        console.error(err);
      });
  },
};
</script>

2.2 第二种方法:在Vue3中集成axios

在Vue3可以全局注册axios方法,然后在组件中直接使用。

// main.js
import { createApp } from 'vue';
import App from './App.vue';
import axios from 'axios';

axios.defaults.baseURL = 'http://your.api.url';

const app = createApp(App);
app.config.globalProperties.$axios = axios;
app.mount('#app');

在Vue3的组件中使用:

<template>
  <p>{{users}}</p>
</template>

<script>
export default {
  data() {
    return {
      users: [],
    };
  },
  mounted() {
    this.$axios.get('/api/users')
      .then(res => {
        this.users = res.data;
      })
      .catch(err => {
        console.error(err);
      });
  },
};
</script>

总结

以上两种方法都可以实现在Vue3中引入axios请求,并且第一种方法还可以对请求和响应进行拦截处理,更好的管理请求和响应。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue3引入axios封装接口的两种方法实例 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • 怎么清理苹果内存空间 苹果内存清理的详细图文步骤

    怎么清理苹果内存空间:苹果内存清理的详细图文步骤 清理苹果设备的内存空间可以帮助提高设备的性能和响应速度。下面是一份详细的图文步骤,教你如何清理苹果设备的内存空间。 步骤一:关闭不必要的应用程序 关闭不必要的应用程序可以释放设备的内存空间。以下是如何关闭应用程序的示例说明: 在设备的主屏幕上,双击Home按钮(或者在没有Home按钮的设备上,从底部向上滑动并…

    other 2023年7月31日
    00
  • Spring注解与P/C命名空间超详细解析

    Spring注解与P/C命名空间超详细解析 1. 简介 在Spring框架中,注解和P/C命名空间是两种常用的配置方式。本攻略将详细解析Spring注解和P/C命名空间的使用方法和示例。 2. Spring注解 Spring注解是一种基于注解的配置方式,通过在代码中添加注解来配置Spring容器和Bean的依赖关系。 2.1 @Component注解 @Co…

    other 2023年9月7日
    00
  • wolfrpgeditor游戏解包

    以下是详细讲解“wolfrpgeditor游戏解包的完整攻略”的标准Markdown格式文本: wolfrpgeditor游戏解包的完整攻略 wolfrpgeditor是一款RPG游戏制作软件,可以用来制作各种类型的RPG游戏。在制作RPG游戏时,有时需要对游戏进行解包,以便进行修改或者二次开发。本攻略将介绍wolfrpgeditor游戏解包的完整攻略,包括…

    other 2023年5月10日
    00
  • Photoshop不能初始化暂存盘已满怎么办?

    问题描述:当使用 Photoshop 进行编辑时,可能会出现 Photoshop 不能初始化,暂存盘已满的错误提示。这种错误可能会导致 Photoshop 无法正常工作,从而影响到你的工作和生产。 攻略: 清理暂存盘空间 Photoshop 会将一些临时文件存储在暂存盘中,当暂存盘满了之后,就会出现此错误提示。因此,第一步需要清理暂存盘空间。 如果你不确定电…

    other 2023年6月20日
    00
  • 关于PS智能对象必须知道的事情10个特性介绍

    很抱歉,作为文本模型,我无法以标准的markdown格式回答您的问题。但是,我可以为您提供一份详细的攻略,包含10个关于PS智能对象的特性介绍,并提供两个示例说明。请注意,以下内容将以纯文本形式呈现。 关于PS智能对象必须知道的事情10个特性介绍 非破坏性编辑:智能对象允许您进行非破坏性编辑,即在保留原始像素数据的同时进行修改。 示例:通过将图层转换为智能对…

    other 2023年10月17日
    00
  • android自定义弹出框样式的实现方法

    要实现 Android 自定义弹出框样式,主要可以分为以下几个步骤: 1. 创建一个自定义的布局文件 在 res/layout 目录下创建一个 XML 文件,用于描述弹出框的布局内容。可以在这里使用各种视图和布局,来满足我们自定义弹出框的需要。 下面是一个简单的例子: <LinearLayout xmlns:android="http://s…

    other 2023年6月25日
    00
  • 联通超级战舰w910root后不能上网解决方案

    以下是联通超级战舰w910root后不能上网解决方案的攻略: 问题描述 在联通超级战舰w910上root后,可能会出现无法上的问题。这是因为root后可能会修改系统设置,导致网络连接出现问题。 解决方案 以下是解决联通超级舰w910root后不能上网的步骤: 恢复出厂设置 在手机上进入“设置”菜单,选择“备份和置”,然后选择“恢复出厂设置”。这将清除所有用户…

    other 2023年5月9日
    00
  • 详解C语言中的符号常量、变量与算术表达式

    详解C语言中的符号常量、变量与算术表达式 符号常量 在C语言中,符号常量是指在程序中使用的固定值,其值在程序运行过程中不会改变。符号常量可以通过使用#define预处理指令来定义。 示例1:定义一个表示圆周率的符号常量 #define PI 3.14159 示例2:定义一个表示年份的符号常量 #define YEAR 2023 变量 变量是在程序中用于存储和…

    other 2023年8月16日
    00
合作推广
合作推广
分享本页
返回顶部