返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue3如何使用axios发起网络请求
  • 216
分享到

Vue3如何使用axios发起网络请求

2024-04-02 19:04:59 216人浏览 独家记忆
摘要

目录vue3使用axiOS发起网络请求1.何为Axios?2.如何安装Axios3.如何封装网络请求和全局实例化axios4. api.js是什么?5.Http.js是什么?6.re

Vue3使用axios发起网络请求

即使是小型项目也会涉及到请求后端API,除非你的网站展示的是一些不需要维护的静态数据,第三篇文章我们来给Vue项目搞上axios。

1.何为Axios?

请看官方对Axios的描述,传送门:官方文档

Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。

2.如何安装Axios

这部分我使用了几个不同版本的node都没有报错,兼容性还是不错的。

yarn add axios 

3.如何封装网络请求和全局实例化axios

官网的实例都是在单个文件中局部实例化axios,在项目上使用不多。

按照之前的文章操作成功后,还需要在你的项目src目录下新建api文件夹

在这里插入图片描述

4. api.js是什么?

这里面封装了所有的API请求,可以指定是否有参数,指定请求的类型是GET、POST、DELETE还是PUT

import http from './http.js'
// 获取验证码,这个函数指的是使用GET请求请求目标服务器的
Captcha路由
export function getCaptcha() {
    return http.get("/captcha")
}  
// 验证用户名\密码,这里指的是使用POST方法请求Login接口,并携带params对象作为参数。
export function verifyUserNameAPI(params) {
    return http.post("/login", params)
}

5.http.js是什么?

import request from '@/api/request'
const http = {
        get(url, params) {
            const config = {
                method: 'get',
                url: url
            } 
            if (params) config.params = params
            return request(config)
        },
        post(url, params) {
            const config = {
                method: 'post',
                url: url
            }
            if (params) config.data = params
            return request(config)
        },
    }
    
//暴露接口,允许Vue文件或其他js,ts文件使用http结构体中的方法
export default http

6.request.js是什么?

这个是核心的JS文件,表明了后端的地址,接口超时时间,以及请求拦截器和响应拦截器部分。

import axios from 'axios';
// 创建一个自定义的Axios对象
const Axios = axios.create({
    baseURL: 'http://127.0.0.1:1234',
    timeout: 3000,
    
    headers: { 
        'Content-Type': 'application/x-www-fORM-urlencoded'
    },
    
    withCredentials: true
});
Axios.interceptors.request.use(req => {
    // 请求拦截处理
    // console.log('这里是请求拦截器,我拦截了请求', req);
    return req; 
}, err => {
    console.log('在发送请求时发生错误,错误为', err);
    //这里不能直接放回err,需要按照官方说明返回一个Promise
    return Promise.reject(err);
})
Axios.interceptors.response.use(res => {
        // 响应拦截处理
        // console.log('响应拦截 ', res);
        return res.data;
    }, error => {
        const err = error.toString();
		//按照实际的响应包进行解析,通过关键字匹配的方式
        switch (true) {
            case err.indexOf('Network') !== -1:
                console.log('后端服务器无响应或者URL错误', err);
                break;
            case err.indexOf('timeout') !== -1:
                console.log('请求后端服务器超时!', err);
                break;
        }
        return Promise.reject(error);
    })
//暴露Axios实例化对象,允许所有文件调用Axios
export default Axios;

7.如何在Vue文件中请求封装好的API呢?

//导入声明的API请求函数
import { getCaptcha } from "@/api/api";
import { useMessage } from "naive-ui";
export default {
  setup() {
    let captchaId = ref();
    onMounted(() => {
       //onMounted是Vue声明周期的钩子函数,由Vue提供,
       //请参考Vue声明周期钩子官方文档
      getcaptchaAPI();
    });
    function getcaptchaAPI() {
      getCaptcha()
        .then((res) => {
          
          captchaId.value = res.data;
        })
        //在这里处理错误
        .catch((err) => console.log(err));
    }
   }
}

就到这里了,现在你的项目既能请求后端接口,又能进行路由跳转,具备了项目的基本条件,可以尝试写一个简单地页面了

Vue3.0请求接口的例子

<script>
// getInTheaters 为封装的接口请求
import { getInTheaters } from "@/api/movie";
import {
  Reactive,
  toRefs,
  onBeforeMount,
  onMounted,
  onBeforeUnmount,
  provide,
} from "vue";
import { useRouter } from "vue-router";
import { useStore } from 'vuex'
export default {
  components: {},
  setup() {
    const state = reactive({
      inTheaters: [],
    });
 
    // 编程式导航
    const router = useRouter();
    const store = useStore();
 
    onBeforeMount(() => {
      store.commit("setShowBack", false);
    });
 
    onBeforeUnmount(() => {
      store.commit("setShowBack", true);
    });
 
    const getInTheatersData = async () => {
      const res = await getInTheaters(
        "/gateway?cityId=310100&pageNum=1&pageSize=10&type=1&k=3535827"
      );
      state.inTheaters = res.data.data.films;
 
      onMounted(() => {
        //执行请求
        getInTheatersData();
      });
 
       //页面跳转
      const GoToList = (type) => {
        router.push(`/list/${type}`);
      };
 
      // 传递数据给子组件
      provide("title", "电影");
 
      return { ...toRefs(state), goToList };
    };
  },
};
</script>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Vue3如何使用axios发起网络请求

