vue-cli中使用mockjs拦截axios请求

vue-cli4+mockjs的使用 文章目录前言一、mockjs是什么?二、使用步骤1.npm安装mockjs2.创建utils文件夹统一存放api3.将api.js挂载到vue原型上4.创建mock文件夹5.在开发环境下添加mockjs的依赖6.在vue文件中使用mockjs总结 前言 如今web开发大部分都采用前后端分离开发模式,那么我们可以使用mockjs来模拟后端数据,独立于后端开发,从而提高开发效率 本demo使用的为vue-cli 4.2.2版本 提示:以下是本篇文章正文内容,下面案例可供参考 一、mockjs是什么? moc 阅读详情

一、准备工作

1.整理API文件

为了方便接口管理,统一放在src下的api文件夹中
在这里插入图片描述

//index.js
const api = {
    GET_TEST: 'api/getTest'
};
export default api;
2.挂载到main.js中的vue原型上
//main.js
import api from './api';
Vue.prototype.$api = api;
3.在src目录下创建环境接口配置文件

在这里插入图片描述

//bese-url.js

 * 输出接口baseUrl地址
 * @param {String} env 环境模式
 * @returns  {String} 环境模式对应的baseUrl
 */
export default function() {
    const env = process.env.NODE_ENV; //获取环境
    if (!env) {
        return '';
    }
    const envConfig = {
        development: 'http://localhost:8080/', //开发环境
        production: 'http://www.lihefei.com/' //生产环境
    };
    return envConfig[env];
}
4.配置axios的baseURL

axios封装在src目录中的http文件夹下,详细的封装就不写了,网上很多例子,这里只写与baseURL有关的配置
在这里插入图片描述

//index.js
import baseUrl from '@/utils/lib/base-url'; //导入bese-url模块
axios.defaults.baseURL = baseUrl(); //设置axios的默认baseURL 

二、配置mockjs

1.安装mockjs

在vscode中键入命令安装

cnpm install mockjs -D
2.创建mock文件夹

在src文件下新建mock文件夹及index.js,所有的mock统一处理
在这里插入图片描述

通配url版

index.js

import Mock from 'mockjs'; //导入mock模块
import api from '@/api'; //导入前面创建好的api(@为src目录,import的方式导入api模块默认会加载api/index.js)
import baseUrl from '@/utils/lib/base-url'; //导入前面创建的baseUrl模块

/**
 * 将字符串url转换为正则匹配
 * 转正则的原因:如果url是字符串类型,默认会完全匹配mock地址与应用请求地址,参数不同也会造成mock拦截失效,解决方式就是用正则匹配
 * @param {String} url 接口地址
 * @return {RegExp} 返回正则匹配规则
 */
function regUrl(url) {
	let urlStr = baseUrl() + url + '.*'; 
	return RegExp(urlStr);
}

//拦截接口,模拟接口数据
Mock.mock(regUrl(api.GET_TEST), /get|post/i, { 
    code: 0,
    msg: 'Mock接口模拟数据',
    data: [1, 2, 3, 4, 5]
});
匹配参数版

index.js

import Mock from 'mockjs'; //导入mock模块
import api from '@/api'; //导入前面创建好的api(@为src目录,import的方式导入api模块默认会加载api/index.js)
import baseUrl from '@/utils/lib/base-url'; //导入前面创建的baseUrl模块

