当前位置: 首页 > news >正文

vue3实战-----使用mock模拟接口数据

vue3实战-----使用mock模拟接口数据

  • 1.安装和配置
  • 2.创建mock数据
  • 3.使用axios测试

1.安装和配置

安装依赖:https://www.npmjs.com/package/vite-plugin-mock

pnpm install -D vite-plugin-mock mockjs

在 vite.config.js 配置文件启用插件:

import { viteMockServe } from 'vite-plugin-mock'
import vue from '@vitejs/plugin-vue'
//这里用到了箭头函数,需要把之前的格式改一下,之前里面传的是对象,现在传的是箭头函数
export default (({ command })=> {
  return {
    plugins: [
      vue(),
      viteMockServe({
        //表示开发时候用mock数据
        localEnabled: command === 'serve',
      }),
    ],
  }
}

上面的localEnabled可能会报错-----viteMockServe({ localEnabled: command === ‘serve’, }) 类型“{ localEnabled: boolean; }”的参数不能赋给类型“ViteMockOptions”的参数。对象字面量只能指定已知属性,并且“localEnabled”不在类型“ViteMockOptions”中。
解决方法如下:
卸载vite-plugin-mock:

npm uninstall vite-plugin-mock

重新安装 2.9.6版本

npm install mockjs vite-plugin-mock@2.9.6 -D

就可以完美解决。

2.创建mock数据

在根目录创建mock文件夹:
在这里插入图片描述
在mock文件夹内部创建一个user.ts文件:

//用户信息数据
function createUserList() {
    return [
        {
            userId: 1,
            avatar:
                'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
            username: 'admin',
            password: '111111',
            desc: '平台管理员',
            roles: ['平台管理员'],
            buttons: ['cuser.detail'],
            routes: ['home'],
            token: 'Admin Token',
        },
        {
            userId: 2,
            avatar:
                'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
            username: 'system',
            password: '111111',
            desc: '系统管理员',
            roles: ['系统管理员'],
            buttons: ['cuser.detail', 'cuser.user'],
            routes: ['home'],
            token: 'System Token',
        },
    ]
}

export default [
    // 用户登录接口
    {
        url: '/api/user/login',//请求地址
        method: 'post',//请求方式
        response: ({ body }) => {
            //获取请求体携带过来的用户名与密码
            const { username, password } = body;
            //调用获取用户信息函数,用于判断是否有此用户
            const checkUser = createUserList().find(
                (item) => item.username === username && item.password === password,
            )
            //没有用户返回失败信息
            if (!checkUser) {
                return { code: 201, data: { message: '账号或者密码不正确' } }
            }
            //如果有返回成功信息
            const { token } = checkUser
            return { code: 200, data: { token } }
        },
    },
    // 获取用户信息
    {
        url: '/api/user/info',
        method: 'get',
        response: (request) => {
            //获取请求头携带token
            const token = request.headers.token;
            //查看用户信息是否包含有次token用户
            const checkUser = createUserList().find((item) => item.token === token)
            //没有返回失败的信息
            if (!checkUser) {
                return { code: 201, data: { message: '获取用户信息失败' } }
            }
            //如果有返回成功信息
            return { code: 200, data: {checkUser} }
        },
    },
]

3.使用axios测试

安装axios:

npm install axios

在main.ts入口文件中写一些测试代码:

import axios from "axios";
axios({
  url: "/api/user/login",
  method: "post",
  data: {
    username: "admin",
    password: "111111",
  },
}).then((res) => {
  console.log(res.data);
});

去浏览器查看控制台:
在这里插入图片描述
说明mock数据生效。

相关文章:

  • MQTT(Message Queuing Telemetry Transport)协议(三)
  • idea整合deepseek实现AI辅助编程
  • 多项式插值(数值计算方法)Matlab实现
  • Unity Behavior Designer - Behavior Trees for Everyone(行为树)为什么称作AI 的“基石”之一
  • 在 python 中使用 toml
  • 前端职业规划
  • 嵌入式八股文面试题(二)C语言算法
  • python实现自动登录12306抢票 -- selenium
  • RocketMQ与kafka如何解决消息丢失问题?
  • 玩转大语言模型——使用Kiln AI可视化环境进行大语言模型微调数据合成
  • Unity下ML-Agents第一个示例
  • postgresql认证怎么考
  • 机器学习之数学基础:线性代数、微积分、概率论 | PyTorch 深度学习实战
  • flutter启动后不显示文字,中文字体不显示
  • 1313:【例3.5】位数问题
  • LabVIEW无人机飞行状态监测系统
  • 【设计模式】【行为型模式】中介者模式(Mediator)
  • 基于单片机的智能奶茶机(论文+源码+图纸)
  • MySQL-数据库查询进阶
  • GPT-SWARM和AgentVerse的拓扑结构和交互机制
  • 中国工程院院士、国医大师石学敏逝世
  • 中铁房地产24.7亿元竞得上海松江新城宅地,溢价率20.42%
  • 青年与人工智能共未来,上海创新创业青年50人论坛徐汇分论坛举办
  • 溢价26.3%!保利置业42.4亿元竞得上海杨浦宅地,楼板价80199元/平方米
  • 读图|展现城市品格,上海城市影像走进南美
  • 北上广深均宣布下调个人住房公积金贷款利率