浅谈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 过滤not()与filter()实例代码
May 10 Javascript
页面右下角弹出提示框示例代码js版
Aug 02 Javascript
JavaScript中的对象序列化介绍
Dec 30 Javascript
JavaScript获取页面中第一个锚定文本的方法
Apr 03 Javascript
七个不允许错过的jQuery小技巧
Dec 21 Javascript
jQuery中ajax获取数据赋值给页面的实例
Dec 31 jQuery
理顺8个版本vue的区别(小结)
Sep 17 Javascript
原生js实现随机点餐效果
Dec 10 Javascript
vue路由分文件拆分管理详解
Aug 13 Javascript
解决removeEventListener 无法清除监听的问题
Oct 30 Javascript
Array.filter中如何正确使用Async
Nov 04 Javascript
node中使用shell脚本的方法步骤
Mar 23 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函数,php爱好者站推荐
2007/03/19 PHP
PHP以及MYSQL日期比较方法
2012/11/29 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
php使用GD2绘制几何图形示例
2017/02/15 PHP
php从数据库中获取数据用ajax传送到前台的方法
2018/08/20 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
laravel5.6实现数值转换
2019/10/23 PHP
JS 的应用开发初探(mootools)
2009/12/19 Javascript
Prototype源码浅析 Number部分
2012/01/16 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/20 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
2016/03/08 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
2016/06/17 Javascript
javascript实现的上下无缝滚动效果
2016/09/19 Javascript
Javascript 实现计算器时间功能详解及实例(二)
2017/01/08 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
jQuery轻量级表单模型验证插件
2018/10/15 jQuery
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
在vue中使用jsonp进行跨域请求接口操作
2020/10/29 Javascript
python发送邮件功能实现代码
2016/07/15 Python
python django使用haystack:全文检索的框架(实例讲解)
2017/09/27 Python
python迭代器常见用法实例分析
2019/11/22 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
Python 解码Base64 得到码流格式文本实例
2020/01/09 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
2020/02/09 Python
Django中Q查询及Q()对象 F查询及F()对象用法
2020/07/09 Python
捷克家居装饰及图书音像购物网站:Velký košík
2018/04/16 全球购物
主治医师岗位职责
2013/12/10 职场文书
校园招聘策划书
2014/01/09 职场文书
计算机系本科生求职信
2014/05/31 职场文书
企业活动策划方案
2014/06/02 职场文书
建筑工地宣传标语
2014/06/18 职场文书
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书
通知函的格式
2015/04/27 职场文书