electron+vue3全家桶+vite项目搭建【九】集成vite-plugin-mock-server 模拟后端请求

news2025/1/12 10:03:14

文章目录

    • 引入
    • 1.引入依赖
    • 2.集成插件
    • 3.测试接口请求

引入

后端接口出的太慢?问题不大,咱们可以借助vite-plugin-mock-server插件自己写接口,返回商量好的格式,后续联调直接切换环境即可

vite-plugin-mock-server官网

mock.js官网

demo项目地址

1.引入依赖

npm i vite-plugin-mock-server -D

2.集成插件

1.我们调整vite.config.ts文件:

import mockServer from 'vite-plugin-mock-server'
// ...
plugins: [
    // mock数据
    mockServer({
        logLevel: 'info',
        urlPrefixes: ['/api/'],
        mockRootDir: path.relative(__dirname, './src/api/mock'),// 模拟数据文件所放置的目录
        mockJsSuffix: '.mock.js', // js模拟数据文件的后缀
        mockTsSuffix: '.mock.ts',// js模拟数据文件的后缀
        noHandlerResponse404: true,
    })
],

2.我们调整api目录下的auth目录中的文件:

  • 在types.ts中新增一个userInfo接口
  • 在index.ts中新增一个getUserInfo的请求方法

目录结构一览

请添加图片描述

// src\api\auth\types.ts
/**
 * 用户信息 
 */
export interface UserInfo {
  /**
   * 用户名
   */
  nickName: string;

  /**
   * 用户id
   */
  userId: string;

  /**
   * 年龄
   */
  age: number;
}
// src\api\auth\index.ts
import { LoginData, LoginResult, UserInfo } from './types'

/**
 * 获取用户信息
 *
 * @param data {UserInfo}
 * @returns
 */
export function getUserInfoApi(accessToken: string): AxiosPromise<UserInfo> {
  return request({
    url: '/auth/userInfo',
    method: 'get',
    params: accessToken
  });
}

3…我们在src/api/目录下创建一个mock目录,并新建一个auth.mock.ts文件:

  • src\api\mock\auth.mock.ts
import { MockHandler } from 'vite-plugin-mock-server';
import { LoginResult, UserInfo } from '../auth/types';
import Mock from 'mockjs';

// 通用请求返回结果
const resData = {
  code: '0', // 状态码
  data: {} // 响应数据
};
const mocks: MockHandler[] = [
  {
    pattern: '/api/auth/login',
    handle: (req, res) => {
      const result: LoginResult = {
        accessToken: 'xaxacaca'
      };
      resData.data = result;
      res.setHeader('Content-Type', 'application/json');
      res.end(JSON.stringify(resData));
    }
  },
  {
    pattern: '/api/auth/userInfo',
    handle: (req, res) => {
      res.setHeader('Content-Type', 'application/json');
      // 使用mock.js模拟响应结果
      resData.data = Mock.mock({
        userId: '@id', // 随机id
        nickName: '@cname', // 随机中文名称
        'age|18-35': 18, // 随机年龄 18-35
      });
      res.end(JSON.stringify(resData));
    }
  },
];

export default mocks;

4.我们调整utils下的request文件

  • 我们调整baseURL和vite.config.ts文件一致
// src\utils\request.ts
const service = axios.create({
baseURL: '/api',
});

3.测试接口请求

1.我们在demo目录下新建一个MockApiDemo.vue:

  • src\components\demo\MockApiDemo.vue
<template>
  <div>
    <GoBack></GoBack>
    <h1>测试本地模拟接口</h1>
    <el-button type="info" @click="handleLogin">登录请求</el-button>
    <el-button type="success" @click="handleGetUserInfo">获取用户信息</el-button>
  </div>
</template>

<script setup lang="ts">
import { loginApi, getUserInfoApi } from '../../api/auth'
// 登录
function handleLogin() {
  loginApi({ username: 'xxx', password: 'xxx' }).then(res => {
    console.log(`登录请求响应:=>${res.data.accessToken}`);
  })
}

