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中字符串替换函数replace()方法与c# 、vb 替换有一点不同
Jun 25 Javascript
Javascript读取cookie函数代码
Oct 16 Javascript
js日期联动示例
May 02 Javascript
JavaScript 不支持 indexof 该如何解决
Mar 30 Javascript
js HTML5手机刮刮乐代码
Sep 29 Javascript
Vue.js组件使用开发实例教程
Nov 01 Javascript
js的对象与函数详解
Jan 21 Javascript
详解React服务端渲染从入门到精通
Mar 28 Javascript
原生js实现each方法实例代码详解
May 27 Javascript
vue 使用高德地图vue-amap组件过程解析
Sep 07 Javascript
vue实现百度搜索功能
Dec 28 Javascript
详解Vue中的自定义指令
Dec 07 Vue.js
微信小程序如何修改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脚本的10个技巧(7)
2006/10/09 PHP
php设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
PHP计算2点经纬度之间的距离代码
2013/08/12 PHP
一个经典实用的PHP图像处理类分享
2014/11/18 PHP
PHP也能干大事之PHP中的编码解码详解
2015/04/20 PHP
微信支付PHP SDK之微信公众号支付代码详解
2015/12/09 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
原生js实现查找/添加/删除/指定元素的class
2013/04/12 Javascript
JS实现的3D拖拽翻页效果代码
2015/10/31 Javascript
基于Bootstrap重置输入框内容按钮插件
2016/05/12 Javascript
D3.js实现折线图的方法详解
2016/09/21 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
Vue实现移动端页面切换效果【推荐】
2018/11/13 Javascript
Vue函数式组件的应用实例详解
2019/08/30 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
JavaScript实现alert弹框效果
2020/11/19 Javascript
[02:45]DOTA2英雄基础教程 伐木机
2013/12/23 DOTA
[02:19]2018年度DOTA2最佳核心位选手-完美盛典
2018/12/17 DOTA
python实现校园网自动登录的示例讲解
2018/04/22 Python
在PyCharm中实现关闭一个死循环程序的方法
2018/11/29 Python
Python调用.NET库的方法步骤
2019/12/27 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
2020/04/19 Python
python爬虫beautifulsoup解析html方法
2020/12/07 Python
利用CSS3制作简单的3d半透明立方体图片展示
2017/03/25 HTML / CSS
秘书专业自荐信范文
2013/12/26 职场文书
商务经理岗位职责
2014/07/30 职场文书
工程进度款催款函
2015/06/24 职场文书
金榜题名主持词
2015/07/02 职场文书
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android
微信小程序调用python模型
2022/04/21 Python