使用Mock.js生成前端测试数据


Posted in Javascript onDecember 13, 2020

Mock.js是一个模拟数据生成器,可以让前端独立于后端进行开发。如果你正在开发一个前端页面,可是后台还没有完成供你调用的Api,并且数据格式已经确定,那么你就可以使用Mock.js模拟相关的接口,生成假数据来查看页面效果。Mock.js的功能:生成随机数据,拦截 Ajax 请求。

参考文档:https://github.com/nuysoft/Mock/wiki/Getting-Started

语法规范:https://github.com/nuysoft/Mock/wiki/Syntax-Specification

安装

npm install mockjs

创建模拟Api,拦截Ajax请求,返回测试数据

//模拟后台
  Mock.mock('http://api.com', {
    "user|5-10": [{
      'name': '@cname',  //中文名称
      'age|1-100': 100,  //100以内随机整数
      'birthday': '@date("yyyy-MM-dd")', //日期
      'city': '@city(true)'  //中国城市
    }]
  });

发送ajax请求

//JQuery方式
  $.ajax({
    url: 'http://api.com',
    dataType: 'json'
  }).done(function(data, status, xhr) {
    console.log(
      JSON.stringify(data, null, 4)
    )
  });
  //原生ajax方式
  function myajax(url) {
      if (window.XMLHttpRequest) {
        ajax = new XMLHttpRequest();
      } else if (window.ActiveXObject) {
        try {
          ajax = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
          try {
            ajax = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (e) {}
        }
      }
      if (!ajax) {
        window.alert("不能创建XMLHttpRequest对象实例.");
        return false;
      }
      ajax.open("GET", url, true);
      ajax.send(null);
      ajax.onreadystatechange = function() {
        if (ajax.readyState == 4 && ajax.status == 200) {
          console.log(ajax.responseText);
        }
      }
    }

  myajax('http://api.com');

查看响应

{
  "user": [
    {
      "name": "锺丽",
      "age": 17,
      "birthday": "1983-11-01",
      "city": "内蒙古自治区 赤峰市"
    },
    {
      "name": "陈艳",
      "age": 25,
      "birthday": "1973-07-10",
      "city": "河南省 驻马店市"
    },
    {
      "name": "冯霞",
      "age": 59,
      "birthday": "2010-10-28",
      "city": "澳门特别行政区 离岛"
    },
    {
      "name": "贾秀英",
      "age": 63,
      "birthday": "1973-01-22",
      "city": "新疆维吾尔自治区 伊犁哈萨克自治州"
    },
    {
      "name": "周勇",
      "age": 34,
      "birthday": "1985-05-21",
      "city": "湖南省 衡阳市"
    }
  ]
}

示例

// 使用 Mock
var Mock = require('mockjs')

/**
 * 
 * 数据模板
 * 属性名|生成规则: 属性值
 */
var data = Mock.mock({
  // 属性 list 的值是一个数组,其中含有 1 到 10 个元素
  'list|1-10': [{
    // 属性 id 是一个自增数,起始值为 1,每次增 1
    'id|+1': 1,
    'name': '@FIRST'
  }]
})

// 输出结果
console.log(JSON.stringify(data, null, 4))

运行结果

{
    "list": [
        {
            "id": 1,
            "name": "Larry"
        },
        {
            "id": 2,
            "name": "Edward"
        },
        {
            "id": 3,
            "name": "Jessica"
        },
        {
            "id": 4,
            "name": "William"
        },
        {
            "id": 5,
            "name": "Christopher"
        },
        {
            "id": 6,
            "name": "Michael"
        },
        {
            "id": 7,
            "name": "Susan"
        },
        {
            "id": 8,
            "name": "Shirley"
        },
        {
            "id": 9,
            "name": "Angela"
        },
        {
            "id": 10,
            "name": "George"
        }
    ]
}

到此这篇关于使用Mock.js生成前端测试数据的文章就介绍到这了,更多相关Mock.js生成测试数据内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
Apr 12 Javascript
javascript 图片上一张下一张链接效果代码
Mar 12 Javascript
jQuery 源码分析笔记(4) Ready函数
Jun 02 Javascript
有关javascript的性能优化 (repaint和reflow)
Apr 12 Javascript
js data日期初始化的5种方法
Dec 29 Javascript
jquery无刷新验证邮箱地址实现实例
Feb 19 Javascript
jquery 操作两个select实现值之间的互相传递
Mar 07 Javascript
Angular2下使用pdf插件的方法详解
Apr 29 Javascript
JavaScript字符串检索字符的方法
Jun 23 Javascript
Angularjs上传图片实例详解
Aug 06 Javascript
Vue点击切换Class变化,实现Active当前样式操作
Jul 17 Javascript
js实现表格数据搜索
Aug 09 Javascript
javascript实现滚轮轮播图片
Dec 13 #Javascript
swiper实现导航滚动效果
Dec 13 #Javascript
swiperjs实现导航与tab页的联动
Dec 13 #Javascript
Vue实现简单购物车功能
Dec 13 #Vue.js
javascript前端实现多视频上传
Dec 13 #Javascript
vue使用element-ui实现表单验证
Dec 13 #Vue.js
vue+element实现动态加载表单
Dec 13 #Vue.js
You might like
fleaphp crud操作之find函数的使用方法
2011/04/23 PHP
PHP大文件切割上传并带进度条功能示例
2019/07/01 PHP
js 对象是否存在判断
2009/07/15 Javascript
MooTools 1.2介绍
2009/09/14 Javascript
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
JS 实现计算器详解及实例代码(一)
2017/01/08 Javascript
js实现简单的网页换肤效果
2017/01/18 Javascript
全面解析Node.js 8 重要功能和修复
2017/06/02 Javascript
Angular 4 指令快速入门教程
2017/06/07 Javascript
简谈创建React Component的几种方式
2019/06/15 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
python函数局部变量用法实例分析
2015/08/04 Python
Python最火、R极具潜力 2017机器学习调查报告
2017/12/11 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
Django实现登录随机验证码的示例代码
2018/06/20 Python
Python中collections模块的基本使用教程
2018/12/07 Python
对python模块中多个类的用法详解
2019/01/10 Python
解决pycharm安装第三方库失败的问题
2020/05/09 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
CSS3简单实现照片墙
2014/12/12 HTML / CSS
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
财务会计实习报告体会
2013/12/20 职场文书
就业表自我评价分享
2014/02/06 职场文书
《沉香救母》教学反思
2014/04/19 职场文书
成本会计实训报告
2014/11/05 职场文书
被告答辩状范文
2015/05/22 职场文书
美丽人生观后感
2015/06/03 职场文书
Python竟然能剪辑视频
2021/05/25 Python
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript