在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ vue-router 大型項(xiàng)目如何管理自己路由文件?

vue-router 大型項(xiàng)目如何管理自己路由文件?

一直都習(xí)慣在一個(gè)router.js 去編寫自己的路由功能,但是發(fā)現(xiàn)當(dāng)項(xiàng)目菜單增多(包括一些子路由),功能變多,router.js 代碼也會(huì)越來越長(zhǎng),就會(huì)變得不是那么容易管理,多人合作也會(huì)不是特別一目了然的感覺。
像這種

const router = new Router({
    routes: [
        {
            path: '/login',
            name: 'login',
            component: resolve => require(['@/components/login'], resolve)
        },
        {
            path: '/index',
            name: 'index',
            component: resolve => require(['@/components/index'], resolve),
            children: [
                // 課程管理
                {
                    path: '/lesson',
                    name: 'lesson',
                    component: resolve => require(['@/components/lesson'], resolve),
                },
                {
                    path: '/lesson/editLesson',
                    name: 'editLesson',
                    component: resolve => require(['@/components/lesson/editLesson'], resolve)
                },
                {
                    path: '/lesson/excelLesson',
                    name: 'excelLesson',
                    component: resolve => require(['@/components/lesson/excelLesson'], resolve)
                },
                {
                    path: '/lesson/excelLesson/excelEdit',
                    name: 'excelEdit',
                    component: resolve => require(['@/components/lesson/excelEdit'], resolve)
                },
                // 資源管理
                {
                    path: '/resources',
                    name: 'resources',
                    component: resolve => require(['@/components/resources'], resolve)
                },
                // 數(shù)據(jù)統(tǒng)計(jì)
                {
                    path: '/statistics',
                    name: 'statistics',
                    component: resolve => require(['@/components/statistics'], resolve)
                },
                // 活動(dòng)管理
                {
                    path: '/activity',
                    name: 'activity',
                    component: resolve => require(['@/components/activity'], resolve)
                },
                {
                    path: '/activity/editActivity',
                    name: 'editActivity',
                    component: resolve => require(['@/components/activity/editActivity'], resolve)
                },
                {
                    path: '/activity/lockConfig',
                    name: 'lockConfig',
                    component: resolve => require(['@/components/activity/lockConfig'], resolve)
                },
                {
                    path: '/activity/msgConfig',
                    name: 'msgConfig',
                    component: resolve => require(['@/components/activity/msgConfig'], resolve),
                    children: [
                        {
                            path: '/activity/liebian/msgUnLock',
                            name: 'lb_msgUnLock',
                            component: resolve => require(['@/components/activity/liebian/msgUnLock'], resolve)
                        },
                        {
                            path: '/activity/liebian/msgStudy',
                            name: 'lb_msgStudy',
                            component: resolve => require(['@/components/activity/liebian/msgStudy'], resolve)
                        },
                        {
                            path: '/activity/xuqi/msgUnLock',
                            name: 'xq_msgUnLock',
                            component: resolve => require(['@/components/activity/xuqi/msgUnLock'], resolve)
                        },
                        {
                            path: '/activity/xuqi/msgStudy',
                            name: 'xq_msgStudy',
                            component: resolve => require(['@/components/activity/xuqi/msgStudy'], resolve)
                        },
                        {
                            path: '/activity/xuqi/msgRenewal',
                            name: 'xq_msgRenewal',
                            component: resolve => require(['@/components/activity/xuqi/msgRenewal'], resolve)
                        },
                    ]
                },
                // 消息模板管理
                {
                    path: '/template',
                    name: 'template',
                    component: resolve => require(['@/components/template'], resolve)
                },
                {
                    path: '/template/editTemplate',
                    name: 'editTemplate',
                    component: resolve => require(['@/components/template/editTemplate'], resolve)
                },
                // 集合頁管理
                {
                    path: '/collection',
                    name: 'collection',
                    component: resolve => require(['@/components/collection'], resolve)
                },
                {
                    path: '/collection/editCollection',
                    name: 'editCollection',
                    component: resolve => require(['@/components/collection/editCollection'], resolve)
                },

                /* ------- */
                /* 更多代碼 */
                /* ------- */
            ]
        }, 
        ,{
            path: '*',
            redirect: '/login'
        }
    ]
})

一開始想的是希望像組件一樣,新建一些路由文件夾,寫上對(duì)應(yīng)的路由js,import 引入這種方式,然后push到children里,但是發(fā)現(xiàn),由于下級(jí)子路由的存在,然后就不知道怎么去處理這個(gè)問題了╮(╯_╰)╭ 總是覺得還是不夠優(yōu)雅...

回答
編輯回答
不討囍

你子路由沒必要寫全路徑呀,子路由若是以父路由為前綴,直接省略哪部分就好了

2018年7月19日 11:21
編輯回答
青檸

自問自答~~~ 每次都是提了問題才開竅╮(╯_╰)╭
其實(shí)router文件就是把所有的路由對(duì)象,都放在route數(shù)組里面??梢杂肊S6語法的 展開運(yùn)算符,按模塊分類然后拼接到routes數(shù)組中。
可以看下展開運(yùn)算符的基本操作。。

clipboard.png

所以提問的問題的路由文件代碼可以分割如下
圖片描述

展示其中一個(gè)模塊的路由代碼
圖片描述

是不是這樣感覺就清爽很多啦~~~ 太帥?。?!

2017年5月8日 19:05
編輯回答
夏木

問一下,你有沒有碰到,三層路由甚至更多層路由的時(shí)候,開發(fā)時(shí)無法刷新最底層的路由問題?? 我需要每次更改路由再從新ctrl-z回來才會(huì)刷新...... 每次調(diào)試都好累..

2017年11月25日 14:21