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>

  

posted @ 2023-03-03 16:13  xiaoxiaoxigua  阅读(66)  评论(0编辑  收藏  举报