vue3学习笔记简单封装axios示例实现

 更新时间:2022年06月08日 11:18:58   作者:爱吃红薯粉  
这篇文章主要为大家介绍了vue3学习笔记简单封装axios示例实现,

简介

axios是一个基于promise的网络请求库,管理后台使用的场景通常 获取后端api数据,然后交给页面渲染

还是在前面的示例项目上操作,安装axios最新0.27.2版本

cd HELLO-WORLD
npm install axios

openapi

在网上找到一个开放的openapi地址,免费且无需认证就可以使用

方便开发时模拟接口数据,但不能使用在生产环境中

该openapi返回json数据,比较符合我们的需求, 这里直接写死到axios配置中

基本配置

axios配置项较多,这里只配置基本功能

在src目录下创建utils文件夹,然后创建request.js文件

import axios from 'axios'
//自动加在url前面
axios.defaults.baseURL = 'https://api.apiopen.top'
//超时时间 
axios.defaults.timeout = 5000
//跨域凭证
axios.defaults.withCredentials = false
//响应和请求 拦截器配置
export default axios

拦截器

axios拦截器分为 请求拦截和响应拦截

请求拦截器可以在请求时设置token,header等等

响应拦截器可以在收到数据后进行逻辑判断

请求拦截器配置

axios.interceptors.request.use(config => {
    console.log(config)
    return config
}, error => {
    Promise.reject(error)
})

响应拦截器配置

axios.interceptors.response.use(res => {
    if (typeof res.data !== 'object') {
        ElMessage.error('返回数据不是对象!')
        return Promise.reject(res)
    }
    if (res.data.code !== 200 ){
        ElMessage.error('返回码不等于200')
    }
    return res.data
}, error => {
    ElMessage.error('网络异常')
    Promise.reject(error)
})

api请求

在src目录创建api文件夹,在api目录中创建openapi.js 文件

创建一个getImages方法来 获取 openapi的图片数据

该方法指定请求get方法,传入url和参数

import request from '../utils/request'
export function getImages(params) {
    return request.get('/api/getImages', { params })
}

数据渲染

在components目录创建一个table.vue的组件,路由配置见前一章

引入openapi,因为是js组件,不需要在vue页面显示声明,直接使用

在页面创建时调用请求数据方法,页面加载完成既可在页面上看到数据

<template>
<div>
  <div>
    <p>this is imagesdata: {{ imagesData }}</p>
  </div>
</div>
</template>
<script>
import { getImages } from '@/api/openapi'
export default {
  name: 'Table',
  data() {
    return {
      imagesData: null,
      queryData: {
        page: 0,
        size: 10,
      }
    }
  },
  created() {
    this.fetchData();
  },
  methods: {
    fetchData() {
      getImages(this.queryData).then( (res) => {
        this.imagesData = res.result
      }).finally( () => {
        console.log(this.imagesData)
      })
    }
  }  
}
</script>

效果如下

结语: 简单的axios封装就完成了,以上就是vue3学习笔记简单封装axios示例实现的详细内容,更多关于vue3封装axios的资料请关注脚本之家其它相关文章!

相关文章

  • 前端本地存储方案localForage在vue3中使用方法

    前端本地存储方案localForage在vue3中使用方法

    localForage是前端本地存储的库,支持多种存储后端,并提供了一致的API来存储和检索数据,这篇文章主要给大家介绍了关于前端本地存储方案localForage在vue3中使用的相关资料,需要的朋友可以参考下
    2024-09-09
  • vue.js学习笔记之绑定style样式和class列表

    vue.js学习笔记之绑定style样式和class列表

    数据绑定一个常见需求是操作元素的 class 列表和它的内联样式。这篇文章主要介绍了vue.js绑定style和class的相关资料,需要的朋友可以参考下
    2016-10-10
  • Vue3实现表单输入的双向绑定的示例代码

    Vue3实现表单输入的双向绑定的示例代码

    Vue.js 是一个渐进式的JavaScript框架,广泛用于构建交互式用户界面,在 Vue 中,双向绑定是一项非常核心的概念,尤其是在处理表单输入时,它使得数据和用户界面之间的互动变得简单又高效,在本篇博客中,我们将深入探讨如何在 Vue 3 中实现表单输入的双向绑定
    2025-01-01
  • Vue 3 表单与后端数据交互之查询并回显数据步骤流程

    Vue 3 表单与后端数据交互之查询并回显数据步骤流程

    本文给大家介绍Vue3表单与后端数据交互之查询并回显数据步骤流程,结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-12-12
  • vue中v-bind和v-model的区别详解

    vue中v-bind和v-model的区别详解

    v-bind和v-model是Vue.js中的两个常用指令,它们在功能和用途上有一些区别,接下来小编就给大家具有讲讲vue中v-bind和v-model区别,感兴趣的同学跟着小编一起来看看吧
    2023-08-08
  • 基于Vue 实现一个中规中矩loading组件

    基于Vue 实现一个中规中矩loading组件

    这篇文章主要介绍了基于Vue 实现一个中规中矩loading组件,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • vue使用pdf.js预览pdf文件的方法

    vue使用pdf.js预览pdf文件的方法

    在页面进行pdf预览的时候,由于文件不能够打印和下载很难满足客户的需求,接下来通过本文给大家介绍vue使用pdf.js来进行pdf预览,需要的朋友可以参考下
    2021-12-12
  • vue搜索高亮popsearch组件的实现示例

    vue搜索高亮popsearch组件的实现示例

    有时候给页面内容添加一个关键词搜索功能,如果搜索结果能够像浏览器搜索一样高亮显示,那找起来就会很明显体验会好很多,本文就来介绍一下vue搜索高亮popsearch组件的实现示例,感兴趣的可以了解一下
    2023-09-09
  • vue使用openlayers实现移动点动画

    vue使用openlayers实现移动点动画

    这篇文章主要为大家详细介绍了vue使用openlayers实现移动点动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • 在vue中高德地图引入和轨迹的绘制的实现

    在vue中高德地图引入和轨迹的绘制的实现

    这篇文章主要介绍了在vue中高德地图引入和轨迹的绘制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10

最新评论