vue3+ts+vite使用mock数据

安装以下命令

npm i vite-plugin-mock --save-dev
npm i mockjs --save-dev

在根路径下创建mock文件夹

mock\user.ts


const menuList = [
  {
    path: '/system',
    component: 'Layout',
    name: 'system',
    meta: {
      title: '系统管理',
      icon: 'Setting',
      roles: ['sys:manage']
    },
    children: [
      {
        path: '/department',
        component: '/system/department/department',
        name: 'department',
        meta: {
          title: '机构管理',
          icon: 'List',
          roles: ['sys:dept']
        }
      },
      {
        path: '/userList',
        component: '/system/User/UserList',
        name: 'userList',
        meta: {
          title: '用户管理',
          icon: 'UserFilled',
          roles: ['sys:user']
        }
      },
      {
        path: '/roleList',
        component: '/system/Role/RoleList',
        name: 'roleList',
        meta: {
          title: '角色管理',
          icon: 'Wallet',
          roles: ['sys:role']
        }
      },
      {
        path: '/menuList',
        component: '/system/Menu/MenuList',
        name: 'menuList',
        meta: {
          title: '权限管理',
          icon: 'Menu',
          roles: ['sys:menu']
        }
      }
    ]
  },
  {
    path: '/test3parent',
    component: 'Layout',
    name: 'test3parent',
    redirect: '/test3',
    meta: {
      title: '测试1-1-1',
      icon: 'ShoppingBag',
      roles: ['sys:test']
    },
    children: [
      {
        path: '/test3',
        component: '/test/test3',
        name: 'test3',
        meta: {
          title: '测试1-1-1',
          icon: 'ShoppingBag',
          roles: ['sys:test']
        }
      }
    ]
  },
  {
    path: '/goods',
    component: 'Layout',
    name: 'goods',
    meta: {
      title: '商品管理',
      icon: 'Tickets',
      roles: ['sys:goods']
    },
    children: [
      {
        path: '/phone1',
        name: 'phone1',
        meta: {
          title: '手机分类',
          icon: 'UserFilled',
          roles: ['sys:phoneRoot']
        },
        children: [
          {
            path: '/phone',
            component: '/phone/index',
            name: 'phone',
            meta: {
              title: '华为手机',
              icon: 'UserFilled',
              roles: ['sys:phone:index']
            }
          }
        ]
      },
      {
        path: '/goodCategory',
        component: '/goods/goodsCategory/goodsCategoryList',
        name: 'goodCategory',
        meta: {
          title: '分类管理',
          icon: 'ShoppingBag',
          roles: ['sys:goodsCategory']
        }
      },
      {
        path: '/test2',
        name: 'test',
        meta: {
          title: '分类测试',
          icon: 'ShoppingBag',
          roles: ['sys:1']
        },
        children: [
          {
            path: '/cs1',
            component: '/cs1/index',
            name: 'cs1',
            meta: {
              title: '测试1-2',
              icon: 'Menu',
              roles: ['sys:cs1']
            },
            children: [
              {
                path: '/cs2',
                component: '/test/test2',
                name: 'cs2',
                meta: {
                  title: '测试1-2-1',
                  icon: 'Menu',
                  roles: ['sys:cs2']
                }
              }
            ]
          },
          {
            path: '/test',
            component: '/test/test',
            name: 'test',
            meta: {
              title: '测试1-1',
              icon: 'ShoppingBag',
              roles: ['sys:1-1']
            }
          }
        ]
      }
    ]
  },
  {
    path: '/systenConfig',
    component: 'Layout',
    name: 'systenConfig',
    meta: {
      title: '系统工具',
      icon: 'ChatLineSquare',
      roles: ['sys:systenConfig']
    },
    children: [
      {
        path: '/document',
        component: '/system/config/systemDocument',
        name: 'http://42.193.158.170:8089/swagger-ui/index.html',
        meta: {
          title: '接口文档',
          icon: 'DocumentCopy',
          roles: ['sys:document']
        }
      },
      {
        path: '/systemCode',
        component: '/system/config/code',
        name: 'systemCode',
        meta: {
          title: '日志管理',
          icon: 'Operation',
          roles: ['sys:systemCode']
        }
      }
    ]
  }
]


