首页 > 其他分享 >初学者必看!Mock.js 示例详解

初学者必看!Mock.js 示例详解

时间:2023-06-08 14:01:06浏览次数:53  
标签:name 必看 示例 Random js 随机 生成 Mock

Mock.js 基础用法介绍

Mock.js是一个常用于生成随机数据和拦截Ajax请求的JavaScript库。本文将介绍Mock.js的用法,包括安装和基础用法,在开始前我们可以看下看:了解 Mock.js 的语法规范

安装

可以通过npm安装Mock.js:

npm install mockjs

基础用法

随机生成一个用户信息

使用Mock.js可以很方便地生成随机数据。下面的示例中,每个用户信息包括随机生成的中文名、15-25之间的年龄和随机的城市。代码如下所示:

const Mock = require('mockjs') const data = Mock.mock({ 'name': '@cname', 'age|15-25': 0, 'city': '@city' }) console.log(data)

运行上面的代码,可能会得到如下的输出结果:

{ name: '张伟', age: 18, city: '羊城' }

随机生成一个用户信息数组

如果需要生成多个用户信息,可以定义一个Mock.js的数据数组模板,可以指定数组长度为1到10的随机数。代码如下所示:

const data = Mock.mock({ 'list|1-10': [{ 'name': '@cname', 'age|15-25': 0, 'city': '@city' }] }) console.log(data)

运行上面的代码,可能会得到如下的输出结果:

{ "list": [ { "name": "陈芳", "age": 24, "city": "西宁" }, { "name": "罗娟", "age": 20, "city": "咸阳" } ] }

Mock.js API

下面介绍Mock.js中常用的 API

生成随机数据

Mock.Random对象包含了Mock.js中的所有随机数据生成方法。下面是一些常用的方法:

  • Mock.Random.boolean():生成一个随机的布尔值。
  • Mock.Random.integer(min, max):生成一个随机的整数,可以指定范围。
  • Mock.Random.float(min, max, dmin, dmax):生成一个随机的浮点数,可以指定范围和精度。
  • Mock.Random.string(length):生成一个随机的字符串,可以指定长度。
  • Mock.Random.name(middle?):生成一个随机的常见英文姓名。
  • Mock.Random.cname():生成一个随机的常见中文姓名。
  • Mock.Random.date():生成一个随机的日期。
  • Mock.Random.time():生成一个随机的时间。
  • Mock.Random.datetime():生成一个随机的日期时间。
  • Mock.Random.image(size, background, foreground, format, text):生成一个随机的图片,可以指定大小、背景色、前景色、格式和文字。

生成数据模板指定的数据

Mock.mock(template) 根据数据模板生成模拟数据。数据模版可以生成复杂的数据结构。下面是一个示例:

const data = Mock.mock({ 'name': '@cname', 'age|15-25': 0, 'email': /[a-z]{5}@163.com/, 'phone': /1[35789]\d{9}/ }) console.log(data)

运行上面的代码,可能会得到如下的输出结果:

{ name: '杜浩', age: 15, email: '[email protected]', phone: '13940684653' }

模拟接口请求

Mock.mock(url, template)和Mock.mock(method, url, template)用于根据接口地址和数据模板模拟接口请求,支持GET、POST、PUT、DELETE等请求方法。示例如下:

Mock.mock('/user', 'get', { 'name': '@cname', 'age|15-25': 0, 'email': /[a-z]{5}@163.com/, 'phone': /1[35789]\d{9}/ }) Mock.mock('/user', 'post', { 'result': 'success' })

设置Ajax请求响应时间

Mock.setup({timeout: 400}) 指定被拦截的Ajax请求的响应时间,表示400毫秒后才会返回响应内容。示例如下:

Mock.setup({timeout: '200-600'}) Mock.mock('/user', { 'name': '@cname', 'age|15-25': 0, 'email': /[a-z]{5}@163.com/, 'phone': /1[35789]\d{9}/ })

上面的代码表示,响应时间介于200到600毫秒之间。

总结

