vue项目中使用mockjs模拟接口返回数据
一、安装
cnpm install --save-dev mockjs
二、引入
为了只在开发环境使用mock,而打包到生产环境时自动不使用mock,我们可以在env中做一个配置
//dev.env
module.exports = merge(prodEnv, {
NODE_ENV: '"development"',
MOCK: 'true',
}) //prod.env
module.exports = {
NODE_ENV: '"production"',
MOCK: 'false',
}
然后再main.js里面引入mockjs
process.env.MOCK && require('@/mock')
//表示配置MOCK为true的时候,才引入mock,所以生产环境的时候就不引入mock了
三、目录和文件创建
mock/index.js
//将所有的mock文件导入
require('./inspection') // 在这里可以做一些通用的配置
const Mock = require("mockjs")
// 设置所有ajax请求的超时时间,模拟网络传输耗时
Mock.setup({
timeout: -
})
四、拦截ajax请求,配置mock的数据
const Mock = require("mockjs")
const Random = Mock.Random;
Mock.mock('/api/load','get',{
'xData|100':['@datetime'],
'series|2':[{
'name':'@NAME',
'type':'line',
'smooth':true,
'data|100':['@integer(1,600)']
}]
})
拦截ajax请求主要可以使用Mock中的两个方法:
Mock.mock( rurl, rtype, template )
Mock.mock( rurl, rtype, function( options ) )
{ 'data|1-10':[{}] } 表示生成生成包含 1到10个空对象的数据
'@EMAIL' 表示随机生成一个email地址
'@CNAME' 表示随机生成一个中文人名
Mock.mock('/api/redo','get',function(options){
let series=[];
for(let n=;n<;n++){
let _obj={};
_obj.name = '05-' + (n <= ? '' + n : n);
_obj.type = 'line';
_obj.data=[];
for(let i=;i<;i++){
let _d = Random.integer(,) * (i% == ? : );
_obj.data.push(_d);
}
series.push(_obj);
}
return series;
})
到此基本应用就可以了,更详细的使用,请看官方文档。
五、Mock 无法拦截 带参数的 GET 请求
解决:后来将路径改成正则就好
//api
//获取健康模型数据
export const getRadarDataApi = (id) => ajax({url:BASEURL + 'radar/' + id}) //mock
Mock.mock(/\/api\/radar/,'get',{
'radar|5':['@integer(0, 100)']
})
vue项目中使用mockjs模拟接口返回数据的更多相关文章
- 如何在vue-cli项目中结合mockjs模拟假数据
1.前言 在如今前后端分离的开发方式已被广泛采用的今天,前端同学和后端同学各自独立开发,后端提供数据接口,前端调用接口获取数据渲染页面.但是在实际开发中,后端开发由于逻辑相对复杂接口迟迟提供不到位,而 ...
- mock模拟接口返回数据
mock,是python中模拟接口返回数据 1.安装 pip install mock import unittest from mock import Mock def add(a,b): pass ...
- 为什么在项目中data需要使用return返回数据呢?
问:为什么在项目中data需要使用return返回数据呢? 答:不使用return包裹的数据会在项目的全局可见,会造成变量污染:使用return包裹后数据中变量只在当前组件中生效,不会影响其他组件.
- vue项目中使用mockjs+axios模拟后台数据返回
自己写练手项目的时候常常会遇到一个问题,没有后台接口,获取数据总是很麻烦,于是在网上找了下,发现一个挺好用的模拟后台接口数据的工具:mockjs.现在把自己在项目中使用的方法贴出来 先看下项目的目 ...
- Vue项目中引入mockjs
前提:创建好的vue项目 前言: 为什么引入mockjs:为了实现前后端分离,开发工作可以异步进行 其他工具:axios 一般的前后端交互过程:前端 --> ajax请求 --> 网络协议 ...
- vue项目中利用popstate处理页面返回操作
需求背景:项目中需要做一个返回确认,避免用户误触返回键而退出当前页面. 原理:利用history和浏览器刷新popstate状态 实现: 1.在mounted() 阶段判断并添加popstate事件监 ...
- 10-Mock模拟接口返回数据
1.安装mock 方法一:pip安装 命令行直接输入:pip install mock 方法二:官网下载mock安装包安装 下载安装包后,解压,命令行进入解压目录,执行python setup.py ...
- vue项目中多个组件之间传递数据
//父组件<template> <div> <div style="float: left"> <input-data :city=&qu ...
- vue项目中阻止浏览器返回上一页
vue项目中在某个页面阻止浏览器返回上一页,适用移动端.PC端. 使用场景例如: 首页 与 A页面 来回跳转,那样点击浏览器返回时也会来回跳转,本想当页面在首页的时候就不再返回了,所以这个时候 ...
随机推荐
- Linux (x86) Exploit 开发系列教程之六(绕过ASLR - 第一部分)
转:https://bbs.pediy.com/thread-217390.htm 前提条件: 经典的基于堆栈的缓冲区溢出 虚拟机安装:Ubuntu 12.04(x86) 在以前的帖子中,我们看到了攻 ...
- seat
Install packages sudo apt-get update sudo apt-get install -y curl curl -sSL https://git.io/vVHhe | b ...
- 洛谷P1528 切蛋糕 [搜索,二分答案]
题目传送门 切蛋糕 题目描述 Facer今天买了n块蛋糕,不料被信息组中球球等好吃懒做的家伙发现了,没办法,只好浪费一点来填他们的嘴巴.他答应给每个人留一口,然后量了量每个人口的大小.Facer有把刀 ...
- Android之 ListView(1)
ListView是Android中最常用的控件之一. 当有太多数据需要显示的时候,ListView就派上用场了.它允许用户通过滑动手指的方式,将数据滑入滑出界面. 一.最简单的ListView实现 1 ...
- properties文件乱码问题 eclipse
java最常用的开发工具eclipse里面的properties配置文件里面打开中文是乱码的,解决方式很简单. 将default encoding 设置为utf-8即可. 效果: 漂亮!!!
- JSP中动态INCLUDE与静态INCLUDE的区别?
动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数 静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含 ...
- Unity 2D游戏开发教程之为游戏场景添加多个地面
Unity 2D游戏开发教程之为游戏场景添加多个地面 为游戏场景添加多个地面 显然,只有一个地面的游戏场景太小了,根本不够精灵四处活动的.那么,本节就来介绍一种简单的方法,可以为游戏场景添加多个地面. ...
- [BZOJ 2821] 作诗
Link: BZOJ 2821 传送门 Solution: 一道类似区间众数的经典分块 由于个数为偶数这样的条件不能支持快速合并 因此要先$O(n*sqrt(n))$预处理出$pre[i][j]$表示 ...
- ContentType组件,Django缓存机制,跨域请求
ContentType组件 解决什么问题:表的id和数据id,来唯一确定一条数据 用: 插入数据: models:content_obj = GenericForeignKey('table_id', ...
- Android开发AlertDialog解析
打开源码,首先映入眼帘的是三个构造方法,但这三个构造方法都是protected类型的, 可见,不允许我们直接实例化AlertDialog. 因此,我们再看别的有没有方法.可以实例化 再仔细一看,发现一 ...