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吧的更多相关文章

  1. ant design pro(一)安装、目录结构、项目加载启动【原始、以及idea开发】

    一.概述 1.1.脚手架概念 编程领域中的“脚手架(Scaffolding)”指的是能够快速搭建项目“骨架”的一类工具.例如大多数的React项目都有src,public,webpack配置文件等等, ...

  2. 001-ant design pro安装、目录结构、项目加载启动【原始、以及idea开发】

    一.概述 1.1.脚手架概念 编程领域中的“脚手架(Scaffolding)”指的是能够快速搭建项目“骨架”的一类工具.例如大多数的React项目都有src,public,webpack配置文件等等, ...

  3. vue 项目中使用mock假数据实现前后端分离

    也是查了很多的资料,整理出来.实现了前后端的分离,用到的技术vue-cli,webpack,node,json-server.首先全局安装json-server cnpm i json-server ...

  4. VS2012 VS2015打开项目加载失败

    VS2012 VS2015打开项目加载失败 改成这个$(MSBuildToolsVersion)试试

  5. django之创建第12个项目-加载图片

    百度云盘:django之创建第12个项目-加载图片 1.setting配置 #静态文件相关配置 # URL prefix for static files. # Example: "http ...

  6. linux nginx配置新项目加域名(设置绑定域名)

    转自:linux nginx配置新项目加域名 找到nginx的配置文件 nginx/nginx.conf 第一种方,法直接在nginx.com里面配置 user www www; worker_pro ...

  7. DELPHI给整个项目加编译开关

    DELPHI给整个项目加编译开关 project--options

  8. vue 项目初始化、mock数据以及安装less

    vue 创建一个项目 1.首先建立一个空文件夹,然后将这个文件夹要放到码云或者其他代码管理平台. 例如码云: 在码云上建立一个项目,然后在控制台进入这文件夹执行 git clone 地址是码云上创建的 ...

  9. vue-cli项目中怎么mock数据

    在vue项目中, mock数据可以使用 node 的 express模块搭建服务 1. 在根目录下创建 test 目录, 用来存放模拟的 json 数据, 在 test 目录下创建模拟的数据 data ...

随机推荐

  1. 深入理解Spring AOP 1.0

    本文相关代码(来自官方源码spring-test模块)请参见spring-demysify org.springframework.mylearntest包下. 统称能够实现AOP的语言为AOL,即( ...

  2. 5分钟白嫖我常用的免费效率软件/工具!效率300% up!

    Mac 免费效率软件/工具推荐 1. uTools(Windows/Mac) 还在为了翻译 English 而专门下载一个翻译软件吗? 还在为了格式某个 json 文本.时间戳转换而打开网址百度地址吗 ...

  3. Springboot+Mybatis+Clickhouse+jsp 搭建单体应用项目(一)

    一.服务器安装clickhouse服务 参阅 :https://www.cnblogs.com/liuyangfirst/p/13379064.html 二.连接数据库 成功 三.新建库 CREATE ...

  4. Python编程第四版中文 上下册完整版pdf|网盘下载附提取码

    点击此处下载 提取码:drjh 作者简介 Mark Lutz是Python培训的世界的领先者,他是最初和最畅销的Python著作的作者,从1992年起就是Python社区的先锋人物.Mark有25年的 ...

  5. MyBatis辟邪剑谱

    一 MyBatis简介 MyBatis是一个优秀的持久层框架 它对JDBC操作数据库的过程进行封装 开发者只需要关注SQL本身 而不需要花费精力去处理JDBC繁杂的过程代码 MyBatis将要执行的各 ...

  6. Servlet容器启动过程

    参考:https://blog.csdn.net/fredaq/article/details/9366043 一.概念 所谓Servlet容器其实说白了是符合Servlet规范的Java web容器 ...

  7. tensorflow2.0 实现gpu和cpu切换

      昨天把GPU版本的tf2.0 安装成功之后,现在所有的代码运行居然都在gpu上跑了,并且在对gpu使用情况没有限制的条件下,既然gpu内存跑满了,代码就崩了怎么样才能随心所欲的指定代码是在cpu还 ...

  8. ifstream

    eof() 这个东西是返回文件是否达到尾部. 在读取错误的时候才会触发. 这点要小心,如果写在while(eof) 即使到了文件尾部, 但并没有读取错误,很有可能再次进入循环,然后出现读取错误 .ge ...

  9. 自定义 Mybatis 框架

    分析流程 1. 引入dom4j <dependencies> <!--<dependency> <groupId>org.mybatis</groupI ...

  10. vue-cli脚手架的搭建

    1.安装node.js 2.安装cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org 3.安装vue-cli npm ...