Mock 之搭建本地 MockJs
一、目的
模拟后端接口
二、发请求
1. install
npm install axios
2. 配置
src/utils/request.js
import axios from "axios"; // axios 导入包
const service = axios.create({}); // axios 简单配置
// /api/user/id token
service.interceptors.request.use((config) => {
return config;
}); // axios 请求拦截
service.interceptors.response.use((response) => {
const { data } = response;
// if (data.status == 200) {
// } else if (data.status == 403) {
// }
return data;
}); // axios响应拦截
export default service;
3. 对接口发起请求
src/api/index.js
import request from "@/utils/request";
export const getUsers = () =>
request({
url: "/api/users",
method: "get",
});
- axios 发起请求的代码都维护在 api 下。
三、Mock 模拟响应
1. install
npm install mockjs
2. 配置
src/mock/index.js
import Mock from "mockjs";
// example 相关
Mock.mock("/api/users", "get", function () {
return Mock.mock({
status: "200",
msg: "请求成功",
"data|3": [
{
name: "@cname", // Mock.Random.cname(),
age: "@integer(20,50)",
},
],
});
});
3. 把 mock 导入 main.js
导入才会执行,数据才会成功。
main.js
import "@/mock";
四、请求成功且 mock 成功
1. About.vue
src/views/About.vue
<template>
<!-- axios & mock-验证 -->
<div v-for="(item) in list" :key="item.name">
<span>{{item.name}}</span>
<span>{{item.age}}</span>
</div>
</template>
<script>
import { getUsers } from '@/api'
import { onMounted, reactive, toRefs } from 'vue'
export default {
setup(){
const data = reactive({
list: []
})
onMounted(()=>{
getUsers().then(res=>{
console.log(res)
data.list = res.data
})
})
const dataAsRefs = toRefs(data)
return dataAsRefs
}
}
</script>
五、优化 mock 代码
1. example 模块化
src/mock/example.js
import Mock from "mockjs";
export default {
getUsers: () => {
return Mock.mock({
status: "200",
msg: "请求成功",
"data|3": [
{
name: "@cname", // Mock.Random.cname(),
age: "@integer(20,50)",
},
],
});
},
};
2. mock 入口文件配置
src/mock/index.js
import Mock from "mockjs";
import example from "./example";
// example 相关
Mock.mock("/api/users", "get", example.getUsers);
export default Mock;
六、实际开发注意事项
1. 配置 baseURL 导致错误:
如果 axios.create({...}) 配置了 baseURL ,上一部分代码为:
src/mock/index.js
import GlobalUrl "@/request/巴啦啦小魔仙"
import Mock from "mockjs";
import example from "./example";
Mock.mock(GlobalUrl+"/api/users", "get", example.getUsers);
export default Mock;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!