// 登录
function handleGetUserInfo() {
  getUserInfoApi("xxaxxx").then(res => {
    console.log(`用户信息响应:=> userId:${res.data.userId}, nickName: ${res.data.nickName},age:${res.data.nickName}}`);
  })
}

</script>

<style scoped></style>

2.我们在router中补充对应路由,并且在demo中配置

3.实现效果:
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/410553.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp人脸识别解决方案

APP端&#xff1a; 因为APP端无法使用uni的camera组件&#xff0c;最开始考虑使用内嵌webview的方式&#xff0c;通过原生dom调用video渲染画面然后通过canvas截图。但是此方案兼容性在ios几乎为0&#xff0c;如果app只考虑安卓端的话可以采用此方案。后面又想用live-pusher组件…

【Linux】vi编辑器——插入模式

目录 插入模式 光标移动命令 a A i I o O命令 a----------------在光标后附加文本 A----------------在文本行末附加文本 i------------------在光标前插入文本 I-------------------在文本开始插入文本 o----------------在光标下插入新行 O---------------在…

陶泓达:4.11黄金原油白银最新走势分析及操作策略!

黄金行情走势分析&#xff1a;   周一(4月10日)&#xff0c;国际金价一度跌约1%&#xff0c;重回2000美元干口下方。此前公布的美国3月非农就业数据显示劳动力市场吃紧&#xff0c;并提高了美联储5月再次加息的预期。金属公司MKS PAMP在一份报告中表示&#xff1a;“金价自20…

Doris(5):数据导入(Load)之Broker load

为适配不同的数据导入需求&#xff0c;Doris系统提供了五种不同的数据导入方式&#xff0c;每种数据导入方式支持不同的数据源&#xff0c;存在不同的方式&#xff08;异步&#xff0c;同步&#xff09; Broker load 通过Broker进程访问并读取外部数据源&#xff08;HDFS&#…

elasticsearch之DSL查询文档

目录 DSL查询分类 全文检索查询 match查询&#xff1a; multi_match&#xff1a; 精准查询 地理坐标查询 矩形范围查询 中心点范围 组合查询 elasticsearch中的相关性打分算法是什么&#xff1f; 案例——给“如家”这个品牌的酒店排名靠前一些 function score query…

ChatGPT写新闻-ChatGPT写文章

ChatGPT写新闻 ChatGPT可以用于生成新闻稿件&#xff0c;但需要注意的是&#xff0c;由ChatGPT生成的新闻稿件可能存在语义、逻辑、事实准确性等方面的问题&#xff0c;因此需要进行人工审核和编辑&#xff0c;确保其准确性。 下面是一个示例过程&#xff0c;大致了解如何使用…

GPT3.5 , InstructGPT和ChatGPT的关系

GPT-3.5 GPT-3.5 系列是一系列模型&#xff0c;从 2021 年第四季度开始就使用文本和代一起进行训练。以下模型属于 GPT-3.5 系列&#xff1a; code-davinci-002 是一个基础模型&#xff0c;非常适合纯代码完成任务text-davinci-002 是一个基于 code-davinci-002 的 InstructG…

PixiJS 文字模糊处理策略

pixijs介绍 PixiJS是一个用于创建交互式2D图形和动画的JavaScript库。它是一个快速、轻量级、易于使用的库&#xff0c;可以在WebGL和Canvas上运行。支持WebGL和Canvas两种渲染方式。WebGL是一种基于OpenGL的3D图形API&#xff0c;可以在GPU上进行高效的图形渲染。Canvas是一种…

基于神经辐射场NeRF的SLAM方法

随着2020年NeRF[1]的横空出世&#xff0c;神经辐射场方法&#xff08;Neural Radiance Fields&#xff09;如雨后春笋般铺天盖地卷来。NeRF最初用来进行图像渲染&#xff0c;即给定相机视角&#xff0c;渲染出该视角下的图像。NeRF是建立在已有相机位姿的情况下&#xff0c;但在…

Android kotlin (仿淘宝app收藏)用RecyclerView(androidx+BRVAH3.0.6)实现单选/多选/全选/反选/批量删除功能

