1. 程式人生 > >vue iview-admin使用教程之路由配置 -- 齊梟飛-web前端架構

vue iview-admin使用教程之路由配置 -- 齊梟飛-web前端架構

功執行iview-admin之後,您就可以開始動手修改它,將自己的內容替換進去了。 首先最基礎也是最重要的,應該說是路由配置,路由配置裡目前有三種類型的配置,對應三種頁面的展示

成功執行iview-admin之後,您就可以開始動手修改它,將自己的內容替換進去了。 首先最基礎也是最重要的,應該說是路由配置,路由配置裡目前有三種類型的配置,對應三種頁面的展示型別。直接來看程式碼:

./src/router.js

  1. 第一種型別:該頁面在整個瀏覽器區域展現,代表性的有登入頁、404頁等

export const loginRouter = {

path: '/login',  //必填

name: 'login',  // 必填,頁面都以name值來載入

meta: {

    title: 'Login - 登入'  // 非必填,若不填預設顯示iview-admin(後面會介紹在哪修改預設顯示的值)

},

component: resolve => { require(['./views/login.vue'], resolve); }  // 必填,用來載入該路由規則對應的檢視,resolve用來控制非同步載入

};

2.第二種型別:該頁面在Main元件的子頁面區域展示,但不在左側選單欄顯示,代表性的有首頁、訊息中心等

export const otherRouter = {

path: '/',  // 必填

name: 'otherRouter',  // 必填,在麵包屑處理中需要用到,值固定為otherRouter(或者可以在./src/libs/util.js中修改)

redirect: '/home',  // 選填,這裡如果不填在瀏覽器位址列輸入域名後自動跳轉到首頁

component: Main,  // 必填,主元件,用於載入側邊欄和右側面包屑、標籤欄、工具條、子頁面路由檢視等

children: [  // 在Main右側檢視顯示的頁面都要作為otherRouter的children來新增

    {  // home頁面

        path: 'home',  // 必填,在位址列將以 '域名/home'的的形式呈現

        title: '首頁', // 必填,這個title會在標籤欄顯示

        name: 'home_index',  // 必填,該頁面是通過name值來載入的,切記每個路由物件的名字都要和其他的不一樣

        component: resolve => { require(['./views/home/home.vue'], resolve); }  // 必填

    }

]

};

3.第三種類型:該頁面子昂Main元件的子頁面區域展示,且在左側選單欄顯示,對應有兩種情況

export const appRouter = [

{  // a.第一種情況:只有一級選單

    path: '/access',  // 必填

    redirect: '/access/index',  // 選填,如果不填也會跳轉到這個路徑

    icon: 'key',  // 必填,此icon將顯示在左側選單欄

    name: 'access',  // 必填

    title: '許可權管理',  // 必填,此title值將顯示在左側選單欄

    component: Main,  // 必填,且固定,用於載入Main元件

    children: [  // 要顯示在右側區域的頁面必須作為children來新增

        {

            path: 'index',  // 必填

            title: '許可權管理',  // 必填,將顯示在標籤欄對應標籤

            name: 'access_index',  // 必填,且不能和其父路由的name不一致(與其他任何路由的name值都不能一致)

            component: resolve => { require(['./views/access/access.vue'], resolve); }  // 必填

        }

    ]

},

{  // b.第二種情況:有二級選單

    path: '/component',  // 必填

    redirect: '/component/text-editor',  // 選填,如果不填在位址列輸入'域名/access'時將預設開啟此一級選單對應的第一個二級選單頁面

    icon: 'social-buffer',  // 必填,同上

    name: 'component',  // 必填,同上

    title: '元件',  // 必填,同上

    component: Main,  // 必填,同上

    children: [  // 必填,同上

        {

            path: 'text-editor',  // 必填,同上

            icon: 'compose',  // 必填,同上

            name: 'text-editor',  // 必填,同上

            title: '富文字編輯器',  // 必填,將顯示在左側選單欄二級選單

            component: resolve => { require(['./views/my_components/text-editor/text-editor.vue'], resolve); }  // 必填

        },

        {

            path: 'md-editor',  // 必填,同上

            icon: 'pound',  // 必填,同上

            name: 'md-editor',  // 必填,同上

            title: 'Markdown編輯器',  // 必填,同上

            component: resolve => { require(['./views/my_components/markdown-editor/markdown-editor.vue'], resolve); }

        },  // 必填

    ]

}

}

您還可以為頁面配置許可權,在左側選單初始化的時候,會通過當前登入使用者的許可權值來過濾路由配置,從而決定在左側選單欄顯示哪些選項。許可權配置很簡單,只需在路由物件裡設定’access’屬性即可:

{

    path: '/access-test',

    icon: 'lock-combination',

    title: '許可權測試頁',

    name: 'accesstest',

    access: 0,  // 如果設定access值,那麼當登入使用者的許可權值不為0時則該選單及其二級選單都不會出現在左側選單欄;

                // 如果不設定access值,那麼該選單預設顯示;

                // access如果只有一個許可權值過濾,那麼直接寫一個數字即可(如這的0),如果有多個,則寫成陣列型別(如[0,1])。

    component: Main,

    children: [

        { path: 'index', title: '許可權測試頁', name: 'accesstest_index' }

    ]

},