本文介绍了Mock.js的基础用法,包括随机生成用户信息、随机生成用户信息数组、Mock.js API的常用方法、生成数据模板和模拟接口请求。Mock.js是一个非常实用的数据模拟和接口测试工具,能够大大提高前端开发效率。想进阶成为一位 Mock 高手?Apifox 是一个强大的接口文档管理工具,用 Apifox 可以让 Mock 变得更容易。Apifox 语法完全兼容 Mock.js,  并扩展了一些 Mock.js 没有的语法(如国内手机号 @phone)。小伙伴快去试试看吧~

标签:name,必看,示例,Random,js,随机,生成,Mock
From: https://blog.51cto.com/u_15964010/6439630

相关文章

  • js hook RequestHeader
       //==UserScript==//@namexhr_setRequestHeader//@namespacehttp://tampermonkey.net///@version0.1//@descriptiontrytotakeovertheworld!//@authorYou//@matchhttps://ppzh.jd.com/octopusbrandweb/brand/view......
  • python 安装包、基础学习资料、代码应用示例
    安装包python-3.7.0.rar链接:https://pan.baidu.com/s/1Gl5QUMrLFoTekENighd0iw提取码:ysgxpycharm5.0.3.zip链接:https://pan.baidu.com/s/1DpzRiMWSW2byWjB1cYmQKw提取码:9rgiAnaconda3jupyternotebook第一步进入:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/第......
  • docker启动node.js项目
    原文链接:https://www.cnblogs.com/yalong/p/17463847.html这里使用koa2做为演示项目,使用Dockerfile构建Docker镜像,项目Git地址:仓库地址安装Docker网上都有教程可以自行查找,这里演示的环境是在mac下进行的在node项目根目录下创建Dockerfile文件项目目录如下:Docke......
  • js 分页拆分数据
    splitData(data,pageSize,pageNum){ constresult=[]; constpageTotal=Math.ceil(data.length/pageSize);//计算总页数 //for(leti=0;i<pageTotal;i++){ //conststartIndex=i*pageSize;//计算本页数据的起始位置 //constendI......
  • go json、yaml解码
    func GetFoo(ctx context.Context) (*T, error) {  req, err := http.NewRequest("GET", "http://foo/t.json", nil)  if err != nil {    return nil, err  }  req = req.WithContext(ctx)  res, err := http.DefaultClient.Do(req)  if e......
  • 移动端预览PDF,pdf.js预览PDF文件流格式
     一开始使用了vue-pdf效果并不理想,满足不了要求还出现兼容问题,PDF.js似乎是一个完美的解决方案,号称兼容各种浏览器.快速且高效.界面按钮可以配置,而且也比原生iframe框架好看一些,但是一轮的使用下来,确确实实躺了不少的坑,特此记录一下全过程,希望以后使用的时候注意一点.以......
  • 使用THREEJS实现一个可调节档位、可摇头的电风扇
    夏天到了,用Three.js实现一个可以摇头和调节档位的电风扇。主要使用到Blender处理3D模型,用Vite+Typescript搭建项目框架。效果演示:一、处理模型1、从爱(bai)给(gei)网下载一个风扇的3D模型,在Blender中打开,给模型贴上图。2、拆解模型。将风扇模型拆解成按钮、底座、扇叶、头部......
  • JS 模拟 队列 结构
    Code:/***队列(基于动态数组)*@class*/varAQueue=(function(){/***栈容器*@type{DArray}*/letarr;/***@class*/class_AQueue{/***构造器*@constructor*@param{number}[capacity]*/con......
  • JS 中 使用 Uuid
    一、官方网站https://github.com/uuidjs/uuid二、安装uuidnpminstalluuid三、导入uuid注:官方文档里的示例只适用于服务端(nodejs),想在浏览器里使用,得换一种导入方法nodejs:import{v4asuuidv4}from'uuid';浏览器js:constuuidv4=require('uuid').v4;四、使用c......
  • Three.js系列-报错export ‘Geometry‘ (imported as ‘THREE‘) was not found in ‘
    今天遇到报错export'Geometry'(importedas'THREE')wasnotfoundin'three'port'Geometry'(importedas'THREE')wasnotfoundin'three'(possibleexports:ACESFilmicToneMapping,AddEquation,AddOpe......