本文链接: https://lsjlt.com/news/152494.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Vue3如何使用axios发起网络请求
    目录Vue3使用axios发起网络请求1.何为Axios?2.如何安装Axios3.如何封装网络请求和全局实例化axios4. api.js是什么?5.http.js是什么?6.re...
    99+
    2024-04-02
  • Vue2是如何利用Axios发起请求
    本篇文章为大家展示了Vue2是如何利用Axios发起请求,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言当你看到该文章时希望你已知晓什么是跨域请求以及跨域请求的处理,本文不会赘述本文后台基于Spr...
    99+
    2023-06-22
  • React Native如何使用axios进行网络请求
    本篇内容主要讲解“React Native如何使用axios进行网络请求”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“React Native如何使用axios进行网络请求”吧!在前端开发中,能...
    99+
    2023-06-20
  • React中如何使用axios发送请求
    小编给大家分享一下React中如何使用axios发送请求,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!React中安装并引入axios依赖在React项目中使用a...
    99+
    2023-06-20
  • react如何发送axios请求
    这篇文章主要介绍了react如何发送axios请求的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react如何发送axios请求文章都会有所收获,下面我们一起来看看吧。react发送axios请求的方法:1、通...
    99+
    2023-07-04
  • React中使用Axios发起POST请求提交文件方式
    目录使用Axios发起POST请求提交文件React中fetch和axios的简单使用fetch的使用Axios的使用总结使用Axios发起POST请求提交文件 通过Axios发起P...
    99+
    2023-02-13
    React使用Axios Axios发起POST请求 POST请求提交文件
  • React网络请求发起方法详细介绍
    目录1. 发起网络请求2. 开发时网络请求代理配置1. 发起网络请求 首先需要安装 axios 库: yarn add axios 发起网络请求: import React, { C...
    99+
    2024-04-02
  • Vue怎么使用axios发送请求
    本文小编为大家详细介绍“Vue怎么使用axios发送请求”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue怎么使用axios发送请求”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。例:当我们在APP组件的子组件...
    99+
    2023-07-05
  • 如何使用 Python 请求网络资源
    很长时间以来我们都在分享 Linux 系统相关的知识,所以可能会有朋友误以为我们只分享 Linux 操作相关的东西,其实不是啊,我们在平时开发过程中遇到的一些问题,感觉可以总结的,都有可能拿来分享。最近在写一个定时访问网络资源的程序,里面涉...
    99+
    2023-05-14
    Python 网络资源
  • 小程序中如何使用wx.request发起请求
    这篇文章主要为大家展示了小程序中如何使用wx.request发起请求,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“小程序中如何使用wx.request发起请求”这篇文章吧。wx.request(O...
    99+
    2023-06-26
  • Vue2利用Axios发起请求的详细过程记录
    目录前言Axios的安装和配置发起简单GET请求发起POST请求发起简单POST请求发起POST请求并携带参数(一)发起POST请求并携带参数(二)上传文件测试Axios的confi...
    99+
    2024-04-02
  • 关于React Native使用axios进行网络请求的方法
    在前端开发中,能够完成数据请求的方式有很多,如Ajax、jQuery ajax、axios和fetch等。不过,随着技术的发展,现在能够看到的基本上也就axios和fetch两种。 ...
    99+
    2024-04-02
  • vue cli3 项目中如何使用axios发送post请求
    目录使用axios发送post请求首先需要安装对应的第三方包发送post请求 发送get请求将index.js中再添加如下代码vue使用axios的踩坑记录axios跨域解...
    99+
    2024-04-02
  • Vue如何使用axios添加请求头
    这篇“Vue如何使用axios添加请求头”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue如何使用axios添加请求头”文...
    99+
    2023-06-30
  • Node.js中如何发起HTTP请求
    这篇文章主要介绍Node.js中如何发起HTTP请求,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!正文Node.js HTTPS ModuleNode.js在标准库中带有https模...
    99+
    2024-04-02
  • vue怎么使用axios发送ajax请求
    在vue中使用axios发送ajax请求的方法:1.新建vue.js项目;2.使用npm命令下载axios;3.使用import方法导入axios;4.执行代码发送ajax请求;具体步骤如下:首先,在vue-cli中创建一个vue.js项目...
    99+
    2024-04-02
  • Vue Axios入门:用Vue.js点亮你的网络请求
    ...
    99+
    2024-04-02
  • php curl发起get与post网络请求案例详解
    curl介绍 curl是一个开源的网络链接库,支持http, https, ftp, gopher, telnet, dict, file, and ldap 协议。之前均益介绍了p...
    99+
    2024-04-02
  • Vue3在Setup中使用axios请求获取的值方式
    目录Setup中使用axios请求获取的值Vue3+Setup使用知识点Setup中使用axios请求获取的值 上次我们使用axios给项目搞上了网络请求,从此项目数据不再是静态的。...
    99+
    2024-04-02
  • vue项目中如何使用axios发送请求让ajax请求头部携带cookie
    这篇文章主要为大家展示了“vue项目中如何使用axios发送请求让ajax请求头部携带cookie”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue项目中如何...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作