还在等后端接口?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 实战经验~

相关推荐
mldong4 小时前
你的 Vue3 项目也能有钉钉同款审批流设计器:npm 装包,10 分钟画出第一条审批流
前端·vue.js
2分钟速写快排4 小时前
什么是 RAG?如何用 RAG 实现一个用户记忆?
前端·后端·ai编程
passerby60615 小时前
如何自己造一个时间处理库
前端·javascript·github
走到天涯海角6 小时前
react里面的长列表渲染优化
前端·react.js·前端框架
小羊没烦恼!6 小时前
Hello Web API系列教程——Web API与国际化
java·服务器·前端·javascript·php
北岛贰7 小时前
迷茫焦虑期,我做了一个带支付带官网的 AI 聊天虚拟恋人 App
前端·人工智能·后端
mayaairi8 小时前
Vue2 组件通讯(三):全局事件总线、PubSub、插槽与组件实例属性
前端·javascript·vue.js
kyriewen9 小时前
面试官问我:AI 都能写代码了,前端凭什么还值 25K
前端·javascript·人工智能
风骏时光牛马9 小时前
AI源码分析:拆解模型底层实现逻辑
前端
IT_陈寒10 小时前
React子组件莫名其妙重渲染?你可能漏了这个Hook
前端·人工智能·后端