vue3实战-axios请求封装问题(get、post、put、delete)

yizhihongxing

下面是“vue3实战-axios请求封装问题(get、post、put、delete)”的完整攻略。

为什么需要封装请求

在vue3开发过程中,经常需要通过API接口请求数据并渲染到页面上。但是每次都使用axios发起请求会导致代码冗余度高,可维护性低等问题。因此,我们需要对axios进行封装,以提高代码质量和可维护性。

封装过程详解

首先,在src目录下创建一个apis文件夹,用于存放我们的API接口。

其次,在apis文件夹中创建一个index.js文件,该文件用于封装我们的axios请求:

import axios from "axios";

const baseURL = "www.example.com"; // 更换成自己的API接口地址

const axiosIns = axios.create({
  baseURL,
  timeout: 10 * 1000 // 超时时间设置为10秒
});

// 封装get请求
export const get = (url, params) => {
  return axiosIns.get(url,{params})
}

// 封装post请求
export const post = (url, data) => {
  return axiosIns.post(url,data)
}

// 封装put请求
export const put = (url, data) => {
  return axiosIns.put(url,data)
}

// 封装delete请求
export const del = (url, data) => {
  return axiosIns.delete(url,{data})
}

以上代码中,我们创建一个axios实例,并封装了get、post、put、delete四种请求方式。

然后,在main.js文件中引入我们的API方法:

import {get,post,put,del} from '@/apis/index.js'

最后,在其他组件中使用封装好的请求方法即可:

methods:{
  async fetchData(){
    const res = await get('/api/data')
    console.log(res.data)
  }
}

示例说明

下面给出两个示例来说明如何调用封装好的请求方法:

示例一:使用get请求获取数据并展示

<template>
  <div>
    <h1>首页</h1>
    <ul>
      <li v-for="item in dataList" :key="item.id">
        {{ item.title }}
      </li>
    </ul>
  </div>
</template>

<script>
import { get } from "@/apis/index.js";

export default {
  data() {
    return {
      dataList: [],
    };
  },
  mounted() {
    this.fetchData();
  },
  methods: {
    async fetchData() {
      const res = await get("/api/data"); // 发送get请求获取数据
      this.dataList = res.data; // 将获取到的数据保存到dataList中
    },
  },
};
</script>

以上代码中,我们通过mounted钩子来调用fetchData方法以获取数据。fetchData方法通过调用get方法发送GET请求,然后将获取到的数据保存到dataList中。最后,在页面上遍历dataList来展示获取到的数据。

示例二:使用post请求提交表单数据

<template>
  <div>
    <form @submit.prevent="handleSubmit">
      <input type="text" v-model="form.username" />
      <input type="password" v-model="form.password" />
      <button type="submit">提交</button>
    </form>
  </div>
</template>

<script>
import { post } from "@/apis/index.js";

export default {
  data() {
    return {
      form: {
        username: "",
        password: "",
      },
    };
  },
  methods: {
    async handleSubmit() {
      const res = await post("/api/login", this.form); // 发送post请求提交表单数据
      if(res.status === 200){
        alert('登录成功')
      }else{
        alert('登录失败')
      }
    },
  },
};
</script>

以上代码中,我们在表单中输入用户名和密码后通过提交按钮触发handleSubmit方法。handleSubmit方法通过调用post方法发送POST请求,并传入表单数据作为参数。根据后端接口返回的结果,我们在页面上弹出相应的提示框以提示用户。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue3实战-axios请求封装问题(get、post、put、delete) - Python技术站

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

相关文章

  • X/HTML5 和 XHTML2

    X/HTML5和XHTML2的完整攻略 简介 X/HTML是指可扩展超文本标记语言(eXtensible HyperText Markup Language),用于描述网页的结构和内容。HTML5是最新的HTML规范,而XHTML2是曾经提出的下一代XHTML规范。本攻略将详细介绍X/HTML5和XHTML2的区别,以及它们各自的特点和用法。 X/HTML5…

    other 2023年6月28日
    00
  • python源码剖析之PyObject详解

    以下是关于Python源码剖析之PyObject详解的完整攻略: Python源码剖析之PyObject详解 1. PyObject的定义和结构 在Python源码中,PyObject是表示Python对象的结构体。它的定义如下: typedef struct _object { _PyObject_HEAD_EXTRA Py_ssize_t ob_refc…

    other 2023年10月15日
    00
  • ai对象组怎么嵌套?

    当涉及到嵌套AI对象组时,可以按照以下步骤进行操作: 创建一个AI对象组:首先,你需要创建一个AI对象组,用于嵌套其他的AI对象。你可以使用以下代码创建一个AI对象组: “`python from openai import AIObjectGroup group = AIObjectGroup() “` 添加AI对象到组中:接下来,你可以将其他的AI对…

    other 2023年7月27日
    00
  • Android源码学习之工厂方法模式应用及优势介绍

    Android源码学习之工厂方法模式应用及优势介绍 简介 工厂方法模式是一种常用的创建型设计模式,它主要解决了如何有效率地创建复杂对象的问题。在Android源码中,我们会发现很多地方都应用了工厂方法模式,比如LayoutInflater的实现、RecyclerView.Adapter的实现等等,因此学好工厂方法模式对于理解Android源码非常重要。 工厂…

    other 2023年6月26日
    00
  • BT/PT种子修改利器 BEncode Editor的三种用途

    我可以为您详细讲解“BT/PT种子修改利器 BEncode Editor的三种用途”的完整攻略。 什么是BEncode Editor? BEncode Editor是一款BT/PT种子编辑器,可以用于修改和调整种子文件。通常使用BEncode格式,BEncode Editor是针对这种格式开发的编辑器。 BEncode Editor的三种用途 以下是BEnc…

    other 2023年6月26日
    00
  • Java反射技术详解及实例解析

    Java反射技术详解及实例解析 什么是Java反射技术 Java反射技术是指程序在运行时可以获取自身的信息,同时也可以获取、检查和修改任意一个对象的内部属性和方法。通过反射技术,程序可以在运行时检查类、接口、字段和方法并对它们进行操作,从而实现动态操作Java对象的能力。 Java反射的应用场景 反射技术主要应用在以下几个方面: 动态生成创建某个类的对象 调…

    other 2023年6月26日
    00
  • Python实现ORM

    下面是关于Python实现ORM的完整攻略,包括介绍、使用和两个示例说明。 介绍 ORM(Object-Relational Mapping)是一种将对象模型和关系数据库模型进行映射的技术。ORM可以将数据库中的表、字段等映射为Python中的类、属性等,从而实现对数据库的操作。Python中有多个ORM框架可供选择,如Django ORM、SQLAlche…

    other 2023年5月6日
    00
  • js学习笔记(延时器)

    以下是关于“JS学习笔记(延时器)”的完整攻略,包括基本概念、步骤和两个示例。 基本概念 在JavaScript中,延时器是一种用于在指定时间后执行代码的机制。延器可以用于实现定时任务、动画效果、用户交互等功能。 步骤 以下是使用JavaScript延时器的步骤: 使用setTimeout()函数:setTimeout()函数是JavaScript中的内置函…

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