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

Diane ·
更新时间:2024-09-20
· 546 次阅读

目录

简介

openapi

基本配置

拦截器

api请求

数据渲染

简介

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 学习笔记 学习

需要 登录 后方可回复, 如果你还没有账号请 注册新账号