浅谈vue项目用到的mock数据接口的两种方式


Posted in Javascript onOctober 09, 2019

1.使用devServer.before进行数据mock

//通过配置devServer.before选项,设置url访问路径及response响应数据,进行mock数据。
const { data } = require('./data.json')
// 引入json数据对象

//vue.config.js配置文件中进行Vue CLI的配置
module.exports = {
 //...
 devServer: {
  before: function(app, server) {
   app.get('/api/data', function(req, res) {
    res.json({ data: data, errno: 0 });
   });
  }
 }
};
import axios from 'axios'
const ERRNO = 0

//通过函数柯力化,接收url作为参数,以返回新的函数接收额外的参数作为axios配置项
function get (url) {
 return function (params) {
  return axios.get(url, {
   params
  }).then((res) => {
   const { errno, data } = res.data
   if (errno === ERRNO) {
    return data
   }
  }).catch((e) => {
  })
 }
}

const getData = get('api/data')

getSeller().then(res => {
 console.log(res)
})

2.使用Mock.js进行数据mock

使用Mock.mock(),根据数据模板生成模拟数据。

import Mock from 'mockjs'
import data from './bookHome'
//导入存放模拟json数据的js文件


Mock.mock(/\/api\/data/, 'get', home)
//表示需要拦截的 URL,可以是 URL 字符串或 URL 正则。
//表示需要拦截的 Ajax 请求类型。例如 GET、POST、PUT、DELETE 等。
//表示数据模板,可以是对象或字符串。例如 { 'data|1-10':[{}] }、'@EMAIL'。
/* axios获取mock数据 */
import axios from 'axios'

export function getData() {
 return axios({
  method: 'get',
  url: `${process.env.VUE_APP_BOOK_URL}/api/data`
  //通过环境指定的默认地址设定接口url,方便后续调用
 })
}


 //接口方法返回promise对象,最终获取mock数据
 getData().then(response => {
  if (response && response.status === 200) {
   const data = response.data
   console.log(data)
  }
 })

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
Feb 27 Javascript
用jquery中插件dialog实现弹框效果实例代码
Nov 15 Javascript
JS获取地址栏参数的几种方法小结
Feb 28 Javascript
基于jquery ui的alert,confirm方案(支持换肤)
Apr 03 Javascript
微信小程序图表插件(wx-charts)实例代码
Jan 17 Javascript
Angularjs 依赖压缩及自定义过滤器写法
Feb 04 Javascript
Node.js与Sails redis组件的使用教程
Feb 14 Javascript
原生JS实现图片网格式渐显、渐隐效果
Jun 05 Javascript
js 获取json数组里面数组的长度实例
Oct 31 Javascript
Promise.all中对于reject的处理方法
Aug 01 Javascript
vue-cli3.0 环境变量与模式配置方法
Nov 08 Javascript
vue开发环境配置跨域的方法步骤
Jan 16 Javascript
Vue3.0数据响应式原理详解
Oct 09 #Javascript
Vue分页插件的前后端配置与使用
Oct 09 #Javascript
vue3修改link标签默认icon无效问题详解
Oct 09 #Javascript
将RGB值转换为灰度值的简单算法
Oct 09 #Javascript
基于Vue 撸一个指令实现拖拽功能
Oct 09 #Javascript
解决Vue动态加载本地图片问题
Oct 09 #Javascript
Vue3 中的数据侦测的实现
Oct 09 #Javascript
You might like
smarty模板引擎中变量及变量修饰器用法实例
2015/01/22 PHP
PHP 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
关于JavaScript中string 的replace
2013/04/12 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
prototype与__proto__区别详细介绍
2017/01/09 Javascript
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
2017/05/13 NodeJs
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
javascript将url解析为json格式的两种方法
2017/08/18 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
2019/02/01 Javascript
JS块级作用域和私有变量实例分析
2019/05/11 Javascript
Vue.js的模板语法详解
2020/02/16 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
Python中字典映射类型的学习教程
2015/08/20 Python
浅谈Python 集合(set)类型的操作——并交差
2016/06/30 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
2018/05/10 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
Python中url标签使用知识点总结
2020/01/16 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
加拿大时装零售商:Influence U
2018/12/22 全球购物
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
小学敬老月活动方案
2014/02/11 职场文书
企业理念标语
2014/06/09 职场文书
企业总经理助理岗位职责
2014/09/12 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
小学校长开学致辞
2015/07/29 职场文书
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL