浅谈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 相关文章推荐
js 赋值包含单引号双引号问题的解决方法
Feb 26 Javascript
jQuery定义背景动态切换效果的方法
Mar 23 Javascript
JavaScript实现显示函数调用堆栈的方法
Apr 21 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
Jun 14 Javascript
AngularJS基础 ng-mouseover 指令简单示例
Aug 02 Javascript
JS实现title标题栏文字不间断滚动显示效果
Sep 07 Javascript
Vue2实时监听表单变化的示例讲解
Aug 30 Javascript
django中使用vue.js的要点总结
Jul 07 Javascript
js实现指定时间倒计时效果
Aug 26 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
Sep 01 Javascript
vue路由 遍历生成复数router-link的例子
Oct 30 Javascript
vue proxy 的优势与使用场景实现
Jun 15 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中使用Oracle数据库(5)
2006/10/09 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
2016/04/01 PHP
javascript addBookmark 加入收藏 多浏览器兼容
2009/08/15 Javascript
jquery UI 1.72 之datepicker
2009/12/29 Javascript
js清空表单数据的两种方式(遍历+reset)
2014/07/18 Javascript
checkbox选中与未选中判断示例
2014/08/04 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
js时间戳和c#时间戳互转方法(推荐)
2017/02/15 Javascript
Vuex简单入门
2017/04/19 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
用node.js写一个jenkins发版脚本
2019/05/21 Javascript
JS如何实现封装列表右滑动删除收藏按钮
2020/07/23 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
手把手带你搭建一个node cli的方法示例
2020/08/07 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
[01:10:58]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
浅谈python字符串方法的简单使用
2016/07/18 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
python实现桌面壁纸切换功能
2019/01/21 Python
django云端留言板实例详解
2019/07/22 Python
pycharm 安装JPype的教程
2019/08/08 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
利用python3 的pygame模块实现塔防游戏
2019/12/30 Python
keras多显卡训练方式
2020/06/10 Python
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
2015/10/24 面试题
学校运动会开幕演讲稿
2014/01/04 职场文书
股权转让协议书
2014/04/12 职场文书
重点工程汇报材料
2014/08/27 职场文书
个人向公司借款协议书
2014/10/09 职场文书
忠诚与背叛观后感
2015/06/04 职场文书
升学宴学生致辞
2015/07/27 职场文书