Vue项目使用mockjs模拟后端接口

文章目录

    • 操作步骤
      • [1. 安装 mockjs 和 vite-plugin-mock](#1. 安装 mockjs 和 vite-plugin-mock)
      • [2. 安装 axios](#2. 安装 axios)
      • [3. 创建mock路径](#3. 创建mock路径)
      • [4. 配置 viteMockConfig](#4. 配置 viteMockConfig)
      • [5. 编写第一个mock接口](#5. 编写第一个mock接口)
      • [6. 创建 createProdMockServer](#6. 创建 createProdMockServer)
      • [7. 配置 axios](#7. 配置 axios)
      • [8. 编写请求接口](#8. 编写请求接口)
      • [9. 在页面中使用](#9. 在页面中使用)

操作步骤

1. 安装 mockjs 和 vite-plugin-mock

vite-plugin-mock 是 vite 提供的mock插件,配合mockjs 一起使用,比较方便。

npm install mockjs vite-plugin-mock=2.9.6

2. 安装 axios

通过axios发送请求,请求到mock的模拟接口

npm install axios

3. 创建mock路径

src 文件夹下创建 mock 文件夹,作为后续编写mock接口的路径

4. 配置 viteMockConfig

在 vite.config.js 中配置 viteMockConfig

mockPath 就是mock文件夹的路径

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

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vueDevTools(),
    viteMockServe({
      mockPath: './src/mock'
    })
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
})

5. 编写第一个mock接口

mock文件夹下新建一个 js 文件,如user.js ,作为专门编写与用户相关的接口数据,内容如下:

js 复制代码
export default[
    {
        url: '/mock/user/test',
        method: 'get',
        response: () => {
            return {
                code: 200,
                msg: 'ok',
                data: 'hello world'
            }
        }
    }
]

该文件创建了一个模拟接口,地址为/mock/user/test

6. 创建 createProdMockServer

mock文件夹下创建一个index.js 文件,内容如下:

js 复制代码
import {createProdMockServer} from 'vite-plugin-mock/es/createProdMockServer'
// 导入上面写的user.js
import userModule from './user'

export function setupProdMockServer(){
    createProdMockServer([
        ...userModule
    ])
}

7. 配置 axios

创建 src/utils/system/request.js 文件用来全局配置axios,内容如下:

js 复制代码
// 在这个文件中配置axios,以及拦截请求
import axios from 'axios'

// const baseURL = import.meta.env.VITE_BASE_URL

const service = axios.create({
    bbaseURL: '/mock',
    timeout: 5000
})

// 拦截器,错误处理配置


export default service

8. 编写请求接口

创建src/api/user.js 文件作为请求用户相关数据的文件,内容如下:

js 复制代码
// 导入配置过的 axios
import request from '@/utils/system/request'

export function loginApi(data){
    return request({
        url: '/user/test',
        method: 'get',
        baseURL: '/mock',
        data
    })
}

该文件创建了一个请求接口loginAPi ,用来请求之前创建的mock接口地址

9. 在页面中使用

首先在需要的页面导入请求的接口:

js 复制代码
import { loginApi } from "../../api/user.js";

然后以Promise的形式使用

js 复制代码
onMounted(() => {
  loginApi({}).then(res => {
    console.log(res)
  })
})

如果控制台打印出结果,则说明配置成功

相关推荐
Watermelo61718 分钟前
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
开发语言·前端·javascript·算法·数据挖掘·数据分析·ecmascript
一个处女座的程序猿O(∩_∩)O2 小时前
小型 Vue 项目,该不该用 Pinia 、Vuex呢?
前端·javascript·vue.js
燃先生._.8 小时前
Day-03 Vue(生命周期、生命周期钩子八个函数、工程化开发和脚手架、组件化开发、根组件、局部注册和全局注册的步骤)
前端·javascript·vue.js
高山我梦口香糖9 小时前
[react]searchParams转普通对象
开发语言·前端·javascript
black^sugar10 小时前
纯前端实现更新检测
开发语言·前端·javascript
2401_8576009512 小时前
SSM 与 Vue 共筑电脑测评系统:精准洞察电脑世界
前端·javascript·vue.js
2401_8576009512 小时前
数字时代的医疗挂号变革:SSM+Vue 系统设计与实现之道
前端·javascript·vue.js
GDAL12 小时前
vue入门教程:组件透传 Attributes
前端·javascript·vue.js
小白学大数据12 小时前
如何使用Selenium处理JavaScript动态加载的内容?
大数据·javascript·爬虫·selenium·测试工具