MOCK数据的简单使用
1.什么是mock?
在前后端分离的开发和测试过程中,由于环境不稳定或者是协同开发的同事还没完成所需的接口,有些数据不容易构造或者不容易获取,需要创建一个虚拟的对象或者虚拟数据,用来辅助开发或者测试工作,提高开发或者测试的效率
2.本地mock数据
1.首先在项目下载mockjs与axios
cnpm install mockjs -S
cnpm install axios
2.在src文件夹新建api文件夹 ,并在api文件中新建MockData文件夹以及mock.js
3.mockData文件中定义home.js数据并导出
export default {
getHomeData: () => {
return {
code: 200,
data: {
tableData: [
{
name: 'oppo',
todayBuy: 500,
monthBuy: 3500,
totalBuy: 22000,
},
{
name: '小米',
todayBuy: 500,
monthBuy: 3500,
totalBuy: 22000,
},
{
name: '三星',
todayBuy: 500,
monthBuy: 3500,
totalBuy: 22000,
},
{
name: '魅族',
todayBuy: 500,
monthBuy: 3500,
totalBuy: 22000,
},
{
name: 'vivo',
todayBuy: 500,
monthBuy: 3500,
totalBuy: 22000,
},
{
name: '苹果',
todayBuy: 500,
monthBuy: 3500,
totalBuy: 22000,
},
],
},
};
},
};
4.在mock.js中导入mock并且拦截写好的数据
//导入mock数据中的
import Mock from 'mockjs';
import homeApi from './mockData/home'; // home.js 数据
//拦截请求
Mock.mock('/home/getData', homeApi.getHomeData);
5.在main.js中挂载mock.js
import { createApp } from 'vue';
import './style.css';
// import ElementPlus from 'element-plus';
// import 'element-plus/dist/index.css';
import App from './App.vue';
import './assets/less/index.less';
import router from './router/index';
//mock
import './api/mock';
6.在home.vue文件中读取mock的数据
<script setup>
//定义数据
import { onMounted } from 'vue';
import axios from 'axios';
const getHomeData = async () => {
await axios.get('/home/getData').then((res) => {
console.log(res);
});
};
//挂载时触发
onMounted(() => {
getHomeData();
});
</script>
7.在浏览器中查看数据
3.简单体验线上mock数据
首先这里介绍一个线上的fastmock的网站,进行线上mock数据 ,进行注册登录进入页面
1.新建一个项目
2.新建项目的一个接口
3.完成接口的描述并且完成接口返回数据(json格式)
4.查看线上返回数据
5.获取请求的数据路径
6.项目中实现请求数据
将复制的url路径放置在axios请求地址中即可
<script setup>
//定义数据
import { onMounted, ref } from 'vue';
import axios from 'axios';
const tableData = ref([]);
const getHomeData = async () => {
await axios
.get(
'https://www.fastmock.site/mock/f521edebd1e4d2bbd642ecd3b9bbe51e/api/api/getTableData'
)
.then((res) => {
//判断当前状态码是否为200保存数据
console.log(res);
if (res.data.code === 200) {
tableData.value = res.data.data.tableData;
}
});
};
//挂载时触发
onMounted(() => {
getHomeData();
});
</script>
7.浏览器打印查看线上mock数据
4.总结本地mock和线上mock
1.本地mock数据需要下载mocjs,并且要在main中引用
2.线上mock数据,可以不要下载mockjs,只需要在线上网站实现接口的描述和返回数据的声明即可(需要有网络环境才行)