vue+mock.js实现前后端分离


Posted in Javascript onJuly 24, 2019

之前都是介绍在普通项目中使用mock.js,那么本次就来介绍一下在vue中使用mock.js实现前后端分离。

安装:

npm install mockjs

这里先写个小案例介绍一下具体使用,写法不规范,仅供参考。

然后案例讲完后我们讲具体的规范使用

那么一起来看看这个案例吧:

<script>
 import Mock from "mockjs"
 export default {
  name: "FunctionsDbSource",
  methods:{
   // 接口测试
   init(){
    // 请求后端数据,查询数据源
    this.axios({
     method: "get",
     url:`${this.baseURL}/GetAll`,
     headers: {
      Account: "Admin",
      Password:"888888"
     }
    })
    .then((response)=> {
     console.log(response);
    })
    .catch((error)=> {
     console.log(error);
    });
   }
  },
  created(){
   Mock.mock(`${this.baseURL}/GetAll`, {
    'users|5': [ {
     'name': '@cname', //中文名称
     'age|1-100': 100, //100以内随机整数
     'birthday': '@date("yyyy-MM-dd")', //日期
     'city': '@city(true)' //中国城市
    }]
   });
   this.init();
  }
 }
</script>

首先引入了mock.js,然后定义了一个方法,用axios请求后台数据,在创建后调用此方法,然后我在创建后使用mock.js拦截请求,模拟数据(这里我模拟的是一个5位长度的users数组),只要mock的url地址和请求的地址相同,就会自动拦截请求。

我们打印了一下请求的结果response:

vue+mock.js实现前后端分离

大家可以看到,和后端返回的数据格式一致,只是里面内容是我们自己模拟的,所以,只要提前和后端商量好数据格式,我们自己进行模拟数据,完成界面得渲染,等到后端写好数据接口,到时候只要把mock部分删除,就是我们自己想要的结果了。

但是每个请求都这样在vue页面中去写mock,后期删除起来也不方便,可维护性低,高耦合,所以我们这里就涉及到规范的写法。

1、安装:

npm install mockjs

2、手动新建mock.js文件(当然新建文件夹把它抽离出来也是可以的)

内容如下(根据实际需求更改):

import Mock from 'mockjs' // 引入mockjs
 
let data = 'users|5': [ {
   'name': '@cname', //中文名称
   'age|1-100': 100, //100以内随机整数
   'birthday': '@date("yyyy-MM-dd")', //日期
   'city': '@city(true)' //中国城市
  }]
 
Mock.mock('/data/index', 'get', data) // 根据数据模板生成模拟数据

3、main.js中引入(注意自己js文件的路径)

// 引入mock
require('./mock.js');

4、页面中使用:

<script>
 import Mock from "mockjs"
 export default {
  name: "FunctionsDbSource",
  methods:{
   // 接口测试
   init(){
    // 请求后端数据,查询数据源
    this.axios({
     method: "get",
     url:"data/index",
    })
    .then((response)=> {
     console.log(response);
    })
    .catch((error)=> {
     console.log(error);
    });
   }
  },
  created(){
   this.init();
  }
 }
</script>

以此我们就完成了抽离mock.js,之后只要往mock的js文件中添加请求即可,后续只要等后端接口写好,把main.js中的引入mock.js注释(删除)即可。

还有一种更直接的方法,因为mock只是我们生产环境需要的东西,当我们发布上线肯定不需要这部分请求,都会换成实际请求地址和数据,所以直接把mock.js配置到生产环境,上线部署打包不打包这部分即可,就和vue中的代理部分,上线是不会打包这部分的一样。

感兴趣的童鞋可以自己去研究研究哈。

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

Javascript 相关文章推荐
JavaScript函数、方法、对象代码
Oct 29 Javascript
关于锚点跳转及jQuery下相关操作与插件
Oct 01 Javascript
JavaSript中变量的作用域闭包的深入理解
May 12 Javascript
JavaScript实现找出字符串中第一个不重复的字符
Sep 03 Javascript
node.js cookie-parser 中间件介绍
Jun 06 Javascript
jQuery动态创建元素以及追加节点的实现方法
Oct 20 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
Feb 10 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
May 08 jQuery
微信小程序实现打开内置地图功能【附源码下载】
Dec 07 Javascript
Vue-Router基础学习笔记(小结)
Oct 15 Javascript
axios携带cookie配置详解(axios+koa)
Dec 28 Javascript
vue中引入mxGraph的步骤详解
May 17 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
Vue.js实现tab切换效果
Jul 24 #Javascript
You might like
解析php DOMElement 操作xml 文档的实现代码
2013/05/10 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
JS操作XML中DTD介绍及使用方法分析
2019/07/04 PHP
Js 订制自己的AlertBox(信息提示框)
2009/01/09 Javascript
js实现快速分享功能(你的文章分享工具)
2013/06/25 Javascript
js清理Word格式示例代码
2014/02/13 Javascript
使用CamanJS在Web页面上处理图像的技巧
2015/08/18 Javascript
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
jQuery实现只允许输入数字和小数点的方法
2016/03/02 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
2017/03/30 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
在ABP框架中使用BootstrapTable组件的方法
2017/07/31 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
2018/11/02 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
解决Antd Table表头加Icon和气泡提示的坑
2020/11/17 Javascript
webpack4从0搭建组件库的实现
2020/11/29 Javascript
Python 字符串操作实现代码(截取/替换/查找/分割)
2013/06/08 Python
Python爬虫:通过关键字爬取百度图片
2017/02/17 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
Python多重继承的方法解析执行顺序实例分析
2018/05/26 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
Python安装OpenCV的示例代码
2020/03/05 Python
史学专业毕业生求职信
2014/05/09 职场文书
艺术学院毕业生自荐信
2014/07/05 职场文书
销售会议开幕词
2015/01/28 职场文书
导游词之清晏园
2019/11/22 职场文书
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android