最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)文章

  • vue實(shí)現(xiàn)自定義H5視頻播放器的方法步驟

    vue實(shí)現(xiàn)自定義H5視頻播放器的方法步驟

    這篇文章主要介紹了vue實(shí)現(xiàn)自定義H5視頻播放器的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • vue2.0 實(shí)現(xiàn)富文本編輯器功能

    vue2.0 實(shí)現(xiàn)富文本編輯器功能

    這篇文章主要介紹了vue2.0 實(shí)現(xiàn)富文本編輯器功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-05-05
  • vue3+echarts+折線投影(陰影)效果的實(shí)現(xiàn)

    vue3+echarts+折線投影(陰影)效果的實(shí)現(xiàn)

    這篇文章主要介紹了vue3+echarts+折線投影(陰影)效果的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 從零開始在vue-cli4配置自適應(yīng)vw布局的實(shí)現(xiàn)

    從零開始在vue-cli4配置自適應(yīng)vw布局的實(shí)現(xiàn)

    這篇文章主要介紹了從零開始在vue-cli4配置自適應(yīng)vw布局,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 詳解vue 配合vue-resource調(diào)用接口獲取數(shù)據(jù)

    詳解vue 配合vue-resource調(diào)用接口獲取數(shù)據(jù)

    本篇文章主要介紹了vue 配合vue-resource調(diào)用接口獲取數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • vue3簡單封裝input組件和統(tǒng)一表單數(shù)據(jù)詳解

    vue3簡單封裝input組件和統(tǒng)一表單數(shù)據(jù)詳解

    最近有一個(gè)需求是很多個(gè)表單添加,編輯等操作,會用到很多input輸入框,所以就想把input進(jìn)行簡單封裝,這篇文章主要給大家介紹了關(guān)于vue3簡單封裝input組件和統(tǒng)一表單數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • vue2實(shí)現(xiàn)pdf電子簽章問題記錄

    vue2實(shí)現(xiàn)pdf電子簽章問題記錄

    仿照e簽寶,實(shí)現(xiàn)pdf電子簽章?=>?拿到pdf鏈接,移動章的位置,獲取章的坐標(biāo),怎么實(shí)現(xiàn)呢,下面小編給大家介紹vue2實(shí)現(xiàn)pdf電子簽章問題記錄,感興趣的朋友一起看看吧
    2023-12-12
  • Vue2響應(yīng)式系統(tǒng)之嵌套

    Vue2響應(yīng)式系統(tǒng)之嵌套

    這篇文章主要介紹了Vue響應(yīng)式系統(tǒng)之嵌套,我們在開發(fā)中肯定存在組件嵌套組件的情況,下文將舉例說明情況,需要的小伙伴可以參考一下
    2022-04-04
  • vue3錨點(diǎn)定位兩種實(shí)現(xiàn)方式示例

    vue3錨點(diǎn)定位兩種實(shí)現(xiàn)方式示例

    這篇文章主要給大家介紹了關(guān)于vue3錨點(diǎn)定位兩種實(shí)現(xiàn)的相關(guān)資料,說到錨點(diǎn)定位,很多人第一時(shí)間會想到 a標(biāo)簽,但是a標(biāo)簽實(shí)現(xiàn)的錨點(diǎn)定位并不是那么的完美,需要的朋友可以參考下
    2023-07-07
  • Vue實(shí)現(xiàn)回到頂部和底部動畫效果

    Vue實(shí)現(xiàn)回到頂部和底部動畫效果

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)回到頂部和底部動畫效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07

最新評論

子长县| 安岳县| 双城市| 兴文县| 嫩江县| 嘉鱼县| 儋州市| 宝丰县| 沙洋县| 茌平县| 运城市| 盘山县| 公主岭市| 孝义市| 凭祥市| 仪陇县| 遵化市| 固始县| 祁东县| 靖边县| 稷山县| 罗山县| 藁城市| 玉田县| 吉水县| 临桂县| 莱芜市| 金川县| 清远市| 南陵县| 墨玉县| 济南市| 郑州市| 东明县| 开化县| 望江县| 容城县| 塔河县| 乃东县| 湖南省| 肃南|