vue3 使用 mock 模拟服务器接口

文章目录

    • [1. 安装相应的包](#1. 安装相应的包)
    • [2. 创建相关文件](#2. 创建相关文件)
    • [3. 构建请求](#3. 构建请求)
    • 注意

axios-mock-adapter

在前端开发中,需要模拟请求或者数据来做一些简单的调试,这里可以使用mock来模拟服务器接口;

1. 安装相应的包

这里需要安装两个包,一个是axios,一个是axios-mock-adapter

项目安装后,首先在cmd中安装:

shell 复制代码
npm install axios
npm install axios-mock-adapter --save-dev

2. 创建相关文件

在src目录下创建mock文件夹,然后在mock文件夹中放置两个文件,一个server.ts,一个index.ts

很明显我们是在server.ts中构造请求,在index.ts中暴露;

server.ts代码内容如下:

ts 复制代码
import axios from 'axios'
import MockAdapter from 'axios-mock-adapter'

export default {
  bootstrap() {
    var mock = new MockAdapter(axios)
    // 在这里写构造请求
  }
}

index.ts代码内容如下:

ts 复制代码
import mock from './server'
export default mock

main.ts中添加两行:

ts 复制代码
import mock from './mock'
mock.bootstrap()

3. 构建请求

注意replay返回的是一个数组就好了

Get

无参数:

ts 复制代码
mock.onGet("/users").reply(200, {
  users: [{ id: 1, name: "John Smith" }],
});

axios.get("/users").then(function (response) {
  console.log(response.data);
});

有参数:

ts 复制代码
mock.onGet("/users", { params: { searchText: "John" } }).reply(200, {
  users: [{ id: 1, name: "John Smith" }],
});

axios
  .get("/users", { params: { searchText: "John" } })
  .then(function (response) {
    console.log(response.data);
  });

Post

ts 复制代码
mock.onPost('/api/user/info').reply(function (config){
      console.log(config)
      return [200, {status: 'success'}]
    })

axios.post('/api/user/info', {user:123, password:123}).then(res=>console.log(res))

注意

在搭配axios使用mock时,如果需要对axios进行二次封装,那mock就不应该使用axios,而是使用新封装的玩意进行处理;

ts 复制代码
// 假设二次封装后为request
import request from './utils/request'

// mock操作 var mock = new MockAdapter(request)
var mock = new MockAdapter(request)

这样就可以避免request请求后老是报错的问题;

相关推荐
Larcher16 小时前
React Router 不只是页面跳转:从 SPA 路由到权限守卫的完整实践
javascript·后端
Larcher16 小时前
大模型为什么每次回答都不一样?一文搞懂 Temperature、Top K 与 Top P
javascript·后端
·薯条大王19 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
用户9385156350719 小时前
从零在浏览器里跑 DeepSeek-R1:WebGPU + Transformer.js 全链路实战
前端·设计模式·typescript
CodeSheep20 小时前
稚晖君公司人事大变动,来了!
前端·后端·程序员
鱼樱前端20 小时前
用 AI 做内容变收入
前端·人工智能·ai编程
eric-sjq20 小时前
10 分钟实战:用 0.6B 本地模型生成中文网页(WanlyFrontend + 编译器全流程)
javascript·机器学习·自然语言处理·html
浮生望20 小时前
React + TypeScript 组件设计进阶:从类型约束到无状态组件的三次进化
前端
To_OC20 小时前
LC 438 找到所有字母异位词:暴力超时后,我靠滑动窗口一招搞定
javascript·算法·leetcode
90后的晨仔21 小时前
Mac 开发 uni-app 终极方案:让安卓模拟器彻底脱离 Android Studio 独立运行
前端·vue.js