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

Vue3+vite路由配置優(yōu)化(自動化導(dǎo)入)

 更新時間:2023年09月20日 09:57:39   作者:馬丁的車夫  
這篇文章主要介紹了Vue3+vite路由配置優(yōu)化(自動化導(dǎo)入),需要的朋友可以參考下

今天在維護優(yōu)化公司中臺項目時,發(fā)現(xiàn)路由的文件配置非常多非常亂,只要只中大型項目,都會進入很多的路由頁面,規(guī)范一點的公司還會吧路由進行模塊化導(dǎo)入,但是依然存在很多文件夾的和手動導(dǎo)入的問題。

于是我想到了我之前使用vuex時進行的模塊化自動導(dǎo)入js文件,能不能使用到自動導(dǎo)入.vue文件中去,答案是可以!

只需要 15行代碼就優(yōu)化 300行路由配置并且在也不用去后期手動添加路由配置!解放之鼓啊,廢話不多說直接上核心代碼。

注意:如果你view下面有組件,那么你需要給組件的文件命名:components/組件.vue,不限制層級你可以在view下任意地方創(chuàng)建components開發(fā)你的私有組件

1.核心代碼

// 自動路由配置(自動導(dǎo)入views文件下所有的文件內(nèi)的.vue文件進行注冊到路由,除了文件名叫components下的vue文件不會被注冊進行路由,默認(rèn)這是一個組件文件夾)
const routeFiles = import.meta.glob('../views/**/*.vue'); // 獲取所有views文件下的.vue文件
const routesList = [] // 儲存符合路由頁面的對象內(nèi)容
// 會有一些頁面不需要自動注冊,需要我們手動添加的就在這里上路徑
const notRead = ['../views/index.vue','../views/login.vue','../views/index-data.vue','../views/notFound.vue.vue'];
Object.keys(routeFiles).forEach(key => {
  if (key.indexOf('components') === -1 && notRead.indexOf(key) === -1) {// 排除組件 和 不需要自動注冊的路由
    const name = key.match(/\.\/(.+)\.vue$/)[1];
    const component = routeFiles[key];
    routesList.push({
      path: `/${name.toLowerCase()}`,
      component: component.default || component,
      name: name
    });
  }
});

2.完整代碼

import { createRouter, createWebHashHistory } from 'vue-router';
import storage from '@/utils/sessionStore.js';
import { defineAsyncComponent, h } from 'vue'
// 自動路由配置(自動導(dǎo)入views文件下所有的文件內(nèi)的.vue文件進行注冊到路由,除了文件名叫components下的vue文件不會被注冊進行路由,默認(rèn)這是一個組件文件夾)
const routeFiles = import.meta.glob('../views/**/*.vue'); // 獲取所有views文件下的.vue文件
const routesList = [] // 儲存符合路由頁面的對象內(nèi)容
// 會有一些頁面不需要自動注冊,需要我們手動添加的就在這里上路徑
const notRead = ['../views/index.vue','../views/login.vue','../views/index-data.vue','../views/notFound.vue.vue'];
Object.keys(routeFiles).forEach(key => {
  if (key.indexOf('components') === -1 && notRead.indexOf(key) === -1) {// 排除組件 和 不需要自動注冊的路由
    const name = key.match(/\.\/(.+)\.vue$/)[1];
    const component = routeFiles[key];
    routesList.push({
      path: `/${name.toLowerCase()}`,
      component: component.default || component,
      name: name
    });
  }
});
const routes = [
  {
    path: '/',
    name: 'login',
    component: () => import('@/views/login.vue')
  },
  {
    path: '/index',
    name: 'index',
    component: () => import('@/views/index.vue'),
    children: [
      {
        path: '/index-data',
        name: 'index-data',
        component: () => import('@/views/index-data.vue'),
      },
      ...routesList // 自動配置在這個路由下(可以根據(jù)自己的需求進行調(diào)整)
    ]
  },
  {
    path: '/404',
    name: '404',
    component: () => import('@/views/notFound.vue')
  },
];
const router = createRouter({
  history: createWebHashHistory(),
  routes
});
router.beforeEach((to, from, next) => {
    next()
});
export default router

3.路由地址說明

直接通過文件夾路徑層級來寫訪問路由即可 列如:

/views/device/grouping

/views/device/list

/views/device/index/appList

后期直接創(chuàng)建文件夾與vue文件即可 不需要再去維護路由配置文件

到此這篇關(guān)于Vue3+vite路由配置優(yōu)化(自動化導(dǎo)入)的文章就介紹到這了,更多相關(guān)Vue3 vite路由配置優(yōu)化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Element時默認(rèn)勾選表格toggleRowSelection方式

    使用Element時默認(rèn)勾選表格toggleRowSelection方式

    這篇文章主要介紹了使用Element時默認(rèn)勾選表格toggleRowSelection方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue中的baseurl如何配置

    Vue中的baseurl如何配置

    這篇文章主要介紹了Vue中的baseurl如何配置問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Vant 中的Toast設(shè)置全局的延遲時間操作

    Vant 中的Toast設(shè)置全局的延遲時間操作

    這篇文章主要介紹了Vant 中的Toast設(shè)置全局的延遲時間操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • vue-cli腳手架搭建方式(vue腳手架方式搭建)

    vue-cli腳手架搭建方式(vue腳手架方式搭建)

    這篇文章主要介紹了vue-cli(vue腳手架方式搭建),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • vue打包后生成一個配置文件可以修改IP

    vue打包后生成一個配置文件可以修改IP

    本文主要介紹了修改Vue項目運行的IP和端口,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Element通過v-for循環(huán)渲染的form表單校驗的實現(xiàn)

    Element通過v-for循環(huán)渲染的form表單校驗的實現(xiàn)

    日常業(yè)務(wù)開發(fā)中,form表單校驗是一個很常見的問題,本文主要介紹了Element通過v-for循環(huán)渲染的form表單校驗的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • vue使用nprogress加載路由進度條的方法

    vue使用nprogress加載路由進度條的方法

    這篇文章主要介紹了vue使用nprogress加載路由進度條的方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • VSCode開發(fā)UNI-APP 配置教程及插件

    VSCode開發(fā)UNI-APP 配置教程及插件

    uni-app 是一個使用 Vue.js 開發(fā)所有前端應(yīng)用的框架,今天通過本文給大家分享VSCode開發(fā)UNI-APP 配置教程及插件推薦與注意事項,感興趣的朋友一起看看吧
    2021-08-08
  • 解決element UI 自定義傳參的問題

    解決element UI 自定義傳參的問題

    今天小編就為大家分享一篇解決element UI 自定義傳參的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • vue中實現(xiàn)子組件接收父組件方法并獲取返回值

    vue中實現(xiàn)子組件接收父組件方法并獲取返回值

    這篇文章主要介紹了vue中實現(xiàn)子組件接收父組件方法并獲取返回值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評論

祁阳县| 彩票| 土默特右旗| 阿克| 孝昌县| 宁强县| 平邑县| 华阴市| 合肥市| 蒙阴县| 沙洋县| 广东省| 山东省| 大余县| 中江县| 襄城县| 霍林郭勒市| 莆田市| 嘉荫县| 九龙城区| 时尚| 彰化县| 财经| 宜宾市| 新安县| 滨海县| 玛多县| 曲松县| 福泉市| 浮梁县| 麟游县| 永定县| 泸水县| 乌拉特前旗| 商丘市| 花莲县| 西乌珠穆沁旗| 同江市| 都昌县| 蓝山县| 香格里拉县|