vue3.0 axiox模块添加

本文介绍了如何在Vue项目中下载并配置axios库,创建请求拦截器和响应拦截器,以及在page1组件中使用这些功能实现GET和POST接口调用。详细步骤包括设置axios实例、创建接口函数和页面上的按钮调用。
摘要由CSDN通过智能技术生成

1. 下载依赖

npm install axios

2.在src/request/request.ts 新建文件

import axios from "axios";

// 配置新建一个 axios 实例
const service = axios.create({
  baseURL: "http://localhost:3000",
  timeout: 50000,
  headers: { "Content-Type": "application/json" },
});
// 添加请求拦截器
service.interceptors.request.use(
  (config) => {
    // 在发送请求之前做些什么 比如添加token
    // config.headers.Authorization
    return config;
  },
  (error) => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 添加响应拦截器
service.interceptors.response.use(
  (response) => {
    // 对响应数据做点什么
    return response.data;
  },
  (error) => {
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);

// 导出 axios 实例
export default service;

3.在创建一个page1/index.ts 用来实现接口 

// 导入axios
import request from '../request';
enum API {
  // 本地node.js 启动的接口
  GET_USER = "/getUser",
  MOVIE_COMM = "/movieComm",
}

// 实现get接口
export function getUserRequest(data?: { userId?: string }) {
  return request.get(API.GET_USER,{
    params: data
  });
}
// 取消请求
// controller.abort()
// 实现post接口
export function movieCommRequest(data?: { type?: number }) {
  return request.post(API.MOVIE_COMM,data);
}

4.page1页面调用接口

<template>
    <div class="p-4">
        <el-button @click="getInfoData">请求get数据</el-button>
        <el-button @click="getInfoData2">请求post数据</el-button>
    </div>
</template>
<script setup lang="ts">
import {getUserRequest,movieCommRequest} from '@/request/page1/index';
let getInfoData = async () => {
    let res = await getUserRequest({
        userId : '1'
    });
    console.log(res);
}

let getInfoData2 = async () => {
    let res = await movieCommRequest({
        type : 1
    });
    console.log(res);
}
</script>
<style lang="scss"></style>

当前目录结构

 

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值