文章目录 一、实现效果二、引入依赖三、实现源码1、实体类2、适配器3、提示框(关闭和确定)4、视图实现一、实现效果 二、引入依赖 在app的build.gradle在添加以下代码 implementation com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0

使用采集工具,轻松获取目标受众的数据,让您的市场营销更加精准

【数据采集神器】使用采集工具&#xff0c;轻松获取目标受众的数据&#xff0c;让您的市场营销更加精准&#xff01; 在当前这个信息化社会中&#xff0c;数据已经成为了企业发展和市场营销的必要手段。企业需要通过数据来了解市场的需求&#xff0c;了解自己产品的竞争优势&a…

你真的懂docker吗?25个试题,学过你就来

前言&#xff1a;遇到不会的&#xff0c;答案偷偷放在评论区了哦~ 1.什么是Docker A 虚拟机 B 半虚拟化技术 C 开源的应用容器引擎 D 后端软件 2. 如何搜索Nginx镜像 A docker search nginx B docker rm nginx C doc…

剑指 Offer II 024. 反转链表(经典题型)

时间是伟大的作者&#xff0c;她能写出未来的结局。 ——卓别林 目录 题目描述&#xff1a; 方法1&#xff1a;迭代法&#xff08;翻指针&#xff09; 方法2&#xff1a;头插法 方法3&#xff1a;递归法 题目描述&#xff1a; 给定单链…

【工作感悟】老程序员总结的四条工作经验教训

文章目录前言1. 不要做小需求2. 要做大需求3. 定期同步工作进度4. 项目结束&#xff0c;主动复盘总结前言 想来从事互联网工作已经很多年了&#xff0c;已经从当初的懵懂少年逐渐退化成老油条。刚毕业的时候&#xff0c;真是个愣头青&#xff0c;什么都不懂&#xff0c;也什么…

SegGPT: Segmenting Everything In Context

目录摘要本文方法上下文着色Context EnsembleIn-Context Tuning消融实验摘要 最近基于大规模数据的模型越来越火了&#xff0c;chat GPT以及seg everything&#xff0c;感觉后面很多像目标检测&#xff0c;图像恢复等等都会出现这种泛化能力强&#xff0c;基于大规模数据的模型…

[2019.01.24]JNI经验积累

[1 jobject<--->jclass|jstring](1)jobject向上转型jclass|jstring:jclass jcls static_cast<jclass>(jobject);jstring jstr static_cast<jclass>(jobject);(2)jclass|jstring向下转型jobject:默认情况下是自动转换的[2 jstring<--->const char*](1…

c++string相关内容

1. string基本概念本质:string是C风格的字符串&#xff0c;而string本质上是一个类string和 char *区别:char * 是一个指针string 是一个类&#xff0c;类内部封装了char *&#xff0c;管理这个字符串&#xff0c;是一个char*型的容器 特点:string类内部封装了很多成员方法例如…

当下的网络安全行业前景到底怎么样?还能否入行?

前言网络安全现在是朝阳行业&#xff0c;缺口是很大。不过网络安全行业就是需要技术很多的人达不到企业要求才导致人才缺口大常听到很多人不知道学习网络安全能做什么&#xff0c;发展前景好吗&#xff1f;今天我就在这里给大家介绍一下。网络安全作为目前比较火的朝阳行业&…

又一恐怖技能!卡耐基梅隆大学发布超强智能体,炸翻科研圈

文 | 小戏一名普通博士生的工作日常是什么&#xff1f;上网查查资料&#xff1f;读读文献&#xff1f;根据各种完善工具的 API 或者文档写两行代码&#xff0c;然后再输给实验机器完成高精度的实验&#xff1f;仔细思考一下我们这些所谓“科研工作者”的工作流&#xff0c;却细…

如何使用ChatGPT API 及 问题解决

如何使用ChatGPT API 及 问题解决1, 注册OpenAI账号2&#xff0c;获取OpenAI的API秘钥3&#xff0c;pip安装openai库3.1 pip安装openai库3.2 pip安装错误4&#xff0c;Chatgpt API连接测试4.1 Chatgpt API连接测试4.2 连接测试错误1, 注册OpenAI账号 关于注册账号&#xff0c;…