浅谈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实现无刷新更新数据的详细步骤 asp
Dec 26 Javascript
jquery实现图片翻页效果
Dec 23 Javascript
类似php的js数组的in_array函数自定义方法
Dec 27 Javascript
js实现右下角提示框的方法
Feb 03 Javascript
jQuery实现列表内容的动态载入特效
Aug 08 Javascript
整理Javascript数组学习笔记
Nov 29 Javascript
JS中如何实现点击a标签返回页面顶部的问题
Jan 19 Javascript
用 js 的 selection range 操作选择区域内容和图片
Apr 18 Javascript
JS交互点击WKWebView中的图片实现预览效果
Jan 05 Javascript
vue h5移动端禁止缩放代码
Oct 28 Javascript
JavaScript日期库date-fn.js使用方法解析
Sep 09 Javascript
Ajax 的初步实现(使用vscode+node.js+express框架)
Jun 18 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 radio 单选框获取与保持值的实现代码
2010/05/15 PHP
Codeigniter框架实现获取分页数据和总条数的方法
2014/12/05 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
js禁止小键盘输入数字功能代码
2011/08/01 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
2015/06/05 Javascript
利用HTML5的画布Canvas实现刮刮卡效果
2015/09/06 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
微信小程序 获取设备信息 API实例详解
2016/10/02 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
Nodejs高扩展性的模板引擎 functmpl简介
2017/02/13 NodeJs
VUE实现日历组件功能
2017/03/13 Javascript
详解webpack异步加载业务模块
2017/06/23 Javascript
vue实现全选和反选功能
2017/08/31 Javascript
vue父子组件的嵌套的示例代码
2017/09/08 Javascript
nodejs超出最大的调用栈错误问题
2017/12/27 NodeJs
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
解决angularjs service中依赖注入$scope报错的问题
2018/10/02 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
TypeScript类型声明书写详解
2019/08/28 Javascript
js将URL网址转为16进制加密与解密函数
2020/03/04 Javascript
[01:44]《为梦想出发》—联想杯DOTA2完美世界全国高校联赛
2015/09/30 DOTA
python正则表达式中的括号匹配问题
2014/12/14 Python
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
从头学Python之编写可执行的.py文件
2017/11/28 Python
对pandas的算术运算和数据对齐实例详解
2018/12/22 Python
python命令行工具Click快速掌握
2019/07/04 Python
Python任务调度模块APScheduler使用
2020/04/15 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
2020/04/22 Python
linux比较文件内容的命令是什么
2013/03/04 面试题
技术经理的自我评价范文
2013/12/03 职场文书
幼儿园实习生辞职信
2014/01/20 职场文书
《珍珠泉》教学反思
2014/02/20 职场文书
食品安全承诺书
2014/05/22 职场文书
创业计划书之奶茶店开店方案范本!
2019/08/06 职场文书
Win11电源已接通但未充电怎么办?Win11电源已接通未充电的解决方法
2022/04/05 数码科技