vue mock
vue运用mock模拟数据
一、源数据可以是JSON文件也可以根据mock.js的api生成
在项目根目录创建mock文件夹和文件,结果如下图:

1、seller.json 是模拟数据
2、goods.js 是处理模拟数据
import seller from './seller.json'
let userList = {
code: 200,
message: 'success',
data: {
total: 100,
'rows|10': [{
id: '@guid',
name: '@cname',
'age|20-30': 23,
'job|1': ['前端工程师', '后端工程师', 'UI工程师', '需求工程师']
}]
}
};
//这里可以选择是seller.json的数据或者userList(mock生成的数据)
export default {
'get|/getUserList': seller
}
3、index.js mock配置内容如下
// 首先引入Mock
const Mock = require('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引入mock

三、在vue页面引用
<script>
import axios from 'axios'
export default {
data() {
return {
dataList: []
}
},
methods: {
getData() {
axios.get('/getUserList').then((res) => {
console.log('res====' + JSON.stringify(res.data))
})
}
}
}
</script>

浙公网安备 33010602011771号