当前位置: 首页 > news >正文

通过mockjs生成随机响应数据

今天给大家带来通过mock为每个组件准备模拟数据,生成随机响应数据,如果哪里不对,请多多指教。

1. mockjs介绍(为每个组件准备模拟数据)

Mock.js是一个模拟数据的生成器,用来帮助前端调试开发、进行前后端的原型分离以及用来提高自动化测试效率。众所周知Mock.js因为两个重要的特性风靡前端,由于前后端是分离的,所以为了前端编写时候方便测试,我们就可以编写一个mock来测试ajax提交数据是否成功

官网http://mockjs.com目的

  • 数据类型丰富
  • 支持生成随机的文本、数字、布尔值、日期、邮箱、链接、图片、颜色等。
  • 拦截Ajax请求
  • 不需要修改既有代码,就可以拦截Ajax请求,返回模拟的响应数据。

2.效果展示

登陆成功后

实现mockjs发送数据效果展示

3. 如何使用 mockjs

以下这些前提是必须要确定nodejs环境已经安装好的

1)安装mockjs依赖

# -D表示只在开发环境中使用
npm install mockjs -D

2)在config目录下配置mockjs 

开发环境配置如下

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  //增加配置
  MOCK:'true'
})

生产环境配置如下

module.exports = {
  NODE_ENV: '"production"',
  //新增mockjs配置
  MOCK:'false'
}

 修改main.js

process.env.MOCK && require('@/mock')

注:

  1. process对象是Node的一个全局对象,提供当前Node进程的信息
  2. process.env返回环境变量 
  3. import是ES6标准中的模块化解决方案,require是node中遵循CommonJS规范的模块化解决方案,后者支持动态引入,也就是require(${path}/xx.js)

3)创建目录和index文件

在src目录下创建mock目录,定义mock主文件index.js,并在该文件中定义拦截路由配置,/src/mock/index.js

//引入mockjs,npm已安装
import Mock from 'mockjs'

//引入封装的请求地址
import action from '@/api/action'

//全局设置:设置所有ajax请求的超时时间,模拟网络传输耗时
Mock.setup({
  //延时400s请求到数据
  // timeout: 400
  //延时200-400s请求到数据
  timeout: 200 - 400
})

4)通过mockjs模拟发送数据

每个组件准备模拟数据,为每个组件(*.vue)准备模拟数据。然后导入到mock/index.js中

这里我们引入编辑好模拟数据login-mock.js

//引入mockjs,npm已安装
import Mock from 'mockjs'

//引入封装的请求地址
import action from '@/api/action'

//将模拟数据导入到这里。
import loginData from '@/mock/json/login-mock.js'

//获取请求的url
let url = action.getFullPath("SYSTEM_USER_DOLOGIN");


//Mock.mock(url, "post", loginData);

//执行发送模拟请求
Mock.mock(url, /post|get/i, loginData);


//全局设置:设置所有ajax请求的超时时间,模拟网络传输耗时
Mock.setup({
  //延时400s请求到数据
  // timeout: 400
  //延时200-400s请求到数据
  timeout: 200 - 400
})

5)准备模拟数据,编辑login-mock.js

//为增加可读性loginData与mack/index.js中导入的名称对应
const loginData = {
  "success": true,
  "msg": "密码正确"
}

//将当前模块导出,导出后index.js才可以导入
export default loginData

注: 

  1. url  请求url
  2. post 请求方式
  3. loginData  模拟数据
  4. mockjs  会拦截发送的请求,并使用模拟数据充当真实返回的响应数据
  5. Mock.mock(url, /post|get/i, loginData);   执行模拟发送请求
  6. export default loginData  将当前模块导出,导出后index.js才可以导入

通过路由跳转 常用方式

  • 字符串: this.$router.push('/home/first')
  • 对象: this.$router.push({ path: '/home/first' })
  • 命名的路由:
    this.$router.push({ name: 'home', params: { userId: wise }})
    params为传递的参数

this.$router.push、replace、go的区别

this.router.push(): 跳转到不同的url,这个方法会向history栈添加一个记录,点击后退会返回到上一个页面 this.router.replace() : 同样是跳转到指定的url,但是这个方法不会向history里面添加新的记录,点击返回,会跳转到上上一个页面。上一个记录是不存在的。
this.$router.go(n):相对于当前页面向前或向后跳转多少个页面,类似 window.history.go(n)。n可为正数可为负数。负数返回上一个页面

相关文章:

  • VGG16-好莱坞明星识别
  • 《运营商劫持, 中间人攻击, 黑客入侵怎么办?》- HTTPS 技术反制
  • Vue项目的记录(七)
  • 【云原生 • Kubernetes】集群资源监控概述、监控平台的搭建
  • SpringCloud Stream基本使用
  • 没有CANdela,无法编辑cdd数据库文件,也能轻松完成诊断测试,立省大二十个w
  • 【Linux】基本指令 (下篇)
  • 博途PLC的模糊PID(Matlab “fuzzy“工具箱使用介绍)
  • 【Vue 开发实战】实战篇 # 45:如何构建可交互的组件文档让代码高亮的显示在页面
  • m分别通过matlab和FPGA实现基于高阶循环谱的信号载波调制识别(四阶循环累量)仿真(包括仿真录像,matlab工程,fpga工程)
  • 前端知识体系
  • html5 图像标签
  • Python02--python中的缩进,注释和模块
  • STM32CUBEIDE(14)----外部中断EXTI
  • 项目管理PMP要点
  • Android Volley源码解析
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • JS基础之数据类型、对象、原型、原型链、继承
  • laravel5.5 视图共享数据
  • vue脚手架vue-cli
  • 初识 beanstalkd
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 浅谈web中前端模板引擎的使用
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • scrapy中间件源码分析及常用中间件大全
  • 说说我为什么看好Spring Cloud Alibaba
  • 我们雇佣了一只大猴子...
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #微信小程序:微信小程序常见的配置传值
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (2015)JS ES6 必知的十个 特性
  • (二)斐波那契Fabonacci函数
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (力扣)循环队列的实现与详解(C语言)
  • (七)c52学习之旅-中断
  • (十八)SpringBoot之发送QQ邮件
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • .form文件_SSM框架文件上传篇
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .net Stream篇(六)
  • .net 发送邮件
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET分布式缓存Memcached从入门到实战
  • .Net接口调试与案例
  • .NET轻量级ORM组件Dapper葵花宝典
  • 。Net下Windows服务程序开发疑惑
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • []常用AT命令解释()
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序