Mock的基本使用
通过 Mock 我们可以便捷的生成大量模拟数据,有助于我们在前后端分离的开发模式中前端做网络请求测试。摆脱后端接口未给出时前端的数据只能自己不断写死数据的窘境;下面中介绍Mock的基本使用和配合 vite插件实现更真实的请求响应。
·
Mock的基本使用
前言
通过 Mock 我们可以便捷的生成大量模拟数据,有助于我们在前后端分离的开发模式中前端做网络请求测试。 摆脱后端接口未给出时前端的数据只能自己不断写死数据的窘境; 下面中介绍Mock的基本使用和配合 vite插件实现更真实的请求响应一、官方文档
二、mock的简单使用:
项目结构:
mockJS博客
├─ .gitignore
├─ index.html
├─ package-lock.json
├─ package.json
├─ public
├─ README.md
├─ src
│ ├─ App.vue
│ ├─ assets
│ ├─ components
│ ├─ main.ts
│ ├─ mockTeat.ts
│ ├─ style.css
│ └─ vite-env.d.ts
├─ tsconfig.json
├─ tsconfig.node.json
└─ vite.config.ts
- 安装 Mock
npm i mockjs -S
- 创建文件用以存储 mock 数据,以下创建文件 “src/mockTeat.ts” 举例:
import mockJS from "mockjs";
let data = mockJS.mock({
success: true,
// 随机生成100条数据,数据中包含id,name(随机中文名),image(随机头像)
// 更多数据占位符定义规范,可查阅官方文档 MockJS
"data|100": [
{
"id|+1": 0,
name: "@cname",
image: mockJS.Random.image(),
}
]
})
// 设置请求接口和请求方法进行拦截响应
mockJS.mock('/api/users', 'post', () => {
return data
})
- 导入 需要做拦截的 响应文件中,以下直接全局导入 main.ts中 举例:
import './mockTeat'
- 发送请求模拟:
<template>
<div>
<button @click="getData()">mock测试</button>
</div>
</template>
<script setup lang="ts">
import axios from "axios";
const getData =()=>{
axios.post("/api/users").then(res=>{
console.log(res);
})
}
</script>
- 效果:
注意:mock进行的拦截响应在浏览器的开发工具网络项中是 看不到 的
二、搭配 vite 插件使用
- 搭配 “vite-plugin-mock” 使用可以更真实的模拟请求,进行的拦截响应在浏览器的开发工具网络项中 看到
项目结构:
mockJS博客
├─ .gitignore
├─ index.html
├─ mock
│ ├─ mock.ts
│ └─ mockData
│ └─ home.ts
├─ package-lock.json
├─ package.json
├─ public
├─ README.md
├─ src
│ ├─ App.vue
│ ├─ assets
│ ├─ components
│ ├─ main.ts
│ ├─ style.css
│ └─ vite-env.d.ts
├─ tsconfig.json
├─ tsconfig.node.json
└─ vite.config.ts
- 安装 Mock 与 vite-plugin-mock
npm i mockjs -S
npm i vite-plugin-mock -D
- 创建文件用以存储 mock 数据,以下创建文件 “mock” 举例:
1、mock/mockData/home.ts
import mockJS from "mockjs";
export const userList = mockJS.mock({
success: true,
"data|100": [
{
"id|+1": 0,
name: "@cname",
image: mockJS.Random.image(),
}
]
})
2、mock/mock.ts
import { userList } from "./mockData/home";
module.exports = [
{
method: "post",
url: '/api/users',
response: ({ body }) => {
return {
userList
}
}
}
]
- 在 “vite.config.ts” 中引入并配置插件:
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { viteMockServe } from 'vite-plugin-mock'
export default defineConfig(({ command, mode }) => ({
plugins: [
vue(),
viteMockServe({
// 设置模拟.ts 文件的存储文件夹
mockPath: 'mock',
// 设置是否启用本地 xxx.ts 文件,不要在生产环境中打开它.设置为 false 将禁用 mock 功能
localEnabled: command === 'serve'
})
]
}))
- 发送请求模拟:
<template>
<div>
<button @click="getData()">mock测试</button>
</div>
</template>
<script setup lang="ts">
import axios from "axios";
const getData =()=>{
axios.post("/api/users").then(res=>{
console.log(res);
})
}
</script>
- 效果:
提示:文章到此结束,文章仅为个人学习记录,若有不足还请大家指出。
更多推荐
已为社区贡献4条内容
所有评论(0)