vue2项目封装axios(vite打包)

1.安装

npm i axios

2.封装axios

说明:request.js文件

//对axios进行二次封装
import axios from "axios"
import "nprogress/nprogress.css"// 当前模块中引入store
// import store from "@/store"// 引入进度条import nprogress from "nprogress"// start代表进度条开始,done表示进度条结束// 创建axios实例,其实request就是axios
const requests = axios.create({//   发请求的时候自动出现api// baseURL:"api",//   请求超时的时间timeout: 5000,})
// 请求拦截器,
requests.interceptors.request.use((config) => {// config对象中有一个headers请求头// 进度条开始// if (store.state.detail.uuid_token) {//     // 请求头添加一个字段userTempId//     config.headers.userTempId = store.state.detail.uuid_token// }//  判断需要携带token带到服务器// if (store.state.user.token) {//     config.headers.token = store.state.user.token// }nprogress.start()return config
})// 响应拦截器
requests.interceptors.response.use(config => {// 成功的回调函数,服务器相应数据回来以后,响应拦截器可以检测到// 进度条结束nprogress.done()return config.data
}, error => {console.log(error);return Promise.reject(new Error("fail"))
})export default requests

3. 请求文件

说明:index.js文件暴露请求方法。

//导入封装的axios
import request from "./request";export const getData=()=>{return request({url:"./data.json",method:'GET'})
}

4.挂载原型

说明:将请求方法挂载在vue的原型上面。

import Vue from 'vue';import 'element-ui/lib/theme-chalk/index.css';import ElementUI from 'element-ui';import router from "./router/index.js"import store  from "./store/index.js";import App from './App.vue';Vue.use(ElementUI);//导入api文件
import * as API from "@/api"new Vue({el:"#app",router,store,beforeCreate() {// 挂载vue实例原型身上,一般自己添加的原型都以$命名Vue.prototype.$API = API;},render:(h)=>h(App),
}).$mount();

 5.发起请求

<template><div><h1>{{ title }}</h1></div>
</template><script>
export default {name: "Index",data() {return {title: '',}},methods: {async getData() {let res = await this.$API.getData()//解构titlelet {title}=resthis.title=title}},mounted() {this.getData()}
}
</script><style scoped></style>

6.被请求文件

说明:data.json文件,被请求的文件放置最外层,与src文件同级。

 7.展示

8.vue.config.js

import {createVuePlugin} from "vite-plugin-vue2"export default {plugins: [createVuePlugin({// 使用 Element UIglobalComponents: true,})],server: {open: true, //自动打开浏览器port: 80, //端口},resolve:{//别名alias: [{find: '@',replacement: '/src'}]}}

9.依赖包

{"name": "vite-vue2","private": true,"version": "0.0.0","scripts": {"dev": "vite","build": "vite build","preview": "vite preview"},"devDependencies": {"babel-plugin-component": "^1.1.1","vite": "^2.9.15","vite-plugin-vue2": "^1.9.3"},"dependencies": {"axios": "^1.6.2","echarts": "^5.4.3","element-ui": "^2.8.2","nprogress": "^0.2.0","vue": "^2.7.15","vue-router": "^3.5.2","vue-template-compiler": "^2.7.15","vuex": "^3.6.2"}
}

 9.文件层级

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/191856.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【giszz笔记】产品设计标准流程【6】

目录 六、组织评审 1.评审的类型 2.评审的人员——谁参加评审 3.评审的核心——怎么提问 & 答案谁说了算 4.评审的流程——前中后三部曲 5.评审的标的——漂亮的靶子 6.避免被“烤”问的一些技巧 7.搞几次评审比较好 这个产品设计系列&#xff0c;陆陆续续写了6篇了…

buildadmin+tp8表格操作(1)----表头上方添加按钮和自定义按钮

buildAdmin 的表头上添加一些按钮&#xff0c;并实现功能 添加按钮 <template><!-- buttons 属性定义了 TableHeader 本身支持的顶部按钮&#xff0c;仅需传递按钮名即可 --><!-- 这里的框架自带的 顶部按钮 分别有 刷新 &#xff0c; 添加&#xff0c; 编辑&…

数据结构与算法【堆】的Java实现

前言 之前已经说过堆的特点了&#xff0c;具体文章在数据结构与算法【队列】的Java实现-CSDN博客。因此直接实现堆的其他功能。 建堆 所谓建堆&#xff0c;就是将一个初始的堆变为大顶堆或是小顶堆。这里以大顶堆为例。展示如何建堆。 找到最后一个非叶子节点从后向前&…

实战提升(六)

前言&#xff1a;Practice makes perfect&#xff01;今天实战Leetcode链表分割还有回文结构。今天的题全都来自于牛客网。 实战一&#xff1a; 思路&#xff1a;我们一这个链表为例&#xff0c;小于5的链表尾插到第一个链表&#xff0c;大于5的链表尾插到第二个链表&#xf…

MAXScript实现简单的碰撞检测教程

在本教程中&#xff0c;我们将创建一个使轮子在地形上跟随的脚本。此脚本将没有任何UI。并且仅适用于特定对象。 因此&#xff0c;第一步是创建一个新的脚本。打开侦听器窗口&#xff0c;然后在文件菜单下选择“新建脚本…”。 我们首先需要创建与场景中的对象相对应的3个变量…

【DevOps】Git 图文详解(三):常用的 Git GUI

Git 图文详解&#xff08;三&#xff09;&#xff1a;常用的 Git GUI 1.SourceTree2.TortoiseGit3.VSCode 中的 Git 如果不想用命令行工具&#xff0c;完全可以安装一个 Git 的 GUI 工具&#xff0c;用的更简单、更舒服。不用记那么多命令了&#xff0c;极易上手&#xff0c;不…

【南京】最新ChatGPT/GPT4科研技术应用与AI绘图及论文高效写作

2023年我们进入了AI2.0时代。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车&#xff0c;就有可能被淘汰在这个数字化时代&#xff0c;如何能高效地处理文本、文献查阅、PPT…

【LeetCode刷题-双指针】--977.有序数组的平方

977.有序数组的平方 方法&#xff1a;双指针 由于数组是升序排序的&#xff0c;如果所有的数都是非负的&#xff0c;那么数组平方后&#xff0c;仍然保持升序&#xff0c;但数组中有负数&#xff0c;将每个数平方后&#xff0c;数组就会降序 需要找到数组中负数与非负数的分界…

Redisson 分布式锁实战应用解析

文章目录 前言一、Redisson介绍二、Redisson的使用1.1 引入依赖1.2 编写配置1.3 示例测试_011.4 示例测试_02 三、Redisson源码分析2.1 加锁源码2.2 看门狗机制 前言 分布式锁主要是解决分布式系统下数据一致性的问题。在单机的环境下&#xff0c;应用是在同一进程下的&#x…

【计算机组成原理】知识点巩固 - 存储器概述

目录 1、存储器分类 1.1、按存储介质分类 1.2、按存取方式分类 1.3、按信息的可改写性分类 1.4、按信息的可保存性分类 1.5、按功能和存取速度分类 2、存储器技术指标 2.1、存储容量 2.2、存取速度 3、存储系统层次结构 4、主存的基本结构 5、主存中数据的存放 5…

Python中的实例属性和类属性

在这篇文章中&#xff0c;我们将探讨Python中的类是如何工作的&#xff0c;主要介绍实例和类的属性。这些属性是什么&#xff0c;它们之间的区别&#xff0c;以及创建和利用它们的python方法。 类属性与实例属性 首先&#xff0c;我们需要知道什么是实例。实例是属于类的对象。…