vue-cli3中使用mock(实际项目中快速搭建)

整体项目结构如下:下载地址

1.安装axios

npm install axios

在main.js中配置
import axios from 'axios';
Vue.prototype.axios = axios;

 

2.安装mockjs

npm install mockjs --save-dev

3.安装mocker-api

npm install mocker-api --save-dev

4.在项目根目录创建mock文件夹,配置请求的数据和模块化处理

getTestData.json文件是返回的json数据:

{
  "status": 0,
  "message": "请求成功",
  "data": {
    "dataArr": [
      {
        "from": "demo-order",
        "to": "demo-user",
        "lineType": "1"
      }
    ]
  },
  "total": 0
}

index.js文件处理url:

const fs = require("fs");
const getJsonData = function(module) {
  const fileJson = fs.readdirSync(`./mock${module ? "/" + module : ""}`);
  const jsonObj = {};
  fileJson.forEach(jsonName => {
    if (/.json/gi.test(jsonName)) {
      jsonObj[jsonName.split(".")[0]] = require(`.${
        module ? "/" + module : ""
      }/${jsonName}`);
    }
  });
  return jsonObj;
};
const baseURL = "/api/v1";
function setRequestURL(requestMethod, requestURL) {
  const temp = `${requestMethod} ${baseURL}${requestURL}`;
  return temp.replace(/\"/g, "");
}
const testData = getJsonData('test');
const test = {
  [setRequestURL("GET", '/test/mock/demo')]: testData.getTestData
}

module.exports = Object.assign(
  test
);

5.在项目根目录创建vue.config.js文件

let mode = process.env.NODE_ENV; //当前启动模式

const IS_PROD = ['production', 'prod'].includes(mode); //判断是否是生产模式
const NEED_MOCK = ['development', 'serve'].includes(mode);
const apiMock = require('mocker-api');
const path = require('path');
const resolve = (dir) => {
  return path.join(__dirname, dir);
}
module.exports = {
  devServer: {
    open: !IS_PROD,
    port:8080,
    before(app){
        if (NEED_MOCK) {
          apiMock(app, resolve('./mock/index.js'))
        }
    }
  }
}

6.请求

 this.axios.get(`/api/v1/test/mock/demo`).then(res => {
        console.log('请求成功:',res);
      }).catch(error=>{
        console.log(error);
      });

7.效果

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值