一、下载安装mockjs 和vite-plugin-mock插件

npm i -D  vite-plugin-mock mockjs 


二、在 vite.config.ts 文件中添加 mock 配置项( 配置项添加在 plugins 中 )

import { viteMockServe } from 'vite-plugin-mock'  // 引入 mock 插件提供的方法


export default defineConfig(( { command } )=>{
  return {
    plugins: [
      vue(),
      AutoImport({
        ...略,
      }),
      Components({
        ...略,
      }),
      createSvgIconsPlugin({
        ...略,
  
      }),

      // mock 配置项
      viteMockServe({
        mockPath:'mock',
        localEnabled:command === 'serve',
      }),
  
       ],
    },
  }
})

注意:

如果 localEnabled:command === 'serve', 报错 :对象字面量只能指定已知属性,并且“localEnabled”不在类型“ViteMockOptions”中

可能是 vite-plugin-mock 插件的版本问题,可以卸载后重新安装新版本。

npm uninstall vite-plugin-mock   // 卸载

npm install mockjs vite-plugin-mock@2.9.6 -D     // 安装新版本


三、在项目根目录下创建 mock 文件夹,mock 文件夹下创建 user.ts 文件( 文件名可自定义 )

function createUserList(){

  return [

    {
      userId:1,
      avatar:'../src/assets/image/man.png',   // 头像
      username:'admin',   // 用户名
      password:'111111',   // 用户密码
      desc:'平台管理员',   //角色
      roles:['平台管理员'],
      buttons:['cuser.detail'],   // 按钮权限
      routes:['home'],   // 路由权限
      token:'Admin Token',
    },
    {
      userId:2,
      avatar:'../src/assets/image/man.png',   // 头像
      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 } }

    },
  },

]


四、配置完成后可在页面进行测试。

<template>

  <h1>哈哈哈</h1>


</template>

<script setup lang="ts">


// 测试 mock
import axios from 'axios'   // 引入axios
axios({
  url:'/api/user/login',
  method:"post",
  data:{
    username:'admin', 
    password:'111111', 
  }
})


</script>

<style scoped lang="scss">

</style>

网页上即可看见发送的请求

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