浅谈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 DOM学习第一章 W3C DOM简介
Feb 19 Javascript
JavaScript 格式字符串的应用
Mar 29 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
Feb 07 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
Apr 03 Javascript
javascript实现点击后变换按钮显示文字的方法
May 13 Javascript
Javascript实现字数统计
Jul 03 Javascript
win7下安装配置node.js+express开发环境
Dec 06 Javascript
简述vue路由打开一个新的窗口的方法
Nov 29 Javascript
vue-router路由模式详解(小结)
Aug 26 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
Dec 21 Javascript
Vuex的API文档说明详解
Feb 05 Javascript
输入框跟随文字内容适配宽实现示例
Aug 14 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
DC的38部超级英雄动画电影
2020/03/03 欧美动漫
php调用mysql存储过程
2007/02/14 PHP
使用 MySQL Date/Time 类型
2008/03/26 PHP
Cannot modify header information错误解决方法
2008/10/08 PHP
初学CAKEPHP 基础教程
2009/11/02 PHP
PHP中几种常见的超时处理全面总结
2012/09/11 PHP
php笔记之:文章中图片处理的使用
2013/04/26 PHP
360通用php防护代码(使用操作详解)
2013/06/18 PHP
PHP获取POST数据的几种方法汇总
2015/03/03 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
动态加载脚本提升javascript性能
2014/02/24 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
React+Redux实现简单的待办事项列表ToDoList
2019/09/29 Javascript
java遇到微信小程序 "支付验证签名失败" 问题解决
2019/12/22 Javascript
按日期打印Python的Tornado框架中的日志的方法
2015/05/02 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
python矩阵转换为一维数组的实例
2018/06/05 Python
pycharm新建一个python工程步骤
2019/07/16 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
python tqdm实现进度条的示例代码
2020/11/10 Python
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
2014/10/20 HTML / CSS
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
校园联欢晚会主持词
2014/03/17 职场文书
个人更名证明
2015/06/23 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
关于五一放假的通知
2015/08/18 职场文书
观看安全警示教育片心得体会
2016/01/15 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android