mockjs 在项目中vue项目中使用
一、为什么要使用mockjs
总结起来就是在后端接口没有开发完成之前,前端可以用已有的接口文档,在真实的请求上拦截ajax,并根据mockjs的mock数据的规则,模拟真实接口返回的数据,并将随机的模拟数据返回参与相应的数据交互处理,这样真正实现了前后台的分离开发。
二、在vue的项目中怎么去使用mockjs
1、下载mockjs
npm install mockjs --save
2、使用mockjs
2.1在项目目录中新建mock/mockServer.js 模拟服务端
import Mock from 'mockjs'
const swipes = [
{
imgUrl:"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556531040198&di=c6dabc6bb5c6524f9b77ceded00d1fce&imgtype=0&src=http%3A%2F%2Fi3.hexun.com%2F2019-04-28%2F196992413.jpg"
},
{
imgUrl:"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556531040180&di=0feae9ec159834591880d72c34137235&imgtype=0&src=http%3A%2F%2Fm1080.com%2Fupimg%2Fzyzp1%2F145186.jpg"
},
{
imgUrl:"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556531040164&di=b228224bb92c8baa6fbfa1ac6d31398c&imgtype=0&src=http%3A%2F%2Fimg.smzy.com%2Fimges%2F2017%2F0510%2F20170510101016609.jpg"
}
];
const patients =[
{
id:'1',
title:'张大爷',
label:'男',
path:'/patient',
imgUrl:'../../static/images/20170622131955_h4eZS.thumb.700_0.jpeg'
},
{
id:'2',
title:'李大爷',
label:'男',
path:'/patient',
imgUrl:'../../static/images/20170622131955_h4eZS.thumb.700_0.jpeg'
},
{
id:'3',
title:'张奶奶',
label:'女',
path:'/patient',
imgUrl:'../../static/images/20170622131955_h4eZS.thumb.700_0.jpeg'
},
{
id:'4',
title:'李大爷',
label:'男',
path:'/patient',
imgUrl:'../../static/images/20170622131955_h4eZS.thumb.700_0.jpeg'
},
{
id:'5',
title:'王奶奶',
label:'女',
path:'/patient',
imgUrl:'../../static/images/20170622131955_h4eZS.thumb.700_0.jpeg'
}
];
Mock.mock('/swipes',swipes);
Mock.mock('/patients',patients);
Mock.mock("/patient", "post", (options)=>{
const jsonObj = eval('(' + options.body + ')');
const patient = patients.filter(p=>p.id == jsonObj.pid);
return patient[0];
});
2.2在main.js项目全局文件中引入mockServer
import './mock/mockServer' //加载mockServer
2.3前端发送ajax去请求mockServer 的 数据
/*
ajax请求函数模块
返回值: promise对象(异步返回的数据是: response.data)
*/
import axios from 'axios'
export default function ajax (url, data={}, type='GET') { return new Promise(function (resolve, reject) {
// 执行异步ajax请求
let promise
if (type === 'GET') {
// 准备url query参数数据
let dataStr = '' //数据拼接字符串
Object.keys(data).forEach(key => {
dataStr += key + '=' + data[key] + '&'
})
if (dataStr !== '') {
dataStr = dataStr.substring(0, dataStr.lastIndexOf('&'))
url = url + '?' + dataStr
}
// 发送get请求
promise = axios.get(url)
} else {
// 发送post请求
promise = axios.post(url, data)
}
promise.then(function (response) {
// 成功了调用resolve()
resolve(response.data)
}).catch(function (error) {
//失败了调用reject()
reject(error)
})
})
}
/*
包含n个接口请求函数的模块
函数的返回值: promise对象
*/
import ajax from './ajax'; //1、获取swipe的图片列表
export const reqSwipes = ()=>ajax(`/swipes`,); //2、获取所有病人信息列表
export const reqPatients = ()=>ajax(`/patients`); //3、根据pid获取病人信息
export const reqPatientByPid = (pid)=>ajax(`/patient`,{pid},"POST");
mockjs 在项目中vue项目中使用的更多相关文章
- 在内网中 vue项目添加ECharts图表插件
原文地址:https://www.cnblogs.com/aknife/p/11753854.html 最近项目中要使用到图表 但是项目在内网中无法直接使用命令安装 然后我在外网中弄个vue的项目(随 ...
- Springboot项目与vue项目整合打包
我的环境 * JDK 1.8 * maven 3.6.0 * node环境 1.为什么需要前后端项目开发时分离,部署时合并? 在一些公司,部署实施人员的技术无法和互联网公司的运维团队相比,由于各种不定 ...
- webpack+vue-cli搭建项目 (vue项目重构三)
在自己的电脑下载了npm 与 node的情况下 可使用vue-cli快速构建vue项目执行命令如下: # 全局安装 vue-cli$ npm install -g vue-cli# 创建一个基于 &q ...
- Vue.js-创建Vue项目(Vue项目初始化)并不是用Webstrom创建,只是用Webstrom打开
我犯的错误:作为vue小白,并不知道还要单独去创建初始的vue项目,于是自己在webstrom中建了一个Empty Project, 在其中新增了一个js文件,就开始import Vue from “ ...
- django项目、vue项目部署云服务器
目录 上线架构图 服务器购买与远程连接 安装git 安装mysql 安装redis(源码安装) 安装python3.8(源码安装) 安装uwsgi 安装虚拟环境 安装nginx(源码安装) vue项目 ...
- Vue-cli 构建项目 的`.vue`组件中, scss中添加背景图路径问题
[解决方法]: 更改build/utils.js文件中的 ExtractTextPlugin 的 options配置. if (options.extract) { return ExtractTex ...
- vscode 中 vue项目使用eslint插件 检查代码
前言 本文章项目由vue-cli3创建 vscode版本1.36.1 eslint1.9.0 在网上找了一大堆文章,不知是什么原因,没有一篇可以直接使用的 折腾了许久,直接按eslint插件的说明,竟 ...
- webstorm中vue项目--运行配制
## npm搭建的项目,需要运行npm run dev来启动 webstorm作为一款优秀的编辑器,通过配置运行设置,达到一键运行 1.添加node.js配置 2.configuration-> ...
- 使用Vue脚手架(vue-cli)从零搭建一个vue项目(包含vue项目结构展示)
注:在搭建项目之前,请先安装一些全局的工具(如:node,vue-cli等) node安装:去node官网(https://nodejs.org/en/)下载并安装node即可,安装node以后就可以 ...
随机推荐
- SAP MM 采购信息记录中价格单位转换因子的修改
SAP MM 采购信息记录中价格单位转换因子的修改 如下采购信息记录, Order unit 跟 base UoM 一致,都是 PC. 采购价格是8849.56 CNY / 10000W, 由于业务人 ...
- NSURLSession中的downloadTask的使用
1.用downloadTask下载图片 优点:简单 缺点:不能监听下载的进度 代码示例: NSURL *url = [NSURL URLWithString:@"http://pic1.wi ...
- 关于tomcat setenv
tomcat setenv首先寻找执行base下的若不存在,寻找home下的只会执行一个
- 各种windows10下的快捷键
Windows键+ctrl+D 创建虚拟桌面 windows键+Ctrl+方向键 可以切换桌面 windows+tab ctrl+alt+TAB 切换应用 windows+[1-9] 打开任务栏固定的 ...
- 7.Python网络编程_多线程共享全局变量问题
Python多线程支持全局变量的共享操作,但是它存在很多问题,先来看以下程序,该程序理论上执行完毕后全局变量g_num的值应该是2000000,但是在实际运行中,结果不足理论值 import thre ...
- C++学习五 const vector<int>类型的迭代器使用
一情景: 算法功能:对于传入的vector, 能够找到两个数字,使其相加之和为target,然后返回这两个数字的位置(也就是秩) 最开始是这样的一个问题: 对于一个传入的const vector< ...
- jmeter判断请求响应时间,请求下加‘断言持续时间’,添加监听器断言结果;统计超时
- 201871010116-祁英红《面向对象程序设计(java)》第四周学习总结
博文正文开头格式:(2分) 项目 内容 <面向对象程序设计(java)> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://ww ...
- 【西北师大-2108Java】第二次作业成绩汇总
2[西北师大-2108Java]第二次作业成绩汇总 以命令行方式或在Eclipse集成开发环境中编辑.编译.运行第3章示例程序3-1-3-5,结合程序运行结果理解程序代码,每个示例程序从语法.算法两个 ...
- (day55)七、查询优化、MTV和MCV、choices、AJAX、序列化
目录 一.ORM查询优化 (一)only与defer (1)only (2)defer (二)select_related与prefatch_related (1)select_related (2) ...