中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vite+vue3中如何使用mock模擬數據問題

發布時間:2023-05-16 16:51:22 來源:億速云 閱讀:162 作者:iii 欄目:編程語言

這篇文章主要介紹“vite+vue3中如何使用mock模擬數據問題”,在日常操作中,相信很多人在vite+vue3中如何使用mock模擬數據問題問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”vite+vue3中如何使用mock模擬數據問題”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

1.安裝mockjs和vite-plugin-mock

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

2.在vite.config.ts文件中配置

vite-plugin-mock使用方式

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { viteMockServe } from 'vite-plugin-mock'
 
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue(),
    viteMockServe({
      supportTs:false,
      logger: false,
      mockPath: "./mock/"
    })
  ]
})

vite-plugin-mock 中的配置內容的含義

{
supportTs?: boolean; --是否讀取ts文件模塊,設置為true時不能讀取js文件

logger?:boolean; --是否在控制臺顯示請求日志
mockPath?: string;  --設置模擬數據的存儲文件夾,如果不是index.js需要寫明完整路徑
ignore?: RegExp | ((fileName: string) => boolean);--讀取文件時忽略指定格式的文件
watchFiles?: boolean;--是否監視mockPath文件夾內文件的修改
localEnabled?: boolean;--設置是否啟用本地 xxx.ts 文件,不要在生產環境中打開它.設置為 false 將禁用 mock 功能
ignoreFiles?: string[]; --讀取文件時忽略的文件
configPath?: string;--設置模擬讀取的數據條目。 當文件存在并且位于項目根目錄中時,將首先讀取并使用該文件。 配置文件返回一個數組
prodEnabled?: boolean;--設置打包是否啟用 mock 功能
injectFile?: string;--如果生產環境開啟了 mock 功能,即prodEnabled=true.則該代碼會被注入到injectFile對應的文件的底部。默認為main.{ts,js}。這樣做的好處是,可以動態控制生產環境是否開啟 mock 且在沒有開啟的時候 mock.js 不會被打包。如果代碼直接寫在main.ts內,則不管有沒有開啟,最終的打包都會包含mock.js

injectCode?: string;--injectCode代碼注入的文件,默認為項目根目錄下src/main.{ts,js}

}

3.在根目錄下創建mock文件夾

新建文件夾mock/index.js

export default [{
    type:'get',
    url:'/user/login',
    response: () => {
        return {isAuth:true}
    }
},{
    type:'get',
    url:'/user/menu',
    response: () => {
        return {menusList:[{
            id:'/sysManagent',
            title:'系統管理',
            subMenuList:[
                {
                    id:'/userList',
                    title:'用戶管理',
                    path:'/user/manage'
                },
                {
                    id:'/roleList',
                    title:'角色管理',
                    path:'/user/role'
                },
                {
                    id:'/permissionList',
                    title:'權限管理',
                    path:'/user/permission'
                }
            ]
        },{
            id:'businessManagent',
            title:'業務管理',
            subMenuList:[
                {
                    id:'/businessList',
                    title:'業務邏輯'
                }
            ]
        }],statusCode:200}
    }
}]

4.在文件中調用

<template>
  <div class="aside">
    <div class="collpase-btn" @click="collpaseMenu">
      <el-icon><fold /></el-icon>
    </div>
    <el-menu
      active-text-color="#ffd04b"
      background-color="#545c64"
      class="el-menu-vertical-demo"
      :default-active="router.path"
      text-color="#fff"
      :collapse="store.state.isCollapse"
      @open="handleOpen"
      @close="handleClose"
      :router="true"
    >
      <el-sub-menu
        :index="item.id"
        v-for="item in menus.mensList"
        :key="item.id"
      >
        <template #title>
          <el-icon><grid /></el-icon>
          <span>{{ item.title }}</span>
        </template>
        <el-menu-item :index="it.id" v-for="it in item.subMenuList">
          {{ it.title }}
        </el-menu-item>
      </el-sub-menu>
    </el-menu>
  </div>
</template>
<script lang="ts">
import axios from 'axios'
import { defineComponent, onMounted, reactive } from 'vue'
import { useRoute } from 'vue-router'
import { useStore } from 'vuex'
 
export default defineComponent({
  name: 'Aside',
  setup() {
    const store = useStore()
    const router = useRoute()
    const mensList: any = []
    let menus = reactive({ mensList })
 
    const handleOpen = (key: string, keyPath: string[]) => {}
    const handleClose = (key: string, keyPath: string[]) => {}
    const collpaseMenu = () => {
      store.dispatch('collpaseChange')
    }
    onMounted(() => {
      axios.get('/user/menu').then((res) => {
        console.log(res);
        menus.mensList = res.data.menusList
      })
    })
    return {
      handleOpen,
      handleClose,
      collpaseMenu,
      store,
      menus,
      router
    }
  },
})
</script>
 
<style lang="scss" scoped>
.el-menu-item.is-active {
  background-color: var(--el-menu-hover-bg-color);
}
.collpase-btn {
  text-align: center;
  width: 100%;
  padding: 10px 0px;
  cursor: pointer;
  .el-icon {
    color: white;
    font-size: 24px;
  }
}
</style>

vite+vue3中如何使用mock模擬數據問題

5.其他

如果mock文件夾建在src文件目錄下,需要修改tsconfig.json文件

"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue","src/mock/**/*.ts"],

到此,關于“vite+vue3中如何使用mock模擬數據問題”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

成安县| 濮阳县| 德令哈市| 闽清县| 英山县| 辉县市| 隆回县| 泰和县| 濉溪县| 葫芦岛市| 安平县| 蓬安县| 辰溪县| 阿图什市| 岳普湖县| 玉山县| 大竹县| 凤冈县| 含山县| 昆明市| 江源县| 灵石县| 玉林市| 崇明县| 新泰市| 云霄县| 平邑县| 林州市| 玉龙| 博客| 柳江县| 偃师市| 健康| 墨竹工卡县| 巫溪县| 利辛县| 合阳县| 北安市| 静宁县| 扬中市| 巩留县|