相信前端同学都会碰见类似的问题,就是页面可能很快写完了,但是接口同学还在缓慢设计表中!
这个时候咳咳,你就可以去摸鱼了或者看小说了
但实际上可不能这样哦,要老老实实做个打工人
步入正题了
在vite中有个mock的插件可以让我们直接使用了
pnpm add vite-plugin-mock -D
or
npm install vite-plugin-mock -D
or
yarn add vite-plugin-mock -D
这里插一句哈,如果你使用的是pnpm的话, 正常来说因为这个插件肯定是依赖mockjs 的但是,他可能不会自动安装
需要你需要在项目目录下创建(记住并不是src下哦)
.npmrc
shamefully-hoist=true
strict-peer-dependencies=false
shell-emulator=true
然后还有一个小建议就是最新版本的插件也就是 3.0.0 有可能报 esbuild 就是大概你用到commonJS中的reuqired方法报错
这个时候建议你更新到 低版本 比如 pnpm add vite-plugin-mock@2.9.6 -D
- 安装好了之后 就可以进行配置使用了
在目录下创建一个 mock目录 然后我们创建一个 list.js
export default [
{
url: "/getHeroList",
method: "post",
response: () => {
return {
success: true,
data: {
list: [
{ name: "赵云", age: 1000},
{ name: "张飞", age: 2000},
{ name: "关羽", age: 3000},
{ name: "马超", age: 4000},
{ name: "黄忠", age: 5000},
]
}
};
}
}
]
- 在vite.config.js文件中配置下
import { viteMockServe } from 'vite-plugin-mock'
export default defineConfig(({ command }) => {
return {
...
plugins: [
viteMockServe({
// 指定您的模拟文件的路径
mockPath: 'mock',
localEnabled: command === "serve",
prodEnabled: false,
logger: false,
}),
],
...
}
})
- 然后就可以在组件中发起请求试试看了
import { getHeroList } from "@/api";
import { onMounted } from "vue"
onMounted(() => {
getHeroList().then(res => {
console.log(res, '===hero')
}).catch(error => {
console.log(error, '=')
})
})
拦截成功 数据也回来了
推荐一个更强大的功能齐全的还是使用 apifox吧 上面更方便,根据后端文档所定的mock
https://apifox.com/ 官网地址
关注我 持续更新前端知识