给你项目加个Mock吧
mockjs官网:http://mockjs.com/
一、简介
1.什么是mock
拦截请求,生成随机数据。

2.mock的使用场景
当后端接口还未完成的时候,前端需要一些数据来写页面,此时就需要Mock数据。
mock原理图:

二、在Vue项目中使用mock.js
1.搭建测试项目
可以参考我之前的一篇文章:新建一个Vue项目
2.安装所需要的的依赖
cnpm install axios --save
cnpm install mockjs --save
cnpm install json5 --save
# axios发送ajx数据
# mockjs生成随机数据
# json5解决json文件无法添加注释的问题
3.mock的基本的配置和使用
生成一个js文件
const Mock = require("mockjs")
let id = Mock.mock("@id")
console.log(id);
let obj = Mock.mock({
id: "@id()",// 随机生成id,字符串
username: "@cname()",// 随机生成中文名
date: "@date()",// 随机生成日期
avatar: "@image('200x200','blue','#fff','Mock~')",// 生成图片(大小,背景色,前景色,文字)
description: "@paragraph()",// 描述
ip: "@ip()",// ip
emai: "@email()"// email
})
console.log(obj);


参考文档:http://mockjs.com/examples.html
4.json5的使用
vsCode插件市场安装一个json5的插件

将刚刚的对象生成一个josn5文件
{
id: "@id()",// 随机生成id,字符串
username: "@cname()",// 随机生成中文名
date: "@date()",// 随机生成日期
avatar: "@image('200x200','blue','#fff','Mock~')",// 生成图片(大小,背景色,前景色,文字)
description: "@paragraph()",// 描述
ip: "@ip()",// ip
emai: "@email()"// email
}
引入josn5库来接续json5格式
const fs = require('fs')
const path = require('path')
const JSON5 = require('json5')
var json = fs.readFileSync(path.join(__dirname, "./userInfo.json5"), "utf-8")
console.log(json)
var obj = JSON5.parse(json)
console.log(obj)

5.mock和vue-cli结合
参考文档:
wenpack相关:https://cli.vuejs.org/zh/guide/webpack.html
vue-cli配置参考https://cli.vuejs.org/zh/config/#devserver
https://webpack.js.org/configuration/dev-server/#devserverbefore
根目录新建一个vue.config.js的文件
module.exports = {
devServer: {
before: require('./mock/index')
}
}

mock文件夹下新建index.js文件
const fs = require("fs");
const path = require("path");
const Mock = require("mockjs");
const JSON5 = require("json5");
function getJsonFile(filePath) {
// 读取指定文件
var json = fs.readFileSync(path.resolve(__dirname, filePath), "utf-8");
// 解析返回
return JSON5.parse(json);
}
// 返回一个函数
module.exports = function (app) {
// 监听http请求
app.get("/user/userinfo", function (rep, res) {
// 读取文件进行处理
var json = getJsonFile("./userInfo.json5");
// 将json传入方法中,返回给浏览器
res.json(Mock.mock(json));
});
}

6.发送ajax请求
在 src\components\HelloWorld.vue 中发送ajax请求
<script>
import axios from 'axios'
export default {
name: 'HelloWorld',
props: {
msg: String,
},
mounted() {
axios
.get('/user/userinfo')
.then((res) => {
console.log(res)
})
.catch((err) => {
console.log(err)
})
},
}
</script>[]()


7.mock加入环境判断
参考文档:https://cli.vuejs.org/zh/guide/mode-and-env.html

根目录新建一个 .env.development 文件


mock文件夹中的index.js文件加入判断

重启项目,当为true的时候可以正常访问;
当不为true的时候报404,如果此时后端接口写好,将可以直接拿到数据。


