浅谈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插件 tabBox实现代码
Feb 09 Javascript
鼠标右击事件代码(asp.net后台)
Jan 27 Javascript
fancybox modal的完美解决(右上的X)
Oct 30 Javascript
JQuery入门——用one()方法绑定事件处理函数(仅触发一次)
Feb 05 Javascript
js 3秒后跳转页面的实现代码
Mar 10 Javascript
jQuery实现的网页左侧在线客服效果代码
Oct 23 Javascript
bootstrap网页框架的使用方法
May 10 Javascript
基于vue.js实现的分页
Mar 13 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
Jul 23 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
Sep 21 Javascript
Vue 样式绑定的实现方法
Jan 15 Javascript
Javascript新手入门之字符串拼接与变量的应用
Dec 03 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
实现在同一方法中获取当前方法中新赋值的session值解决方法
2014/06/26 PHP
php数据序列化测试实例详解
2017/08/12 PHP
jQuery 行背景颜色的交替显示(隔行变色)实现代码
2009/12/13 Javascript
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
在javascript中关于节点内容加强
2013/04/11 Javascript
深入理解JavaScript中的传值与传引用
2013/12/09 Javascript
当某个文本框成为焦点时即清除文本框内容
2014/04/28 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
JavaScript构建自己的对象示例
2016/11/29 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
移动前端图片压缩上传的实例
2017/12/06 Javascript
NodeJS实现自定义流的方法
2018/08/01 NodeJs
webpack 处理CSS资源的实现
2019/09/27 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
python实现一次创建多级目录的方法
2015/05/15 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
Python multiprocessing多进程原理与应用示例
2019/02/28 Python
新手学python应该下哪个版本
2020/06/11 Python
Django跨域请求原理及实现代码
2020/11/14 Python
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
乌克兰品牌化妆品和香水在线商店:Bomond
2020/01/14 全球购物
商务英语毕业生自荐信范文
2013/11/08 职场文书
运动会稿件300字
2014/02/14 职场文书
金融系应届毕业生求职信
2014/05/26 职场文书
法定代表人授权委托书范文
2014/09/22 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL
以下牛机,你有几个
2022/04/05 无线电
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js
html中两种获取标签内的值的方法
2022/06/16 jQuery