// 将url参数转换为对象
const getParams = (url) => {
  try {
    url = url.match(/\?([^#]+)/)[1];
    const obj = {};
    const arr = url.split('&');
    for (let i = 0; i < arr.length; i++) {
      let subArr = arr[i].split('=');
      let key = decodeURIComponent(subArr[0]);
      let value = decodeURIComponent(subArr[1]);
      obj[key] = value;
    }
    return obj;
  } catch (err) {
    return null;
  }
};

// 拦截接口,模拟接口数据
// 在url最后加上.*然后用RegExp方法转换为正则表达式,解决get请求因带参数导致不能被匹配的问题
Mock.mock(RegExp(`${baseUrl()}${api.GET_TEST}.*`), /get|post/i, (options) => {
  let { type, url, body } = options;

  let data = null; // 请求参数
  if (type === 'GET') {
    url && (data = getParams(options.url)); // get请求的参数
  } else if (type === 'POST') {
    body && (data = JSON.parse(options.body)); // post请求的参数
  }

  console.log(data);

  return {
    code: 0,
    msg: 'Mock接口模拟数据',
    data: [1, 2, 3, 4, 5]
  };
});

3.在main.js中加载创建好的mock文件
//main.js
process.env.NODE_ENV != 'production' && require('./mock/index'); //如果是线上环境则不加载

三、vue业务应用

//test.vue
data() {
	return {
		list: []
	};
},
create() {
	const that = this;
	let params = { user: 'admin'};
	this.$http.get(this.$api.GET_TEST, params)
	.then((resolve, reject) => {
		if (resolve.code === 0) {
			that.list = resolve.data;
		}
		console.log(resolve);
	});
}
Vue CLI与MockJS实现前端增删改查实战 Vue CLI是一个基于Vue.js进行快速开发的完整系统,它提供了一个高效的项目构建和管理工具。使用Vue CLI可以轻松创建新项目,并进行自动化配置,从而让开发者集中精力在应用开发上。本章将介绍如何快速搭建和配置Vue CLI项目,以及搭建过程中的关键结构组件。在本章节中,我们将深入探讨如何结合MockJS与Express构建自定义mock服务器。通过本章节的学习,读者将能够掌握在Node.js环境下使用Express框架快速搭建mock服务器,并将MockJS集成其中以模拟前端数据。 阅读详情

相关推荐

uniapp:K线图,支持H5,APP

K线,1分钟搞定。备注详细,无需理解,直接复制即可。

sunluyi的博客 4574

vue中mock的使用及mock无侵入解决方案

一、什么是mock? 看了官网的介绍,对前端来说“前后端分离”这点,大大提高了前端开发的效率 前端开发在商讨完需求、接口及数据格式后,就可以直接利用mock模拟后台返回的数据来进行代码开发 二、为什么要用到mock? 下面我在画个流程图,帮助大家理解mock在项目中的处理逻辑 由此可以看出,前端可以利用mock服务来模拟请求后台数据,只要接口文档出来,就可以按照接口文档的api和数据...

weixin_44036130的博客 3879

7系列ZYNQ硬件调试:Vitis无法识别ARM DAP的排查与解决

本文详细分析了Xilinx 7系列ZYNQ芯片在Vitis开发环境中无法识别ARM DAP的常见问题及解决方案。从硬件设计检查(电源系统、时钟电路)、JTAG连接诊断到软件环境排查,提供了全面的调试指南。特别针对ARM DAP初始化失败的情况,给出了实用的排查步骤和预防措施,帮助开发者快速定位和解决类似问题。

weixin_33737134的博客 514

Mock.JS拦截HTTP请求的问题

Mock.JS拦截HTTP请求的问题 MockJS是一种比较通用的前端模拟HTTP请求及回复的工具,能够仿真处各类HTTP的请求及返回结果。实现在无后端的情况下,前端对于后端接口的仿真。Mock的基础使用也是比较简单:Mock.JS官网 但,在引入MockJS时, import Mock from 'mockjs' 会拦截所有前端发出的HTTP请求,无论是否使用Mock.mock开启Moc...

ZHANG DING的博客 1万+

【MFiX后处理】MFiX中使用des_usr_var输出颗粒的传热量(2020-11-27更新变更输出变量名方法)

参考之前Yin的那一篇博客 https://www.cnblogs.com/Jay-CFD/p/10621274.html 输出一下颗粒传热量 使用的算例是fluid_bed_dem_2d 打开des scalar tracking 前面都和Yin那篇一样,打开enable user scalar tracking 输入2 因为第一个用来测试Y加速度了 第二个输出传热量 然后在output vtk中勾选好 更改源代码 源代码为des_thermo_newvalues.f 在mfix-GUI自带的ed

beidou111的博客 1532

实战指南:如何用Elasticsearch+Milvus搭建十亿级多模态搜索系统(含性能调优)

本文详细介绍了如何利用Elasticsearch和Milvus构建十亿级多模态搜索系统,包括架构设计、性能调优和实战部署。通过混合架构实现高效文本检索与向量相似度计算,显著提升查询性能与扩展能力,适用于大规模多模态数据处理场景。

x8y9z0的博客 1171

Vue2使用mock.js拦截不了请求

Vue2使用mock.js拦截不了请求 今天用到mock.js,按理它应该会拦截所有的AJAX请求,但是运行起来没拦截,记录一下: 1.安装mock.js 2.创建/src/mock.js const Mock = require("mockjs") let Result = { code:200, msg:'成功', data:null } Mock.mock('/api/getVerifyCode','get',()=>{ console.log("mock执行ge

qq_39376487的博客 4758

Ubuntu 18.04下Freesurfer 7.2.0安装全攻略:从下载到环境配置一步到位

本文详细介绍了在Ubuntu 18.04系统上安装Freesurfer 7.2.0的完整流程,包括系统准备、依赖安装、下载解压、环境配置、许可证获取及性能优化。Freesurfer作为神经影像分析的重要工具,支持皮层重建和体积分割等复杂任务,适用于阿尔茨海默症等神经系统疾病研究。指南还提供了常见问题解决方案和实际应用案例,帮助用户快速搭建高效的神经影像分析平台。

omega的博客 996

在vue项目中使用mock拦截axios请求

在vue项目中使用mock拦截axios请求

苦夏木禾 1687

大数据领域存算分离:教育行业的数据应用探索

在当今数字化时代,教育行业积累了海量的数据,如学生的学习记录、考试成绩、在线学习行为等。如何高效地存储、管理和分析这些数据,以挖掘其潜在价值,为教育决策、教学改进和学生个性化发展提供支持,成为教育行业面临的重要挑战。大数据领域的存算分离技术为解决这一问题提供了新的思路和方法。本文旨在探索存算分离技术在教育行业的数据应用,分析其原理、优势和实际应用场景,为教育行业的数据管理和分析提供参考。本文共分为十个部分。第一部分介绍背景,包括目的和范围、预期读者、文档结构概述和术语表;

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 812

ISO 21434汽车网络安全标准深度解读系列(十):标准实施总结与展望

ISO21434标准深度解读系列总结篇系统回顾了汽车网络安全标准的核心内容与实施要点。文章梳理了10篇系列文章的结构体系,提炼出标准的三大核心价值:系统性方法(全生命周期覆盖、多层次管理)、风险导向理念(威胁驱动、动态管理)和供应链协同机制。总结了实施经验中的关键要素,包括高层承诺、专业团队建设,并提出了分阶段实施路径建议。同时分析了当前面临的技术挑战(系统复杂性、新兴技术)和管理挑战(文化转变、资源投入)。最后展望了AI应用、零信任架构等技术发展趋势,以及标准未来的演进方向,为企业实施提供战略与执行层面的

VehSwHwDeveloper的博客 558

VUE-cli

Vue的cli内容 1.mockjs **作用:**拦截ajax,生成随机数据。 使用方法: 安装 npm install mockjs -D 导入 import Mock from ‘mockjs’ const Mock = require(“mockjs”) 配置拦截 Mock.mock(url,type,{}) Mock.mock(url,{}) Mock.mock(url,type,function(){ return {} }) 在main.js 导入配置项 2.axios 作用: 1.aja

cj521zhihui的博客 3882

【图像增强】论文精读:Correlation Matching Transformation Transformers for UHD Image Restoration(UHDformer)

论文题目:Correlation Matching Transformation Transformers for UHD Image Restoration —— 用于UHD图像恢复的相关匹配变换变压器AAAI 2024!本文提出了一种用于超高清(UHD)图像恢复的通用变压器UHDformer。UHDformer包含两个学习空间:(a) 高分辨率空间中的学习,(b)低分辨率空间中的学习。前者学习多层次的高分辨率特征,融合低层特征,重建残差图像,后者从高分辨率特征中学习更多的代表性特征,以促进更好的恢复。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 290

如何架构一个中后台项目的前端部分(webpack + 接口配置篇)

前言 上篇文章:如何架构一个中后台项目的前端部分(技术选型篇) 当我们的前端项目完成了技术选型阶段后,接下来所要做的便是项目的构建和配置。虽然说用脚手架能够帮助我们完成基本的目录构建和一些基础配置,但是其他很多实用的功能及特殊配置都需要自己动手实践,根据实际场景进行针对性的设置。 本文主要介绍下项目使用 Vue CLI 3.x 构建后,如何正确的配置 webpack 及接口部分。 webpack ...

javajavajava 920

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【Vue】部分目录的直观理解

【Vue】部分目录的直观理解

m0_62956576的博客 219

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Vue-cli中用mockjs axios实现前后端分离

一,安装axios和mockjs cnpm i axios -S (注意:-S是--save的简写,也就是说,安装axios也可以用:cnpm i axios --save) cnpm i mockjs -D (注意:-D是--save-dev的简写,也就是说,安装mockjs也可以用:cnpm i mockjs --save-dev) 二,在main.js中引入axios和...

1347

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

改造vue-cli,使用mockjs搭建mock server

本文首发在 掘金 关于 最近准备开发一款web应用,考虑到可能会有前后端并行开发的场景,所以决定使用mockjs做mock server。 浏览官网文档时发现没有跑在webpack上的例子,索性自己找方法解决。 什么是mockjs?他的使用场景是什么? 当前端工程师需要独立于后端并行开发时,后端接口还没有完成,那么前端怎么获取数据? 这时可以考虑前端搭建web server自己模拟假数据,mo...

林楠楠的脚趾有点咸的博客 6487

vue 项目中使用 axios + mockjs实现请求的拦截和数据模拟

先用vue-cli脚手架建一个项目,后面是项目创建完成的操作 安装依赖 npm install mockjs --save 目录结构如下 mock目录部分 mock文件夹用来存放模拟的逻辑和数据,mock/index.js是一个入口文件,用来存放所有的mock入口,需要在main.js中直接引入import '@/mock/index.js',如果后期有一部分接口需要模拟,有些不需要模拟,可以在这个mock入口里写判断。 import { login } from './login'; login(.

九段刀客的博客 1490

vue-cli+mockjs+axios 模拟数据基本使用

前言 很多前端同学应该跟我一样,自己平时会写一些小demo,练练自己想要学习的技术。我们经常会给自己造假数据,但直接在组件中造假数据的方式,相对于真实向后台发起请求获取数据还是有很大区别的。了解到mockjs可以模拟向后台发起请求之后,自己在网上搜索了一些资料,结合mockjs官网文档,对mockjs+axios基本使用做一个记录。防止自己以后再用会忘,我记性不太好。。。。 所需资料 mo...

minminmia的博客 633

Vue-cli项目中mockjs + axios实现前后端分离代码demo(清晰易懂)

小编推荐:Fundebug提供JS错误监控、微信小程序错误监控、微信小游戏错误监控,Node.j错误监控和Java错误监控。真的是一个很好用的错误监控费服务,众多大佬公司都在使用。 基础准备: 1、npm安装vue-cli脚手架后,通过命令“ vue init webpack 项目名 ”来创建项目; 2、了解mockjs,能拦截ajax请求,返回模拟的响应数据,实现前后端分离; (详细学...

qq_40126542的博客 503

拿下Mockjs 要了解下嘛

目标 懂得什么是mock 明白mock的基本用法 了解json5的作用 会使用mock和vue-cli结合 会把mock应用于原生、jquery中的ajax请求 1. Mock 1.1 Mock简介 Mock.js,生成随机数据,拦截Ajax请求 Mock官网http://mockjs.com/ 1.2 Mock实战作用 当前端工程师要独立于后端并行开发时,后端接口还没有完成(只有后端提供参考的接口文档),那么前端怎么获取数据。 前端自己搭建web server自己模拟假数据,为了使数据更接近于实际需

Jdoit CW的博客 1万+

vue-cli + axios + element + mockjs | json-server (没有最全只有更全)

1

Dark_programmer的博客 665

使用mockjs_改造vue-cli,使用mockjs搭建mock server

关于最近准备开发一款web应用,考虑到可能会有前后端并行开发的场景,所以决定使用mockjs做mock server。浏览官网文档时发现没有跑在webpack上的例子,索性自己找方法解决。什么是mockjs?他的使用场景是什么?当前端工程师需要独立于后端并行开发时,后端接口还没有完成,那么前端怎么获取数据?这时可以考虑前端搭建web server自己模拟假数据,mockjs用来生成随机数据,拦截 ...

weixin_39629617的博客 251
上一篇: vue-cli3配置跨域代理
下一篇: vue实现table课程表
lihefei_coder
博客等级 码龄10年 180粉丝 293原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值