mock.js模拟数据实现前后端分离


Posted in Javascript onJuly 24, 2019

众所周知,在日常开发中,前后端分离是最常见的开发模式,前端完成页面渲染,后端提供接口数据。

但是起初项目刚开始,后端还没有写好接口数据,前端要构建页面,还得考虑结构以及后期真实数据的问题。

所以前后端统一接口数据和格式是必要的。

而当统一好接口数据和格式后,前端就可以通过mock.js来模拟对应格式的数据,以此来完成页面的搭建,当后端完成接口和数据后,因为前期数据格式都是规范好的,所以只要去除掉mock.js那部分即可,而不需要再更改界面。

那么说了这么多,mock.js到底是什么?

根据官网简单的解释来说,就是:拦截ajax请求,模拟返回自定义格式的数据,实现前后端分离。

说的这么厉害,那么我们来看看具体用法。

这次先看看在原生中怎么使用,下次介绍在vue中的使用。

普通不涉及框架的项目中安装mock.js推荐使用bower安装:

npm install bower -g
bower install mockjs --save

具体使用:

<!DOCTYPE html>
<html lang="en">
 
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>mock js-demo1</title>
</head>
 
<body>
 
</body>
 
</html>
<script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
<script src="js/ajax.js"></script>
<script type="text/javascript" src="./bower_components/mockjs/dist/mock.js"></script>
<script>
  Mock.mock('http://api.com', {
    'users|5': [ {
      'name': '@cname', //中文名称
      'age|1-100': 100, //100以内随机整数
      'birthday': '@date("yyyy-MM-dd")', //日期
      'city': '@city(true)' //中国城市
    }]
  });
  // //JQuery方式
  $.ajax({
    url: 'http://api.com',
    dataType: 'json'
  }).done(function (data, status, xhr) {
    console.log(
      JSON.stringify(data, null, 4)
    )
  });
  //原生ajax方式
  function ajax(method, url, params, isAsync) {
    //创建对象
    xhr = new XMLHttpRequest();
    //设置请求参数
    xhr.open(method, url, isAsync);
    //回调函数
    xhr.onreadystatechange = function () {
      if (xhr.readyState == 4 && xhr.status == 200) {
        console.log(xhr.responseText);
      }
    }
    //发送请求
    xhr.send();
  }
  ajax('get','http://api.com','', true);
</script>

这里我引入了通过bower下载的mock.js,然后给mockjs给定一个请求地址(如果有可以给定真实地址,没有可以写个假地址,只要和ajax请求地址一致即可),然后在mock的第二个参数中定义了数据格式,是个随机五位的数组对象,包括姓名、年龄、生日、地址

然后通过ajax正常请求地址,然后返回值就会收到mock.js的拦截,而返回我们自定义格式的数据,而不是后端数据

这样在项目初期,后端没有数据的情况下,我们就可以通过模拟数据完成页面功能的开发。

当后端数据完成后,我们只要删除mock.js部分即可(如果前期接口地址是假的,改一下接口地址即可)

这里推荐把mock.js部分抽离到公共的文件中,引入即可,这样后期可维护性强,只要不引入mock部分即可,而不用来回删代码。

返回数据效果:

mock.js模拟数据实现前后端分离

具体的请求格式官网写的很清楚,这里就不做赘述了。

附上官网的地址:

mock.js官网

好了,这次就介绍到这里,大家去试试吧。

如有问题,请指出,接受批评。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript Event学习第八章 事件的顺序
Feb 07 Javascript
js中查找最近的共有祖先元素的实现代码
Dec 30 Javascript
关于全局变量和局部变量的那些事
Jan 11 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
Aug 28 Javascript
JavaScript的各种常见函数定义方法
Sep 16 Javascript
js随机生成网页背景颜色的方法
Feb 26 Javascript
JS简单模拟触发按钮点击功能的方法
Nov 30 Javascript
jQuery中的siblings用法实例分析
Dec 24 Javascript
AngularJS入门教程之多视图切换用法示例
Nov 02 Javascript
解析js如何获取css样式
Dec 11 Javascript
vue中vee validate表单校验的几种基本使用
Jun 25 Javascript
js前端设计模式优化50%表单校验代码示例
Jun 21 Javascript
vue+mock.js实现前后端分离
Jul 24 #Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
Jul 24 #Javascript
Vue封装的组件全局注册并引用
Jul 24 #Javascript
vue子路由跳转实现tab选项卡
Jul 24 #Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
Jul 24 #Javascript
Vue.js路由实现选项卡简单实例
Jul 24 #Javascript
vue滚动tab跟随切换效果
Jun 29 #Javascript
You might like
example1.php
2006/10/09 PHP
深入PHP数据加密详解
2013/06/18 PHP
php实现字符串翻转的方法
2015/03/27 PHP
WordPress网站性能优化指南
2015/11/18 PHP
基于PHPexecl类生成复杂的报表表头示例
2016/10/14 PHP
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
JavaScript中数据结构与算法(四):串(BF)
2015/06/19 Javascript
js实现Select头像选择实时预览代码
2015/08/17 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
2016/09/21 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
原生js实现弹出层登录拖拽功能
2016/12/05 Javascript
原生实现一个react-redux的代码示例
2018/06/08 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
python自动化测试之setUp与tearDown实例
2014/09/28 Python
Python中使用第三方库xlrd来写入Excel文件示例
2015/04/05 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
Python进程间通信之共享内存详解
2017/10/30 Python
Python Flask基础教程示例代码
2018/02/07 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
2018/02/24 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
2018/10/11 Python
详解Python并发编程之创建多线程的几种方法
2019/08/23 Python
python输出数组中指定元素的所有索引示例
2019/12/06 Python
浅谈python 中的 type(), dtype(), astype()的区别
2020/04/09 Python
Python selenium爬取微博数据代码实例
2020/05/22 Python
使用python爬取抖音app视频的实例代码
2020/12/01 Python
宝拉珍选美国官网:Paula’s Choice美国
2018/01/07 全球购物
澳大利亚婴儿、幼儿和儿童在线设计师商店:Smooch Baby
2019/02/16 全球购物
Dogeared官网:在美国手工制作的珠宝
2019/08/24 全球购物
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
应聘自荐信
2013/12/14 职场文书
办公室主任先进事迹
2014/01/18 职场文书
大学生个人自荐信
2014/02/24 职场文书
农村婚礼主持词
2014/03/13 职场文书
辞职信标准格式
2015/02/27 职场文书
公司更名通知函
2015/04/24 职场文书