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 相关文章推荐
基于jquery的跨域调用文件
Nov 19 Javascript
Iframe实现跨浏览器自适应高度解决方法
Sep 02 Javascript
一款由jquery实现的整屏切换特效
Sep 15 Javascript
jQuery实现点击该行即可删除HTML表格行
Oct 17 Javascript
javascript中clone对象详解
Dec 03 Javascript
浅析BootStrap模态框的使用(经典)
Apr 29 Javascript
通过jsonp获取json数据实现AJAX跨域请求
Jan 22 Javascript
js省市区级联查询(插件版&amp;无插件版)
Mar 21 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
Dec 26 Javascript
详解关于vue-area-linkage走过的坑
Jun 27 Javascript
详解a标签添加onclick事件的几种方式
Mar 29 Javascript
js实现车辆管理系统
Aug 26 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
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
PHP XML操作的各种方法解析(比较详细)
2010/06/17 PHP
php 文本文件的读取效率
2012/02/10 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
2013/06/24 PHP
php轻松实现中英文混排字符串截取
2014/05/28 PHP
讲解WordPress开发中一些常用的debug技巧
2015/12/18 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
解决jquery1.9不支持browser对象的问题
2013/11/13 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
JS实现控制表格只显示行边框或者只显示列边框的方法
2015/03/31 Javascript
Javascript中的方法和匿名方法实例详解
2015/06/13 Javascript
JS类的定义与使用方法深入探索
2016/11/26 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
js实现瀑布流效果(自动生成新的内容)
2017/03/16 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
为什么我们要做三份 Webpack 配置文件
2017/09/18 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
JS实现的3des+base64加密解密算法完整示例
2018/05/18 Javascript
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
Vue的全局过滤器和私有过滤器的实现
2020/04/20 Javascript
python中字符串数组逆序排列方法总结
2019/06/23 Python
python 利用turtle库绘制笑脸和哭脸的例子
2019/11/23 Python
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
活动邀请函范文
2014/01/19 职场文书
旷课检讨书500字
2014/10/14 职场文书
2014年应急管理工作总结
2014/11/26 职场文书
城南旧事电影观后感
2015/06/16 职场文书
工作会议简报
2015/07/20 职场文书
详解JAVA中的OPTIONAL
2021/06/14 Java/Android
Golang使用Panic与Recover进行错误捕获
2022/03/22 Golang