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系列(10) JavaScript核心(晋级高手必读篇)
Jan 15 Javascript
js日期联动示例
May 02 Javascript
JavaScript字符串对象slice方法入门实例(用于字符串截取)
Oct 16 Javascript
JavaScript SHA512&amp;SHA256加密算法详解
Aug 11 Javascript
jquery.cookie.js的介绍与使用方法
Feb 09 Javascript
ES6新数据结构Set与WeakSet用法分析
Mar 31 Javascript
JavaScript设计模式之策略模式详解
Jun 09 Javascript
使用SVG基本操作API的实例讲解
Sep 14 Javascript
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
Sep 20 jQuery
js监听html页面的上下滚动事件方法
Sep 11 Javascript
Vue 报错TypeError: this.$set is not a function 的解决方法
Dec 17 Javascript
高效jQuery选择器的5个技巧实例分析
Nov 26 jQuery
微信小程序如何修改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判断是否有Get参数的方法
2014/05/05 PHP
PHP将回调函数作用到给定数组单元的方法
2014/08/19 PHP
用js实现的检测浏览器和系统的函数
2009/04/09 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
js防止表单重复提交的两种方法
2013/09/30 Javascript
js清理Word格式示例代码
2014/02/13 Javascript
nodejs中实现sleep功能实例
2015/03/24 NodeJs
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
2015/11/26 Javascript
jquery设置表单元素为不可用的简单代码
2016/07/04 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
2016/10/03 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
微信小程序性能优化之checkSession的使用
2019/03/06 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python利用pyHook实现监听用户鼠标与键盘事件
2014/08/21 Python
对python内置map和six.moves.map的区别详解
2018/12/19 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
详解使用django-mama-cas快速搭建CAS服务的实现
2019/10/30 Python
jupyter notebook的安装与使用详解
2020/05/18 Python
python邮件中附加文字、html、图片、附件实现方法
2021/01/04 Python
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
迪卡侬印度官网:购买所有体育用品
2017/06/24 全球购物
javascript实现用户必须勾选协议实例讲解
2021/03/24 Javascript
计算机专业自我鉴定
2013/10/15 职场文书
个人自我评价分享
2013/12/20 职场文书
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
教研活动总结
2014/04/28 职场文书
工商管理专业自荐信
2014/06/03 职场文书
学雷锋活动总结报告
2014/06/26 职场文书
房地产销售主管岗位职责
2015/02/13 职场文书
离婚案件被告代理词
2015/05/23 职场文书
创业开店,这样方式更合理
2019/08/26 职场文书
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis
使用python绘制横竖条形图
2022/04/21 Python