export default [

  {
    url: '/mock/user/menuList',
    method: 'get',
    response: (req) => {
      console.log('对外暴露一个数组:数组含2个接口', req.headers['csg-token'])
      return {
        code: 200,
        data: menuList,
        msg: '成功'
      }
    }
    // const token = req.headers.token
    // const checkUser = createUserList()
    // if (!token) {
    //   return { code: 201, data: { msg: '获取接口信息失败' } }
    // }
    // return { code: 200, data: { checkUser } }
  }
] 

vite.config.ts文件配置

import { viteMockServe } from 'vite-plugin-mock'
const viteConfig = defineConfig(({ mode }) => {
   //添加第三个参数空字符串时 '' ,会在env中包含所有环境变量;反之,只包含.env文件中配置的环境变量
  const env = loadEnv(mode, process.cwd())
  return {
    plugins: [
      vue(),
        viteMockServe({
        mockPath: './mock', // 解析刚刚 user.ts 的位置
        enable: true // 是否开启 Mock 服务
      })
    ],

  
  }
})
export default viteConfig

接口使用(我这里是写的axios封装,你们根据自己当前需求)

export function getMenuList() {
  return request({
    url: '/mock/user/menuList',
    method: 'get'
  })
}

页面调用

import { userStore } from '@/store/user'
  const ustore = userStore()
    ustore.getMenuList()

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode--接雨水(双指针法,动态规划,单调栈)

目录 方法一:双指针法 方法二:动态规划 方法三:单调栈 42. 接雨水 - 力扣(LeetCode) 黑色的是柱子,蓝色的是雨水,我们先来观察一下雨水的分布情况: 雨水落在凹槽之间,在一个凹槽的…

前端Vue3项目如何打包成Docker镜像运行

将前端Vue3项目打包成Docker镜像并运行包括几个主要步骤:项目打包、编写Dockerfile、构建镜像和运行容器。下面是一个基本的流程: 1. 项目打包 首先,确保你的Vue3项目可以正常运行和打包。在项目根目录下执行以下命令来打包你的Vue3项目&am…

《PyTorch深度学习实践》第十三讲RNN进阶

一、 双向循环神经网络(Bidirectional Recurrent Neural Network,BiRNN)是一种常见的循环神经网络结构。与传统的循环神经网络只考虑历史时刻的信息不同,双向循环神经网络不仅考虑历史时刻的信息,还考虑未来时刻的信息…

14:00面试,14:07就出来了,问的问题过于变态了。。。

我从一家小公司转投到另一家公司,期待着新的工作环境和机会。然而,新公司的加班文化让我有些始料未及。虽然薪资相对较高,但长时间的工作和缺乏休息使我身心俱疲。 就在我逐渐适应这种高强度的工作节奏时,公司突然宣布了一则令人…

Leetcode : 数组拆分 I

给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从 1 到 n 的 min(ai, bi) 总和最大。返回该 最大总和 。 思路:2n长度数组,共有n对,原有思路暴力破解法…

centos7安装jdk8、maven3.9

jdk8安装 下载安装包 下载安装包地址 下载的时候需要注册oracle账号,没有的可以使用现成的 账号:2028056560qq.com 密码:Oracle1234 放到指定的目录 解压 tar -xvzf jdk-8u401-linux-i586.tar.gz 配置环境变量 添加JAVA_HOME变量 vim…

Linux之gcc和makefile的使用详细解析

个人主页:点我进入主页 专栏分类:C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 算法 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂 目录 一.gcc/g安装 二.gcc运行代码 三.gcc是如何完成的 3.1预处…

【Leetcode每日一刷】贪心算法|122.买卖股票的最佳时机 II、55. 跳跃游戏

