还在等后端接口?vite-plugin-mock 教你前端自造接口跑起来!

在实际开发中,前后端节奏常常对不齐。前端页面都写完了,接口还没影子,开发只能干等?其实完全没必要。

前端完全可以先"自造接口",利用 Mock 技术模拟后端返回的数据,保证页面功能正常开发。本文就结合 Vite 项目,带你用 vite-plugin-mock + axios 快速搭建一个本地 mock 服务。


🚀 技术选型

这个 demo 使用的是:

  • Vite(前端构建工具)
  • React(当然你也可以用 Vue)
  • axios(HTTP 请求库)
  • vite-plugin-mock(Mock 插件)

❓什么是 Mock?为什么要用它?

Mock,简单来说就是"伪造接口返回数据"。

它的作用很直接:

  • 后端还没写完,前端照样能调接口、写页面。
  • 接口文档一出,前端就能根据接口格式先 mock 出来。
  • 不用反复请求真实接口,测试各种异常/边界场景更方便。

总结:前端先跑起来,不等人。


🛠️ 开始动手搭 mock 接口

1. 安装插件

bash 复制代码
pnpm add vite-plugin-mock -D

2. 配置 vite.config.js

js 复制代码
import { viteMockServe } from 'vite-plugin-mock'

export default {
  plugins: [
    viteMockServe({
      mockPath: 'mock', // mock 文件夹位置
      localEnabled: true, // 开发环境启用
    })
  ]
}

3. 写一个 mock 接口

在根目录建个 mock 文件夹,比如 /mock/test.js

js 复制代码
export default [
  {
    url: '/api/todos',
    method: 'get',
    response: () => {
      return {
        code: 0,
        message: 'success',
        data: [
          { id: 1, title: 'todo1', completed: false },
          { id: 2, title: 'todo2', completed: true }
        ]
      }
    }
  },
  {
    url: '/repos',
    method: 'get',
    response: () => {
      return [
        {
          id: 695370163,
          title: 'ai_lesson',
          description: "AI全栈工程师课程",
        },
        {
          id: 152578450,
          title: 'AlloyFinger',
          description: "超轻量手势库,用起来贼顺手",
        }
      ]
    }
  }
]

🔗 用 axios 调用这些接口

配置基础地址(根据项目 dev 服务器)

js 复制代码
// src/api/config.js
import axios from 'axios'

axios.defaults.baseURL = 'http://localhost:5174' // vite dev 端口

export default axios

接口函数封装

js 复制代码
// src/api/index.js
import axios from './config'

export const getTodos = () => axios.get('/api/todos')
export const getRepos = () => axios.get('/repos')

🧩 页面中使用 mock 数据

React 组件中调用接口数据:

jsx 复制代码
import { useEffect, useState } from 'react'
import { getTodos, getRepos } from '@/api'

function App() {
  const [todos, setTodos] = useState([])
  const [repos, setRepos] = useState([])

  useEffect(() => {
    const fetchData = async () => {
      const todosRes = await getTodos()
      setTodos(todosRes.data.data)

      const reposRes = await getRepos()
      setRepos(reposRes.data)
    }

    fetchData()
  }, [])

  return (
    <>
      <h2>✅ Todo 列表</h2>
      {todos.map(todo => (
        <div key={todo.id}>
          <p>{todo.title}</p>
        </div>
      ))}

      <h2>📦 仓库列表</h2>
      {repos.map(repo => (
        <div key={repo.id}>
          <p>{repo.title}</p>
          <p>{repo.description}</p>
        </div>
      ))}
    </>
  )
}

export default App

🧠 最佳实践:前后端联调建议流程

  1. 接口先约定:后端还没写也没关系,接口文档先写好(Postman、YAPI、Swagger 都可以)
  2. 前端先 mock:接口字段照文档造,开发页面
  3. 联调替换:后端接口上线后,把 mock 替换成真实接口
  4. 上线前删除 mock:确保只在开发阶段启用 mock

✅ 小结

  • vite-plugin-mock 用起来非常轻量,特别适合前端快速开发阶段。
  • 不用再等后端接口,mock 数据跑起来照样开发。
  • 联调阶段更清晰,前后端各自独立、互不阻塞。

Mock 并不是只在写 demo 时才用,它就是前端工作流中不可或缺的一环。如果你还在因为接口没出而卡开发进度,不妨试试 vite 的 mock 流程,真香!


如果你看完有收获,欢迎点赞、收藏、转发👇

有问题也欢迎留言,一起交流 mock 实战经验~

相关推荐
海石1 小时前
去到比北方更北的地方—2025年终总结
前端·ai编程·年终总结
一个懒人懒人1 小时前
Promise async/await与fetch的概念
前端·javascript·html
Mintopia1 小时前
Web 安全与反编译源码下的权限设计:构筑前后端一致的防护体系
前端·安全
输出输入1 小时前
前端核心技术
开发语言·前端
Mintopia1 小时前
Web 安全与反编译源码下的权限设计:构建前后端一体的信任防线
前端·安全·编译原理
林深现海2 小时前
Jetson Orin nano/nx刷机后无法打开chrome/firefox浏览器
前端·chrome·firefox
黄诂多2 小时前
APP原生与H5互调Bridge技术原理及基础使用
前端
前端市界2 小时前
用 React 手搓一个 3D 翻页书籍组件,呼吸海浪式翻页,交互体验带感!
前端·架构·github
文艺理科生2 小时前
Nginx 路径映射深度解析:从本地开发到生产交付的底层哲学
前端·后端·架构
千寻girling2 小时前
主管:”人家 Node 框架都用 Nest.js 了 , 你怎么还在用 Express ?“
前端·后端·面试