浅谈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 相关文章推荐
jquery Firefox3.5中操作select的问题
Jul 10 Javascript
基于jQuery实现模拟页面加载进度条
Apr 01 Javascript
jquery实现动态画圆
Dec 04 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
Dec 16 Javascript
js输出数据精确到小数点后n位代码
Jul 02 Javascript
js事件源window.event.srcElement兼容性写法(详解)
Nov 25 Javascript
两种简单的跨域方法(jsonp、php)
Jan 02 Javascript
jQuery实用密码强度检测
Mar 02 Javascript
Webpack 4.x搭建react开发环境的方法步骤
Aug 15 Javascript
JavaScript解析JSON数据示例
Jul 16 Javascript
Node.js API详解之 string_decoder用法实例分析
Apr 29 Javascript
vue实现给div绑定keyup的enter事件
Jul 31 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
如何正确理解PHP的错误信息
2006/10/09 PHP
php给图片添加文字水印方法汇总
2015/08/27 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
2018/01/29 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
2019/05/13 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
Js动态创建div
2008/09/25 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
jquery实现动态画圆
2014/12/04 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
JS弹出可拖拽可关闭的div层完整实例
2015/02/13 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
2017/01/04 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
JS jQuery使用正则表达式去空字符的简单实现代码
2017/05/20 jQuery
详解vue跨组件通信的几种方法
2017/06/15 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
vue + element-ui的分页问题实现
2018/12/17 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
python类参数self使用示例
2014/02/17 Python
Python修改MP3文件的方法
2015/06/15 Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
2018/04/25 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
python如何查看微信消息撤回
2018/11/27 Python
python 的 openpyxl模块 读取 Excel文件的方法
2019/09/09 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
python 检测图片是否有马赛克
2020/12/01 Python
纯CSS3实现的阴影效果
2014/12/24 HTML / CSS
初探CSS3中的calc()功能
2015/07/14 HTML / CSS
幼师自我鉴定
2014/02/01 职场文书
护理不良事件检讨书
2014/02/06 职场文书
安全在我心中演讲稿
2014/09/01 职场文书
幼儿园园长六一致辞
2015/07/31 职场文书
Go语言安装并操作redis的go-redis库
2022/04/14 Golang
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript