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 相关文章推荐
判断文件是否正在被使用的JS代码
Dec 21 Javascript
jQuery实现带有洗牌效果的动画分页实例
Aug 31 Javascript
向JavaScript的数组中添加元素的方法小结
Oct 24 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
Jan 28 Javascript
jQuery ajax全局函数处理session过期后的ajax跳转问题
Jun 03 Javascript
react系列从零开始_简单谈谈react
Jul 06 Javascript
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
Aug 16 Javascript
微信小程序promsie.all和promise顺序执行
Oct 27 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
Sep 12 Javascript
React降级配置及Ant Design配置详解
Dec 27 Javascript
ES6基础之字符串和函数的拓展详解
Aug 22 Javascript
vue data恢复初始化数据的实现方法
Oct 31 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 引用是个坏习惯
2010/03/12 PHP
第七章 php自定义函数实现代码
2011/12/30 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
php显示时间常用方法小结
2015/06/05 PHP
在JavaScript中获取请求的URL参数
2010/12/22 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
『jQuery』取指定url格式及分割函数应用
2013/04/22 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
js跨域请求的5中解决方式
2015/07/02 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
基于Bootstrap表单验证功能
2017/11/17 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
2019/05/29 Javascript
JS中自定义事件的使用与触发操作实例分析
2019/11/01 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
vue动画—通过钩子函数实现半场动画操作
2020/08/09 Javascript
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
python实现数通设备端口监控示例
2014/04/02 Python
Python中的id()函数指的什么
2017/10/17 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
python处理csv中的空值方法
2018/06/22 Python
使用python写的opencv实时监测和解析二维码和条形码
2019/08/14 Python
python hash每次调用结果不同的原因
2019/11/21 Python
意大利自行车商店:Cingolani Bike Shop
2019/09/03 全球购物
机修工工作职责
2014/02/21 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript
html5实现点击弹出图片功能
2021/07/16 HTML / CSS