文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何在vue项目中使用封装后的axios

2023-06-06 18:01

关注

这篇文章给大家介绍如何在vue项目中使用封装后的axios,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

为什么要使用Vue

Vue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以创建可维护性和可测试性更强的代码库,Vue允许可以将一个网页分割成可复用的组件,每个组件都包含属于自己的HTML、CSS、JavaScript,以用来渲染网页中相应的地方,所以越来越多的前端开发者使用vue。

方法如下

vue安装axios

npm install axios -S或者npm i axios -S

在main.js进行全局引入

import axios from 'axios'Vue.prototype.$axios = axios //将axios绑定到vue的原型上

配置跨域 在根目录下vue.config.js里边

module.exports = { publicPath: './', //配置跨域请求 devServer: {  open: true, //是否自动打开浏览器  https: false, //是否开启https  hotOnly: false,  proxy: { // 配置跨域   '/api': {    target: 'http://********', //请求接口域名     ws: true,    secure: false,    changOrigin: true, //是否允许跨越    pathRewrite: {     '^/api': ''    }   }  },  before: app => { } }}

在src子目录下的api文件夹下创建api.js文件进行简单的封装axios

import axios from 'axios'//这里引用了element的loading全屏加载import { Loading } from "element-ui";const service = axios.create({ baseURL: '/', timeout: 30000 // 设置请求超时时间})let loading = "";// 请求拦截器service.interceptors.request.use( (config) => {  // 在请求发送之前做一些处理  if (!(config.headers['Content-Type'])) {   loading = Loading.service({    lock: true,    text: "加载中...",    spinner: "el-icon-loading",    background: "rgba(255,255,255,0.7)",    customClass: "request-loading",   });   if (config.method == 'post') {    config.headers['Content-Type'] =     'application/json;charset=UTF-8'    for (var key in config.data) {     if (config.data[key] === '') {      delete config.data[key]     }    }    config.data = JSON.stringify(config.data)   } else {    config.headers['Content-Type'] =     'application/x-www-form-urlencoded;charset=UTF-8'    config.data = JSON.stringify(config.data)   }  }  const token = "token"  // 让每个请求携带token-- ['X-Token']为自定义key 请根据实际情况自行修改  if (token) {   config.headers['Authorization'] = token  }  return config }, (error) => {  loading.close();  // 发送失败  console.log(error)  return Promise.reject(error) })// 响应拦截器service.interceptors.response.use( (response) => {  loading.close();  // dataAxios 是 axios 返回数据中的 data  // loadingInstance.close();  const dataAxios = response.data  // 这个状态码是和后端约定的  return dataAxios }, (error) => {  return Promise.reject(error) })export default service

在api文件夹下创建http文件

 // 引入封装好的axios // ps:如果没有封装,正常引入axios即可  import axios from "./api";// /api为配置跨域的路径变量  let reportUpload= '/api/report/upload'  export const Upload= () => {   return axios.get( reportUpload )  }

在页面中调用接口

// 引入封装好的接口 import { Upload} from "@/api/http.js"; // 调用时使用 async Upload() {  let { result } = await getlist ();  console.log(result) },

关于如何在vue项目中使用封装后的axios就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