1、MockJS
2、vite-plugin-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
npm i mockjs -S
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
})
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进行的拦截响应在浏览器的开发工具网络项中是 看不到 的
项目结构:
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
npm i mockjs -S
npm i vite-plugin-mock -D
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
}
}
}
]
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>
提示:文章到此结束,文章仅为个人学习记录,若有不足还请大家指出。