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 相关文章推荐
setAttribute 与 class冲突解决
Feb 17 Javascript
jquery的flexigrid无法显示数据提示获取到数据
Jul 19 Javascript
浅谈JavaScript Math和Number对象
Jan 26 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
Mar 01 Javascript
JS创建事件的三种方法(实例代码)
May 12 Javascript
无缝滚动的简单实现代码(推荐)
Jun 07 Javascript
前端js弹出框组件使用方法
Aug 24 Javascript
vue-cli 打包使用history模式的后端配置实例
Sep 20 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
Nov 13 Javascript
不刷新网页就能链接新的js文件方法总结
Mar 01 Javascript
原生js无缝轮播插件使用详解
Mar 09 Javascript
解决Element中el-date-picker组件不回填的情况
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开发框架总结收藏
2008/04/24 PHP
PHP中全局变量global和$GLOBALS[]的区别分析
2012/08/06 PHP
ThinkPHP模板判断输出Defined标签用法详解
2014/06/30 PHP
php文件操作相关类实例
2015/06/18 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
JavaScript 不只是脚本
2007/05/30 Javascript
JS 获取span标签中的值的代码 支持ie与firefox
2009/08/24 Javascript
Javascript表达式中连续的 &amp;&amp; 和 || 之赋值区别
2010/10/17 Javascript
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
js切换光标示例代码
2013/10/10 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
jQuery预加载图片常用方法
2015/06/15 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
微信小程序自定义导航教程(兼容各种手机)
2018/12/12 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
Python Web开发模板引擎优缺点总结
2014/05/06 Python
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
python实现Windows电脑定时关机
2018/06/20 Python
Python文件读写保存操作的示例代码
2018/09/14 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
python计算无向图节点度的实例代码
2019/11/22 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
2020/01/20 Python
Python双链表原理与实现方法详解
2020/02/22 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
css3类选择器之结合元素选择器和多类选择器用法
2017/03/09 HTML / CSS
西班牙在线药店:DosFarma
2020/03/28 全球购物
新西兰最大的连锁超市:Countdown
2020/06/04 全球购物
什么是SQL Server的确定性函数和不确定性函数
2016/08/04 面试题
会计系毕业个人自荐信格式
2013/09/23 职场文书
领导检查欢迎词
2014/01/14 职场文书
冬季作息时间调整通知
2015/04/24 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书