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 继承详解(四)
Jul 13 Javascript
javascript 进阶篇2 CSS XML学习
Mar 14 Javascript
Jquery颜色选择器ColorPicker实现代码
Nov 14 Javascript
jQuery中odd选择器的定义和用法
Dec 23 Javascript
jqTransform美化表单
Oct 10 Javascript
详解js跨域原理以及2种解决方案
Dec 09 Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
Jan 18 Javascript
基于jquery实现多级菜单效果
Jul 25 jQuery
新手vue构建单页面应用实例代码
Sep 18 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
Sep 18 Javascript
JS二分查找算法详解
Nov 01 Javascript
ES6 Object.assign()的用法及其使用
Jan 18 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
PHP 命名空间实例说明
2011/01/27 PHP
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
php无限遍历目录示例
2014/02/21 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
PDO::commit讲解
2019/01/27 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
通过实例解析PHP数据类型转换方法
2020/07/11 PHP
[JS]点出统计器
2020/10/11 Javascript
jquery 可排列的表实现代码
2009/11/13 Javascript
JavaScript 数组循环引起的思考
2010/01/01 Javascript
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
jQuery过滤选择器:not()方法使用介绍
2014/04/20 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
炫酷的js手风琴效果
2016/10/13 Javascript
妙用Angularjs实现表格按指定列排序
2017/06/23 Javascript
require.js 加载过程与使用方法介绍
2018/10/30 Javascript
Element Notification通知的实现示例
2020/07/27 Javascript
python根据list重命名文件夹里的所有文件实例
2018/10/25 Python
更改Python的pip install 默认安装依赖路径方法详解
2018/10/27 Python
python生成器推导式用法简单示例
2019/10/08 Python
Python post请求实现代码实例
2020/02/28 Python
Python tornado上传文件的功能
2020/03/26 Python
Python getattr()函数使用方法代码实例
2020/08/10 Python
使用html5 canvas绘制圆环动效
2019/06/03 HTML / CSS
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
国际商务专业学生个人的自我评价
2013/09/28 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
期中考试复习计划
2015/01/19 职场文书
汽车转让协议书
2015/01/29 职场文书
学术会议邀请函
2015/01/30 职场文书
社区端午节活动总结
2015/02/11 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书
2016入党积极分子心得体会
2016/01/06 职场文书
关于感恩的素材句子(38句)
2019/11/11 职场文书
Win11 BitLocker 驱动器加密
2022/04/19 数码科技