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中的float运算精度实例分析
Aug 21 Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
Mar 06 Javascript
基于jquery的图片轮播 tab切换组件
Jul 19 Javascript
jQuery中:checkbox选择器用法实例
Jan 03 Javascript
js判断浏览器版本以及浏览器内核的方法
Jan 20 Javascript
JS实现转动随机数抽奖特效代码
Apr 16 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
Dec 17 Javascript
Javascript中的迭代、归并方法详解
Jun 14 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
Mar 02 Javascript
基于JavaScript实现瀑布流效果
Mar 29 Javascript
JavaScript之DOM_动力节点Java学院整理
Jul 03 Javascript
vue+element实现动态加载表单
Dec 13 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数据类型之布尔型的介绍
2013/04/28 PHP
Codeigniter生成Excel文档的简单方法
2014/06/12 PHP
ThinkPHP中自定义错误页面和提示页面实例
2014/11/22 PHP
php检查页面是否被百度收录
2015/10/28 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
PHP二维数组矩形转置实例
2016/07/20 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
lib.utf.js
2007/08/21 Javascript
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
JavaScript中的Array对象使用说明
2011/01/17 Javascript
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
tangram框架响应式加载图片方法
2013/11/21 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
浅谈pc端rem字体设置的问题
2017/08/03 Javascript
浅析Vue自定义组件的v-model
2017/11/26 Javascript
在Python中操作列表之List.append()方法的使用
2015/05/20 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
Python重新加载模块的实现方法
2018/10/16 Python
python 表格打印代码实例解析
2019/10/12 Python
python 根据列表批量下载网易云音乐的免费音乐
2020/12/03 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
2021/01/23 Python
一款纯css3实现的圆形旋转分享按钮旋转角度可自己调整
2014/09/02 HTML / CSS
会计大学生职业生涯规划书范文
2014/01/13 职场文书
档案室主任岗位职责
2014/02/12 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
计算机软件专业求职信
2014/06/10 职场文书
信访维稳工作汇报
2014/10/27 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
何玥事迹观后感
2015/06/16 职场文书
Go遍历struct,map,slice的实现
2021/06/13 Golang
Java实现二分搜索树的示例代码
2022/03/17 Java/Android