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的资料请关注脚本之家其它相关文章!

相关文章

  • Vue-router 报错NavigationDuplicated的解决方法

    Vue-router 报错NavigationDuplicated的解决方法

    这篇文章主要介绍了Vue-router 报错NavigationDuplicated的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Vue实现图片与文字混输效果

    Vue实现图片与文字混输效果

    用多了 JQuery ,习惯了使用JQuery的API操作 DOM ,几乎忘记了原生JS对DOM操作,今天在项目中遇到了文字和图片混输的情况,小编给大家分享Vue实现图片与文字混输效果,感兴趣的朋友一起看看吧
    2019-12-12
  • 详解Vuex的属性

    详解Vuex的属性

    Vuex是专为Vue.js应用程序开发的状态管理模式,这篇文章主要介绍了Vuex的属性,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • Vue.js项目实战之多语种网站的功能实现(租车)

    Vue.js项目实战之多语种网站的功能实现(租车)

    这篇文章主要介绍了Vue.js项目实战之多语种网站(租车)的功能实现 ,需要的朋友可以参考下
    2019-08-08
  • 使用Vue+ElementUI动态生成面包屑导航教程

    使用Vue+ElementUI动态生成面包屑导航教程

    Vue和ElementUI都是非常流行的前端开发框架,它们可以让我们更加便捷地开发前端应用,下面这篇文章主要给大家介绍了关于使用Vue+ElementUI动态生成面包屑导航的相关资料,需要的朋友可以参考下
    2023-05-05
  • vue页面不能根据路径进行跳转的解决方法

    vue页面不能根据路径进行跳转的解决方法

    本文主要介绍了vue页面不能根据路径进行跳转的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • 在Vue3项目中使用如何echarts问题

    在Vue3项目中使用如何echarts问题

    这篇文章主要介绍了在Vue3项目中使用如何echarts问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 详解vue中点击空白处隐藏div的实现(用指令实现)

    详解vue中点击空白处隐藏div的实现(用指令实现)

    本篇文章主要介绍了详解vue中点击空白处隐藏div的实现(用指令实现),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • vue路由传参接收以及传参对象为对象时的问题及解决

    vue路由传参接收以及传参对象为对象时的问题及解决

    这篇文章主要介绍了vue路由传参接收以及传参对象为对象时的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Vue对话框组件使用方法详解

    Vue对话框组件使用方法详解

    这篇文章主要为大家详细介绍了Vue对话框组件的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03

最新评论