给你项目加个Mock吧的更多相关文章
- ant design pro(一)安装、目录结构、项目加载启动【原始、以及idea开发】
一.概述 1.1.脚手架概念 编程领域中的“脚手架(Scaffolding)”指的是能够快速搭建项目“骨架”的一类工具.例如大多数的React项目都有src,public,webpack配置文件等等, ...
- 001-ant design pro安装、目录结构、项目加载启动【原始、以及idea开发】
一.概述 1.1.脚手架概念 编程领域中的“脚手架(Scaffolding)”指的是能够快速搭建项目“骨架”的一类工具.例如大多数的React项目都有src,public,webpack配置文件等等, ...
- vue 项目中使用mock假数据实现前后端分离
也是查了很多的资料,整理出来.实现了前后端的分离,用到的技术vue-cli,webpack,node,json-server.首先全局安装json-server cnpm i json-server ...
- VS2012 VS2015打开项目加载失败
VS2012 VS2015打开项目加载失败 改成这个$(MSBuildToolsVersion)试试
- django之创建第12个项目-加载图片
百度云盘:django之创建第12个项目-加载图片 1.setting配置 #静态文件相关配置 # URL prefix for static files. # Example: "http ...
- linux nginx配置新项目加域名(设置绑定域名)
转自:linux nginx配置新项目加域名 找到nginx的配置文件 nginx/nginx.conf 第一种方,法直接在nginx.com里面配置 user www www; worker_pro ...
- DELPHI给整个项目加编译开关
DELPHI给整个项目加编译开关 project--options
- vue 项目初始化、mock数据以及安装less
vue 创建一个项目 1.首先建立一个空文件夹,然后将这个文件夹要放到码云或者其他代码管理平台. 例如码云: 在码云上建立一个项目,然后在控制台进入这文件夹执行 git clone 地址是码云上创建的 ...
- vue-cli项目中怎么mock数据
在vue项目中, mock数据可以使用 node 的 express模块搭建服务 1. 在根目录下创建 test 目录, 用来存放模拟的 json 数据, 在 test 目录下创建模拟的数据 data ...
随机推荐
- Markdown简洁语法说明
学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"乐优商城"获取视频和教程资料! b站在线视频 0.前言 ...
- PHP krsort() 函数
------------恢复内容开始------------ 实例 对关联数组按照键名进行降序排序: <?php$age=array("Peter"=>"35 ...
- PHP date_time_set() 函数
------------恢复内容开始------------ 实例 设置时间: <?php$date=date_create("2013-05-01");date_time_ ...
- PHP readfile() 函数
定义和用法 readfile() 函数读取一个文件,并写入到输出缓冲. 如果成功,该函数返回从文件中读入的字节数.如果失败,该函数返回 FALSE 并附带错误信息.您可以通过在函数名前面添加一个 '@ ...
- 程序员面试:C/C++求职者必备 20 道面试题,一道试题一份信心!
面试真是痛并快乐的一件事,痛在被虐的体无完肤,快乐在可以短时间内积累很多问题,加速学习. 在我们准备面试的时候,遇到的面试题有难有易,不能因为容易,我们就轻视,更不能因为难,我们就放弃.我们面对高薪就 ...
- BZOJ3772精神污染&BZOJ3488&luogu3242接水果
LINK1:精神污染 LINK2:[ONTAK2010Highways](http://www.lydsy.com/JudgeOnline/problem.php?id=3488) LINK3:[接水 ...
- EF Code First数据库模型及属性约束
1.今日完成任务 数据库实体的创建 实体属性约束的添加 实体之间关系的添加 2.核心代码 EF模型 属性约束及实体之间的关系 使用FlutAPI对模型进行修正 3.遇到的问题及解决方案 最主要的是联合 ...
- react-router分析 - 一、history
react-router基于history库,它是一个管理js应用session会话历史的js库.它将不同环境(浏览器,node等)的变量统一成了一个简易的API来管理历史堆栈.导航.确认跳转.以及s ...
- java动态代理——jvm指令集基本概念和方法字节码结构的进一步探究及proxy源码分析四
前文地址 https://www.cnblogs.com/tera/p/13336627.html 本系列文章主要是博主在学习spring aop的过程中了解到其使用了java动态代理,本着究根问底的 ...
- 【模式识别与机器学习】——SVM举例