IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue基于promise可以用于浏览器和node.js的网络请求库【axios封装-收藏版】 -> 正文阅读

[JavaScript知识库]vue基于promise可以用于浏览器和node.js的网络请求库【axios封装-收藏版】

🚀作者简介

主页:水香木鱼的博客

专栏:后台管理系统项目优化
能量:🔋容量已消耗1%,自动充电中…

笺言:用博客记录每一次成长,书写五彩人生。

📒技术聊斋

axios官方文档

vue.config.js配置 官方文档


(一)Axios 是什么?

Axios 是一个基于 promise 网络请求库,作用于node.js浏览器中

它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。

在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests

(二)Axios 的特性

  1. 从浏览器创建 XMLHttpRequests
  2. node.js 创建 http 请求
  3. 支持 Promise API
  4. 拦截请求和响应
  5. 转换请求响应数据
  6. 取消请求
  7. 自动转换JSON数据
  8. 客户端支持防御XSRF

(三)Axios 的安装

Ⅰ、使用 npm

npm install axios --save

Ⅱ、使用 yarn

yarn add axios --save

Ⅲ、使用 jsDelivr CDN

<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>

Ⅳ、使用 unpkg CDN

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

(四)封装Axios 的utils工具【request.js】

在这里插入图片描述

src下创建utils 文件夹【全部代码见 👇

Ⅰ、导入axios

import axios from "axios";

Ⅱ、创建requests 函数

  • baseURL【接口地址】
  • timeout【访问超时的时间ms,超过这个时间即访问失败】
const requests = axios.create({
  baseURL: "",
  timeout: 50000,
});

Ⅲ、添加请求拦截器【request】

requests.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么,例如加入token
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

Ⅳ、添加响应拦截器【response】

requests.interceptors.response.use(
  function (response) {
    // 在接收响应时做些什么,例如跳转到登录页
    return response;
  },
  function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);

Ⅴ、导出到外部环境使用

export default requests;

Ⅵ、全部代码

import axios from "axios";
const requests = axios.create({
  baseURL: "",
  timeout: 50000,
});

// 添加请求拦截器
requests.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么,例如加入token
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

requests.interceptors.response.use(
  function (response) {
    // 在接收响应时做些什么,例如跳转到登录页
    return response;
  },
  function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);

export default requests;

(五)封装Axios 的 统一管理API

Ⅰ、src下创建api文件夹

在这里插入图片描述

Ⅱ、封装testApi【根据接口类型去进行封装】

  • url【地址】
  • methods【请求方式】getpost
import requests from "../utils/request";
export const getTestList = () =>
  requests({ 
  url: "https://1xx.xx.xx.xx:xxxx/api/v1/data/dataSetApply/homePageList", 
  methods: "get" 
});

(六)Axios 的全局调用

在main.js 中注册

import * as API from '@/api'
Vue.prototype.$API = API;

(七)Axios 的页面内调用【优先选择】

推荐方式二

方式一:使用beforeCreate钩子函数

import * as API from '@/api'
 beforeCreate(){
    Vue.prototype.$API = API;
  },

方式二:使用.then .catch【常用】

<script>
import { getTestList } from "../api/testApi";
export default {
  data() {
    return {
      testList: [],
      traceIds: "",
    };
  },
  mounted() {
    this.handleListData();
  },
  methods: {
    handleListData() {
      // 列表数据
      getTestList()
        .then((res) => {
          const data = res.data.data;
          this.testList = data;
          console.log(this.testList, "测试数据");
        })
        .catch();
    },
  },
};
</script>

方式三:使用async await 【异步请求】

<script>
import { getTestList } from "../api/testApi";
export default {
  data() {
    return {
      testList: [],
    };
  },
  mounted() {
    this.handleListData();
  },
  methods: {
    async handleListData() {
       let result = await getTestList();
       if (result.status == 200) {
         const data = result.data.data;
         this.testList = data;
         console.log(this.testList, "测试数据");
       }
     },
  },
};
</script>

(八)数据请求成功

在这里插入图片描述


📓精品推荐

🔋前端element-ui组件库el-card卡片【hover效果与点击事件(点击无效用@click.native=““)解决】

🔋vue实现【接口数据渲染随机显示】和【仅显示前五条数据】

🔋vue实现刷新页面随机切换背景图【适用于登陆界面】

🔋vue封装返回顶部组件【cv可用】

🔋vue实现keep-alive页面缓存【三步骤配置,一步到位】


木鱼谢语:感谢各位技术大牛们的点赞👍收藏🌟,每一期都会为大家带来快速适用于业务的文章,让大家做到cv即可。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:24:08  更:2022-10-17 12:25:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 17:39:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码