一、122.买卖股票的最佳时机 II 力扣题目链接 🦄解题思路: 首先需要明确的几个点: 当前只能有最大一支股票每一天操作只能3选1:买or卖or休息 此外,对于贪心,总有像下面图示的一种直觉:如果…

11.盛最多水的容器

题目:给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 解题思路:可以…

算法打卡day5|哈希表篇01|Leetcode 242.有效的字母异位词 、19.删除链表的倒数第N个节点、202. 快乐数、1. 两数之和

哈希表基础知识 哈希表 哈希表关键码就是数组的索引下标,然后通过下标直接访问数组中的元素;数组就是哈希表的一种 一般哈希表都是用来快速判断一个元素是否出现集合里。例如要查询一个名字是否在班级里: 要枚举的话时间复杂度是O(n)&…

【开源】JAVA+Vue.js实现天沐瑜伽馆管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 瑜伽课程模块2.3 课程预约模块2.4 系统公告模块2.5 课程评价模块2.6 瑜伽器械模块 三、系统设计3.1 实体类设计3.1.1 瑜伽课程3.1.2 瑜伽课程预约3.1.3 系统公告3.1.4 瑜伽课程评价 3.2 数据库设计3.2.…

【C语言】动态内存管理常用函数

前言 我们在之前学习的数组开辟的空间是固定不变的,有时候我们需要的空间⼤⼩在程序运⾏的时候才能知道~ c语言中的动态内存开辟,让程序员⾃⼰可以根据实际需求申请和释放相应空间,这使得空间的开辟变得灵活了许多。 欢迎关注个人主页&#x…

【C++进阶】哈希表的闭散列和开散列(哈希桶)的代码实现

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

mariadb数据库——安装,创建数据库

MariaDB是一个流行的开源关系型数据库管理系统(RDBMS),它是MySQL的一个分支。 安装 apt -y install mariadb-servervi /etc/mysql/mariadb.conf.d/50-server.cnf character-set-server utf8mb4 collation-server utf8mb4_general_c…

什么时候要用到Reflect API?

参考文档 https://www.zhihu.com/question/460133198 https://cn.vuejs.org/guide/extras/reactivity-in-depth.html https://juejin.cn/post/7103764386220769311 Reflect API 一般搭配 Proxy API 一起使用。什么是 Proxy API 呢? 先回顾下 vue 的数据响应性是如何…

【已解决】卸载软件时显示“无法使用此产品的安装源,请确认安装源存在,并且你可以访问它”报错截图如下

卸载软件时显示“无法使用此产品的安装源,请确认安装源存在,并且你可以访问它”报错截图如下 使用Uninstall Tool软件强制删除,绕过软件自带的uninstall程序。(小白推荐,如下图) Uninstall Tool - Unique…

【DAY06 软考中级备考笔记】数据结构:树

数据结构:树 3月1日 – 天气:晴 之前在B站看的视频讲的是在太过简单,弃了。现在换了新的视频继续,后续会重新看前面的视频补过来。https://www.bilibili.com/video/BV1pT4m1S7uH/ 1. 树的基本概念 需要注意的是: 并不是…

代码随想录算法训练营第五天

● 自己看到题目的第一想法 242. 有效的字母异位词 方法&#xff1a; 方法一&#xff1a; 暴力法 1. 分别对s, t排序 2. 遍历s与t 判断s[i]!t[i] 返回 false 否则 返回true思路&#xff1a; 注意&#xff1a; 代码&#xff1a; bool cmp(char a, char b){return a<b;…

解决GitHub无法访问的问题:手动修改hosts文件与使用SwitchHosts工具

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua&#xff0c;在这里我会分享我的知识和经验。&#x…

Node.js+Express后端,自定义接口

6分钟学会Express 后端 API 开发 Node.js 2020最新版_哔哩哔哩_bilibili 要使用Node.js和Express搭建一个简单的后台服务器&#xff0c;用于接收带有token的请求头&#xff0c;你可以按照以下步骤进行操作&#xff1a; 首先&#xff0c;确保你已经安装了Node.js和npm&#xff0…