Mockjs的理解与简单使用

news/2024/7/19 15:50:34 标签: ajax, js

在这里插入图片描述

感觉在实际前后台联调的过程中,主要有以下几个用到Mockjs的时机:

  • 开发新功能,后台接口以及相关的字段已经定义了,但还并没有写实现,也就是无法访问,这时候就可以使用Mockjs,来模拟数据的返回。
  • 后台返回的数据不足以模拟某些场景,比如你想看一下分页的效果,但数据太少。

Mockjs就可以满足上面的需求:

  • 简单方便的生成随机数据
  • 拦截Ajax请求

其实这也是其官网上自己对自己定义

生成随机数据,拦截 Ajax 请求

Mockjs做的事情很简单,但他实现的很优雅,下面我先举一个简单例子:

import Mock from 'mockjs'
import axios from 'axios'
export default {
  name: 'App',
  mounted() {
  // 拦截请求
    Mock.mock(/test/, {
    	// 模拟数据 
      'list|1-10': [{
          'id|+1': 1,
          'email': '@EMAIL'
      }]
    })
    axios({method:'GET', url: '/url/test'}).then(res => {
      console.log(res);
    })
  }
}

以上,其实mock的语法,可以看成一种json的增强型语法。就是把普通json的key扩展一下,语法是:

// 属性名 name
// 生成规则 rule
// 属性值 value
‘name|rule’: value

比如上文中生成数据使用的语法:

{
   'list|1-10': [{
       'id|+1': 1,
       'email': '@EMAIL'
	}]
}

最终就会生成一下的数据
在这里插入图片描述
mock的语法生成规则非常强大,更多还是参考官方文档吧 http://mockjs.com/

最后,mockjs是实现原理是重写了xhr对象,在引入了mockjs的网站上,直接控制台输入XMLHttpRequest,可以看到返回的对象就是Mock的对象。
在这里插入图片描述
所以浏览器中使用axios是可以被mock的,而使用fetch是不可以的,这点还是值得注意的。


http://www.niftyadmin.cn/n/1382905.html

相关文章

webpack4.0各个击破(7)—— plugin篇

webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高。本系列是笔者自己的学习记录,比较基础,希望通过问题 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习webpack工具…

同模余定理

声明:借鉴高手! 一、 同余 对于整数除以某个正整数的问题,如果只关心余数的情况,就产生同余的概念。 定义1 用给定的正整数m分别除整数a、b,如果所得的余数相等,则称a、b对模m同余,记作a≡b(mod…

一次 mysql 启动错误

2019独角兽企业重金招聘Python工程师标准>>> 140321 13:19:31 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql /usr/libexec/mysqld: Cant find file: ./mysql/plugin.frm (errno: 13) 140321 13:19:31 [ERROR] Cant open the mysql.plugi…

Uncaught (in promise) TypeError: canvas.getContext is not a function

被渲染的canvas标签&#xff0c;必须是canvas… 以下是好的 <canvas id"the-canvas" ></canvas>以下是不可以的 <div id"the-canvas" ></div>

php pass-by-reference deprecated $--$

就要喷php5的Call-time pass-by-reference has been removed转载于:https://www.cnblogs.com/SZLLQ2000/p/5407406.html

智能灯将成为最大物联网消费设备

TechSci Research最近公布名为“2020年印度LED照明市场预测与机遇”的科技报告称&#xff0c;从2015年到2020年&#xff0c;印度LED照明市场预计将以超过32%的复合年增长率增长。分析师哈什瓦得汗奇塔尔预测&#xff0c;随着越来越便宜的智能灯泡快速取代白炽灯泡和紧凑型荧光灯…

ubuntu16.04 重启ping不通百度 linux 三

2019独角兽企业重金招聘Python工程师标准>>> 直接修改/etc/resolv.conf文件添加DNS的方法并不可行&#xff0c;因为重启系统后&#xff0c;该配置文件会被重新覆盖。 原因解释&#xff1a;在Ubuntu中有一个 resolvconf的服务&#xff0c;这个服务用来控制/etc/resol…

mongodb集群+分片部署(二)

机器&#xff1a;10.165.38.68 10.165.38.72 部署包&#xff1a;mongodb-linux-x86_64-rhel55-3.0.2.tgz&#xff08;百度云盘下载地址&#xff1a;http://pan.baidu.com/s/1jIQAGlw 密码&#xff1a;l7pf&#xff09; 部署结构&#xff1a; 10.165.38.68上部署配置服务、路…