封装axios、环境变量、api解耦、解决跨域、全局组件注入
官网:Axios中文文档 | Axios中文网
安装:npm install axios
axios封装:
// 1. 引入axios
import axios from "axios";
import storage from '@/utils/storage'
// 2. 创建axios实例
const instance = axios.create({baseURL: process.env.VUE_APP_TITLE === '小政生产环境' ? process.env.VUE_APP_BASE_API : '',timeout: 50000
});// 3. 添加请求拦截器
instance.interceptors.request.use(function (config) {config.headers.Authorization = storage.getItem('token') // 这里是携带的token// 在发送请求之前做些什么return config;
}, function (error) {// 对请求错误做些什么return Promise.reject(error);
});// 4. 添加响应拦截器
instance.interceptors.response.use(function (response) {// 对响应数据做点什么return response;
}, function (error) {// 对响应错误做点什么return Promise.reject(error);
});// 5. 抛出去
export default instance;
环境变量:
与src目录同级新建.env.production和.env.development文件
// .env.productionVUE_APP_TITLE = '小政生产环境' // 必须以VUE_APP开头VUE_APP_BASE_API = 'www.baidu.com' // 必须以VUE_APP开头// 然后可以console.log(process.env.VUE_APP_TITLE)打印查看
// .env.developmentVUE_APP_TITLE = '小政开发环境' // 必须以VUE_APP开头VUE_APP_BASE_API = 'www.baidu.com' // 必须以VUE_APP开头// 然后可以console.log(process.env.VUE_APP_TITLE)打印查看
api解耦:
全局写法:
// api/index.jsimport user from './user'export default {...user
}
// api/user.jsimport axios from "@/utils/axios";export default {getUser: (params) => axios.post('/api/v1/login', params)
}
// main.jsimport api from '@/api'/* 注册api */
Vue.use(api)
局部写法:
// api/user.js
import axios from "@/utils/axios";
export function login(data) {return axios({url: '/login',method: 'post',data})
}export function loginUser () {return axios({url: '/user/loginUser',method: 'get'})
}
<template><div>测试接口请求</div>
</template><script>
import { login, loginUser } from '@/api/user.js'
export default {methods: {FetchLoginUser () {loginUser().then(res => {console.log('result:', res);})}}
}
</script><style lang="scss" scoped></style>
解决跨域:
// vue.config.jsdevServer: {proxy: {// 代理'/api': {target: 'http://xxx.xxx.xx.xxx:xxxx', // 代理的地址changeOrigin: true,pathRewrite: {'^/api': '' // 选择忽略拦截器里面的内容}}}
}
全局组件注入:
与src目录同级新建installComponents
// installComponents/installComponents.js/* 自动化注册组件 */
export default (Vue) => {const requireComponent = require.context(// 其组件目录的相对路径'@/components',// 是否查询其子目录true,// 匹配基础组件文件名的正则表达式/\.(vue|js)$/)/* 这里循环出来的是components下的每一个文件夹 */requireComponent.keys().forEach((path) => {const content = requireComponent(path).default/* 连js后缀名一起注册 */if (content.name) {/* content.name 文件夹名 content文件夹内容 */Vue.component(content.name, content)} else {Vue.use(content)}})
}
// main.js
import installComponents from './installComponents/installComponents'Vue.use(installComponents)
相关文章:
封装axios、环境变量、api解耦、解决跨域、全局组件注入
官网:Axios中文文档 | Axios中文网 安装:npm install axios axios封装: // 1. 引入axios import axios from "axios"; import storage from /utils/storage // 2. 创建axios实例 const instance axios.create({baseURL: proces…...
CDGP|数据治理于企业而言到底有什么用?
在当今数字化时代,数据已成为企业最重要的资产之一。无论是大型跨国公司还是初创型企业,数据都扮演着驱动决策、优化运营和推动创新的关键角色。然而,仅仅拥有大量的数据并不足以确保企业的成功。如何有效管理、整合和利用这些数据࿰…...
Java学习教程,从入门到精通,Java数组(Arrays)语法知识点及案例(19)
1、Java数组(Arrays)语法知识点及案例 一、数组的基本概念 数组是多个相同类型的数据按照一定的顺序排列的集合,使用一个名字命名,通过编号(索引)的方式对这些数据进行统一管理。数组是引用数据类型&…...
11.4OpenCV_图像预处理习题02
1.身份证号码识别(结果:身份证号识别结果为:911124198108030024) import cv2 import numpy as np import paddlehub as hubdef get_text():img cv2.imread("images1/images/shenfen03.jpg")# 灰度化gray_img cv2.cvt…...
go的template示例
模板定义: type Config struct {{{- $len : len .DbConfigs -}}{{- $i : 0 -}}{{- range $key, $value : .DbConfigs}}{{title $key}} *DbConfig "yaml:\"{{lower $key}}\"" {{if lt $i (sub $len 1)}},{{end}}{{- $i add $i 1 -}}{{- end…...
『YOLO』| 断点训练、解决训练中断异常情况
文章目录 方法一方法二 当yolo在训练的时候,如果训练中断或者出现异常,可通过修改代码,从上一次断掉处重新训练,实现断点续训。 方法一 第一种方法: 按照官方给出的恢复训练代码,用yolo命令格式ÿ…...
MQTT+Disruptor 提高物联网高并发
基于springboot2.5.7 废话不多说,直接上干货: Slf4j Configuration EnableConfigurationProperties(MqttProperties.class) IntegrationComponentScan(basePackages {"扫描包路径","扫描包路径"}) public class MqttAutoConfig {…...
SpringBoot项目集成ONLYOFFICE
ONLYOFFICE 文档8.2版本已发布:PDF 协作编辑、改进界面、性能优化、表格中的 RTL 支持等更新 文章目录 前言ONLYOFFICE 产品简介功能与特点Spring Boot 项目中集成 OnlyOffice1. 环境准备2. 部署OnlyOffice Document Server3. 配置Spring Boot项目4. 实现文档编辑功…...
用于nodejs的开源违禁词检测工具 JavaScript node-word-detection
地址 : https://www.npmjs.com/package/node-word-detection github地址: https://github.com/xiaobaidadada/node-word-detection 非常节省内存的轻量级快速违禁词、词典库 检测工具 、 50万个词大约需要300MB内存、被检测的文本100字内结果在1毫秒左右。本项目没有提供词库请…...
FFmpeg 4.3 音视频-多路H265监控录放C++开发十二:在屏幕上显示多路视频播放,可以有不同的分辨率,格式和帧率。
上图是在安防领域的要求,一般都是一个屏幕上有显示多个摄像头捕捉到的画面,这一节,我们是从文件中读取多个文件,显示在屏幕上。...
Linux权限问题(账号切换,权限,粘滞位)
1.什么是权限? 在Linux下有两种用户,分别是超级用户(root)和普通用户。超级用户可以在Linux下做任何事情,几乎不受限制,而普通用户一般只能在自己的工作目录下(/home/xxx)工作&#…...
el-upload,上传文件,后端提示信息,前端需要再次重新上传(不用重新选择文件)
1.el-upload 上传附件: <el-uploadref"upload":action"upload.url ?updateSupport upload.updateSupport":auto-upload"false":disabled"upload.isUploading":headers"upload.headers":limit"1"…...
数字信号处理Python示例(5)使用实指数函数仿真PN结二极管的正向特性
文章目录 前言一、二极管的电流-电压关系——Shockley方程二、PN结二极管正向特性的Python仿真三、仿真结果分析写在后面的话 前言 使用Python代码仿真了描述二极管的电流-电压关系的Shockley方程,对仿真结果进行了分析,说明在正向偏置区域,…...
ctfshow(89,90,92,93)--PHP特性--intval函数
Web89 源代码: include("flag.php"); highlight_file(__FILE__);if(isset($_GET[num])){$num $_GET[num];if(preg_match("/[0-9]/", $num)){die("no no no!");}if(intval($num)){echo $flag;} }审计 GET传参num。 如果在参数num中…...
构建ubuntu22.04.4私有源服务以及配置ubuntu私有源
构建ubuntu22.04.4私有源服务以及配置ubuntu私有源 一、环境说明1.1 私有源服务器1.2 客户机二 、构建私有源服务2.1 服务构建2.2 发布新的deb包到源服务器1. 准备新的 `.deb` 包2. 将 `.deb` 包添加到仓库目录3. 更新 `Packages` 文件4. 更新仓库的发布文件(可选)5. 通知客户…...
模块功能的描述方法
目录 行为描述方法 语句块 过程赋值语句 高级程序语句 循环语句 数据流描述 结构描述 混合描述方法 module 模块名(端口列表); // 模块声明// 端口定义input [数据类型] [位宽] 输入端口列表; output [数据类型] [位宽] 输出端口列表; inout [数据类…...
【WPF】MatrixTransform类
【WPF】MatrixTransform类 主要特性使用场景示例 在WPF(Windows Presentation Foundation)中,MatrixTransform 类是用于表示一个仿射变换的类,它允许开发者通过一个矩阵来定义一个二维空间中的线性变换。这种变换可以包括平移&…...
【C++】继承的理解
1.继承的概念和定义 1.1继承的概念 继承 (inheritance) 机制是面向对象程序设计 使代码可以复用 的最重要的手段,它允许程序员在 保 持原有类特性的基础上进行扩展 ,增加功能,这样产生新的类,称派生类。继承 呈现了面向对象 程序…...
day50 图论章节刷题Part02(99.岛屿数量 深搜、99.岛屿数量 广搜、100.岛屿的最大面积)
前言:前段时间论文开题落下了很多进度,今天开始会尽快赶上 99.岛屿数量 深搜 思路:对地图进行遍历遇到一个没有遍历过的陆地节点,计数器就1,并把该节点所能遍历到的陆地都标记上;遇到标记过的陆地节点和海…...
超详细从基准将VMware ESXi 升级到 vSphere 6.7U1教程
哈喽大家好,欢迎来到虚拟化时代君(XNHCYL),收不到通知请将我点击星标! “ 大家好,我是虚拟化时代君,一位潜心于互联网的技术宅男。这里每天为你分享各种你感兴趣的技术、教程、软件、资源、福…...
抖音批量下载终极指南:如何高效自动化获取用户主页全作品
抖音批量下载终极指南:如何高效自动化获取用户主页全作品 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…...
SISSO符号回归算法:革命性可解释AI模型的3大技术突破
SISSO符号回归算法:革命性可解释AI模型的3大技术突破 【免费下载链接】SISSO A data-driven method combining symbolic regression and compressed sensing for accurate & interpretable models. 项目地址: https://gitcode.com/gh_mirrors/si/SISSO 在…...
Topit:macOS窗口置顶神器,彻底解决多任务窗口遮挡问题
Topit:macOS窗口置顶神器,彻底解决多任务窗口遮挡问题 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 在macOS系统中高效处理多任务时&a…...
SuperMap iDesktop中BIM模型缓存生成全攻略:从性能调优到Web端流畅加载的避坑指南
SuperMap iDesktop中BIM模型缓存生成全攻略:从性能调优到Web端流畅加载的避坑指南 当你在深夜加班处理一个大型商业综合体的BIM模型时,iDesktop突然闪退,进度条停留在87%——这种崩溃瞬间是否似曾相识?作为经历过数十个大型BIM项目…...
RePKG架构深度解析:Wallpaper Engine资源逆向工程与高性能转换方案
RePKG架构深度解析:Wallpaper Engine资源逆向工程与高性能转换方案 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg RePKG是一款专为Wallpaper Engine设计的C#开源工具&a…...
微信网页版终极解决方案:wechat-need-web 完整使用指南
微信网页版终极解决方案:wechat-need-web 完整使用指南 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 你是否曾经因为微信网页版限制而无…...
从CentOS迁移到openEuler?手把手教你在vSphere ESXi 7.0上搭建测试环境
从CentOS迁移到openEuler:vSphere ESXi 7.0测试环境全指南当企业技术栈面临升级换代时,系统管理员往往需要在不影响生产环境的前提下进行充分验证。对于长期依赖CentOS/RHEL生态的用户而言,openEuler作为国产开源操作系统的代表,正…...
猫抓:5步掌握网页资源嗅探工具,轻松下载全网视频
猫抓:5步掌握网页资源嗅探工具,轻松下载全网视频 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为网页上的精彩视频无…...
LPCM框架:芯片设计自动化的机器学习新范式
1. LPCM框架概述:芯片设计自动化的新范式在半导体行业持续面临"摩尔定律"放缓的背景下,LPCM(Large Processor Chip Model)框架代表了一种突破性的芯片设计方法论。这个框架本质上是一个融合了多模态机器学习与强化学习的…...
7net-Omni:多任务学习驱动的通用机器学习原子间势模型解析与应用
1. 项目概述:为什么我们需要一个“全能”的原子模拟模型? 在材料科学和计算化学领域,我们一直面临着一个核心矛盾:量子力学计算(如密度泛函理论,DFT)虽然精度高,但计算成本极其昂贵&…...
