在vue中使用mock

首先安装mockjs

npm install mockjs

新建mock文件夹,创建index.js文件,这里就是我们注册所有mock服务的地方
index.js

// 首先引入Mock
import Mock from 'mockjs';

// 设置拦截ajax请求的相应时间
Mock.setup({
  timeout: '200-600'
});

let configArray = [];

// 使用webpack的require.context()遍历所有mock文件
const files = require.context('.', true, /\.js$/);
files.keys().forEach((key) => {
  if (key === './index.js') return;
  configArray = configArray.concat(files(key).default);
});

// 注册所有的mock服务
configArray.forEach((item) => {
  for (let [path, target] of Object.entries(item)) {
    let protocol = path.split('|');
    Mock.mock(new RegExp('^' + protocol[1]), protocol[0], target);
  }
});

服务注册好之后,在main.js中引入

import Mock from 'mockjs';

在mock文件夹下随便创建一个文件demoList.js 规定接口数据,然后导出。方便后面处理接口名称都加前缀mock

let demoList = {
  code: 0,
  message: 'success',
  total: 10,
    'data|10': [{
      'id|+1': 1,               //生成id自动加 1
      address:'@province',      //生成地址
      name: '@cname',           //生成名字
      date:'@date("yyyy-MM-dd")',     //随机生成日期
      'any|3': "测试",                //指定字符串*3
      'status|1-2':1,                 //1~2的随机整数
      'age|20-30': 23,              
      'job|1': ['前端工程师', '后端工程师', 'UI工程师', '需求工程师']
    }]
};
export default {
    'get|/mock/demo': demoList      
}

更多mock语法参考官方文档 http://mockjs.com/examples.html

mock模拟数据和后台接口同时使用, 在axios中引入刚刚注册的mock服务。在拦截器中增加mock判断,把baseURL置空。因为vue.config加了代理,碰到api开头的会转到后台的接口。置空后请求就会转发到mock服务

require("../mock/index.js")
service.interceptors.request.use(config => {
	if(config.url.indexOf("mock/")>=0){
		config.baseURL="";              //baseURL置空
	}
	if (store.getters.token) {
		// 设置公共请求头
		config.headers.Authorization = 'Bearer ' + store.getters.token;
	}
	return config
}, error => {
	Promise.reject(error)
})

然后就可以正常调用了 接口地址为 /mock/demo

Vue使用Mock可以模拟后端接口数据,方便前端开发和调试。下面是一些使用Mock的步骤: 步骤 1: 安装Mock.js 你可以使用npm或者yarn安装Mock.js依赖: ``` npm install mockjs --save-dev ``` 或者 ``` yarn add mockjs --dev ``` 步骤 2: 创建Mock数据文件 在src目录下创建一个mock文件夹,并在该文件夹下创建一个mock.js文件,用于定义Mock数据。例如,可以在mock.js文件中定义一个返回用户信息的接口: ```javascript import Mock from 'mockjs' // 模拟用户信息接口 Mock.mock('/api/user', 'get', { code: 200, message: '请求成功', data: { name: 'John', age: 25, gender: 'male' } }) ``` 步骤 3: 引入Mock数据 在Vue的入口文件(通常是main.js)中引入Mock数据,以拦截对应的接口请求: ```javascript import './mock/mock' ``` 步骤 4: 使用Mock数据 在Vue组件中,通过发送请求获取Mock数据。例如,可以通过axios发送一个GET请求来获取用户信息: ```javascript import axios from 'axios' export default { data() { return { userInfo: {} } }, mounted() { this.getUserInfo() }, methods: { getUserInfo() { axios.get('/api/user') .then(res => { this.userInfo = res.data.data }) .catch(error => { console.error(error) }) } } } ``` 这样就可以在Vue使用Mock模拟后端接口数据了。当发送请求到`/api/user`时,将返回模拟的用户信息。 注意:在开发环境中使用Mock.js,生产环境中需要移除相关代码或者使用真实的后端接口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值