Vue3+TypeScript集成Mock的方法

 更新时间:2025年04月24日 09:35:13   作者:码农张3  
这篇文章主要介绍了Vue3+TypeScript集成Mock的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

mock.js用来做什么

在项目开发中,会通过调用接口来获取数据,然后进行渲染。现在前后端分离开发,有时后端并不能够及时开发完成接口,这个时候我们就可以通过mock.js来模拟产生一些虚拟的数据,可以让前端在后端接口还没有开发出来时独立开发,使项目可以正常进行,节约了宝贵时间,等到后端接口编写完毕后,再替换成真正的接口就方便快捷很多。

安装依赖

pnpm install -D vite-plugin-mock mock.js

注册插件

vite.config.ts

...
import { defineConfig } from 'vite'
import { viteMockServe } from 'vite-plugin-mock'
...
export default defineConfig(() => {
  return {
    plugins: [
      vue(),
      viteMockServe({
        // mockPath: 'mock', // 默认
        enable: true,
      }),
    ],
  }
})

原代码 defineConfig({...}) 现在要改成 defineConfig(() => {return{...}})
参考网址:https://github.com/vbenjs/vite-plugin-mock/blob/main/README.zh_CN.md

创建假接口

/mock/user.ts

// 用户信息数据,createUserList:此函数执行会返回一个数组,数组里面包含两个用户信息
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 } }
    },
  },
]

安装 axios

pnpm i axios

使用测试

/main.ts 临时测试

...
import axios from 'axios'
axios({
  url: '/api/user/login',
  method: 'post',
  data: {
    username: 'admin',
    password: '111111'
  }
})
app.mount('#app')

到此这篇关于Vue3+TypeScript集成Mock的方法的文章就介绍到这了,更多相关Vue TypeScript集成Mock内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue2中如何更改el-dialog出场动画(el-dialog弹窗组件)

    vue2中如何更改el-dialog出场动画(el-dialog弹窗组件)

    el-dialog是一个十分好用的弹窗组件,但是出场动画比较单调,于是决定自定义一个出场动画,本文通过实例代码图文相结合给大家叙述下实现思路,感兴趣的朋友一起看看吧
    2022-06-06
  • vue的简介及@vue/cli 脚手架的使用示例

    vue的简介及@vue/cli 脚手架的使用示例

    vue 是一个 渐进式的javascript框架,脚手架是一个通用概念,帮助搭建项目的工具,本文以vue2为例结合实例代码给大家详细讲解,感兴趣的朋友跟随小编一起看看吧
    2022-12-12
  • vue shallowRef作用及引发问题详解

    vue shallowRef作用及引发问题详解

    这篇文章主要为大家介绍了vue shallowRef作用及引发问题详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • vue和js中实现模糊查询方式

    vue和js中实现模糊查询方式

    这篇文章主要介绍了vue和js中实现模糊查询方式,具有很好的参考价值,希望对大家有所帮助。也希望大家多多支持脚本之家
    2022-08-08
  • vue项目在打包时,如何去掉所有的console.log输出

    vue项目在打包时,如何去掉所有的console.log输出

    这篇文章主要介绍了vue项目在打包时,如何去掉所有的console.log输出,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue模仿实现京东商品大图放大镜效果

    Vue模仿实现京东商品大图放大镜效果

    这篇文章主要为大家介绍了Vue实现京东网站商品放大镜效果示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • vue组件实现首次加载就触发watch

    vue组件实现首次加载就触发watch

    这篇文章主要介绍了vue组件实现首次加载就触发watch方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)

    使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)

    这篇文章主要介绍了使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件 ,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • Vue实现网页转PDF方法流程详解

    Vue实现网页转PDF方法流程详解

    在日常的工作中,有时候会碰到需要将某个网址网页保存成为pdf的情况,这篇文章主要介绍了用Vue实现网页转PDF的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • vue3+vite兼容低版本的白屏问题详解(安卓7/ios11)

    vue3+vite兼容低版本的白屏问题详解(安卓7/ios11)

    这篇文章主要给大家介绍了关于vue3+vite兼容低版本的白屏问题的相关资料,还给大家介绍了vue打包项目以后白屏和图片加载不出来问题的解决方法,需要的朋友可以参考下
    2022-12-12

最新评论