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 相关文章推荐
刷新页面实现方式总结(HTML,ASP,JS)
Nov 13 Javascript
jquery ajax,ashx,json的用法总结
Feb 12 Javascript
基于insertBefore制作简单的循环插空效果
Sep 21 Javascript
深入理解javascript函数参数与闭包
Dec 12 Javascript
解析JavaScript模仿块级作用域
Dec 29 Javascript
微信浏览器禁止页面下拉查看网址实例详解
Jun 28 Javascript
Async Validator 异步验证使用说明
Jul 03 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
Jan 07 Javascript
vue配置接口域名方法总结
May 12 Javascript
如何实现小程序tab栏下划线动画效果
May 18 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
Jul 15 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
Nov 07 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如何调用webservice应用介绍
2012/11/24 PHP
laravel实现上传图片的两种方式小结
2019/10/12 PHP
ExtJS GridPanel 根据条件改变字体颜色
2010/03/08 Javascript
jqPlot 基于jquery的画图插件
2011/04/26 Javascript
jQuery语法总结和注意事项小结
2012/11/11 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
JavaScript将XML转成JSON的方法
2015/03/12 Javascript
VUEJS实战之构建基础并渲染出列表(1)
2016/06/13 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
js实现图片切换(动画版)
2016/12/25 Javascript
JavaScript编写九九乘法表(两种任选)
2017/02/04 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
javascript 中的try catch应用总结
2017/04/01 Javascript
BootStrap表单时间选择器详解
2017/05/09 Javascript
Vue实现选择城市功能
2017/05/27 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
vue实现动态按钮功能
2019/05/13 Javascript
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
Python 字符串操作实现代码(截取/替换/查找/分割)
2013/06/08 Python
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
介绍Python的@property装饰器的用法
2015/04/28 Python
Python画图学习入门教程
2016/07/01 Python
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
python用opencv 图像傅里叶变换
2021/01/04 Python
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
2013/11/05 HTML / CSS
美国NBA官方商店:NBA Store
2019/04/12 全球购物
C#的几个面试问题
2016/05/22 面试题
医学院毕业生自荐信
2013/11/08 职场文书
就业协议书范本
2014/10/08 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
《葡萄沟》教学反思
2016/02/23 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
用Python实现屏幕截图详解
2022/01/22 Python