欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vite+vue3中使用mock模擬數(shù)據(jù)問題

 更新時(shí)間:2023年03月28日 09:12:52   作者:liguoyuan819  
這篇文章主要介紹了vite+vue3中使用mock模擬數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

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 中的配置內(nèi)容的含義

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

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

injectCode?: string;--injectCode代碼注入的文件,默認(rèn)為項(xiàng)目根目錄下src/main.{ts,js}

}

3.在根目錄下創(chuàng)建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:'系統(tǒng)管理',
            subMenuList:[
                {
                    id:'/userList',
                    title:'用戶管理',
                    path:'/user/manage'
                },
                {
                    id:'/roleList',
                    title:'角色管理',
                    path:'/user/role'
                },
                {
                    id:'/permissionList',
                    title:'權(quán)限管理',
                    path:'/user/permission'
                }
            ]
        },{
            id:'businessManagent',
            title:'業(yè)務(wù)管理',
            subMenuList:[
                {
                    id:'/businessList',
                    title:'業(yè)務(wù)邏輯'
                }
            ]
        }],statusCode:200}
    }
}]

4.在文件中調(diào)用

<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>

5.其他

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

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

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue3?element-plus實(shí)現(xiàn)圖片預(yù)覽功能實(shí)例

    vue3?element-plus實(shí)現(xiàn)圖片預(yù)覽功能實(shí)例

    這篇文章主要給大家介紹了關(guān)于vue3?element-plus實(shí)現(xiàn)圖片預(yù)覽功能的相關(guān)資料,在項(xiàng)目中我們經(jīng)常會碰到圖片預(yù)覽的功能需求,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • Vue.js桌面端自定義滾動條組件之美化滾動條VScroll

    Vue.js桌面端自定義滾動條組件之美化滾動條VScroll

    這篇文章主要給大家介紹了關(guān)于Vue.js桌面端自定義滾動條組件之美化滾動條VScroll的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Vue 電商后臺管理項(xiàng)目階段性總結(jié)(推薦)

    Vue 電商后臺管理項(xiàng)目階段性總結(jié)(推薦)

    這篇文章主要介紹了Vue 電商后臺管理項(xiàng)目階段性總結(jié),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 淺談Vue內(nèi)置component組件的應(yīng)用場景

    淺談Vue內(nèi)置component組件的應(yīng)用場景

    這篇文章主要介紹了淺談Vue內(nèi)置component組件的應(yīng)用場景,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • Vue?日期獲取的示例代碼

    Vue?日期獲取的示例代碼

    moment.js是一款現(xiàn)在對時(shí)間處理的強(qiáng)大的函數(shù),這篇文章主要介紹了Vue?日期獲取的示例代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-01-01
  • Vue+Antv?F2實(shí)現(xiàn)層疊柱狀圖

    Vue+Antv?F2實(shí)現(xiàn)層疊柱狀圖

    這篇文章主要為大家詳細(xì)介紹了Vue+Antv?F2實(shí)現(xiàn)層疊柱狀圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue表格首列相同數(shù)據(jù)合并實(shí)現(xiàn)方法

    Vue表格首列相同數(shù)據(jù)合并實(shí)現(xiàn)方法

    這篇文章主要介紹了Vue實(shí)現(xiàn)表格首列相同數(shù)據(jù)合并的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Vue?element?ui用戶展示頁面的實(shí)例

    Vue?element?ui用戶展示頁面的實(shí)例

    這篇文章主要介紹了Vue?element?ui用戶展示頁面的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Vue中實(shí)現(xiàn)權(quán)限管理詳解

    Vue中實(shí)現(xiàn)權(quán)限管理詳解

    這篇文章主要介紹了Vue中實(shí)現(xiàn)權(quán)限管理詳解,權(quán)限是對特定資源的訪問許可,所謂權(quán)限控制,也就是確保用戶只能訪問到被分配的資源,而前端權(quán)限歸根結(jié)底是請求的發(fā)起權(quán),請求的發(fā)起可能有下面兩種形式觸發(fā),需要的朋友可以參考下
    2023-08-08
  • vue3使用canvas的詳細(xì)指南

    vue3使用canvas的詳細(xì)指南

    這篇文章主要給大家介紹了關(guān)于vue3使用canvas的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue3具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-04-04

最新評論