Vue中管理路由 vue router路由配置

2021-09-16 13:39:30 字數 3125 閱讀 3231

在新建vue router時,router的構建選項有routes、mode、base、linkactiveclass、linkexactactiveclass等等,這裡只介紹mode和routes,我們常說的路由配置一般指配置routes。

詳細的請查詢官方文件

vue-router的前端路由有兩個模式"hash"和"history",history模式要依賴伺服器配置,請參考spa中前端路由實現原理與vue-router前端路由模式

routes用來建立vue-router路由例項的配置項,是乙個陣列,用來設定一組url與元件的對應關係,陣列中的成員稱為一條路由記錄。

其中一條路由的配置項

,// 4、配置命名檢視元件

redirect?

: string | location | function,

//5、路由重定向

props?

: boolean | object | function,

//6、路由元件傳遞引數

alias?

: string | array

,//7、路由別名

children?

: array

,// 8、巢狀子路由

beforeenter?

:(to: route,

from

: route, next: function)

=>

void

,//9、 配置路由獨享的守衛

meta?

: any,

// 10、自定義標籤屬性,比如:是否需要登入

base: string,

// 11、配置單頁應用的基路徑

// 2.6.0+

casesensitive?

: boolean,

//12、 匹配規則是否大小寫敏感?(預設值:false)

pathtoregexpoptions?

: object //13、 編譯正則的選項

}

下面建立4個元件來介紹這些配置項,分別是產品根元件、產品列表、產品詳情和404頁面

const login =

;const products =

;const productlist=

;const productdetail=

;const page404=

;const router =

newvuerouter()

;console.

log(router)

;const vm=

newvue()

;

string型別,必選,用來匹配瀏覽器url,hash模式時path是window.location.hash中#後面的部分,history模式時path是window.location.pathname的值。

routes:[,

,//path中攜帶`動態路徑引數`

,//會匹配以 /products/ 開頭的任意路徑

, children:[}

,},]

}]

重定向是將乙個path定向到另乙個path,位址列中顯示目標路由的那個路徑,redirect的值可以是乙個path值,也可以是乙個物件,甚至是乙個函式。

下面的**都是將路徑為"/「時,定向到」/products"

,}

,

在vue例項中引入router例項後,可以在vue中使用this.$route訪問當前路由物件,如productdetail元件的模板中可以通過}獲得當前路由物件路徑引數id,在元件中使用 $route 會使之與其對應路由形成高度耦合。

const productdetail=

;const router =

newvuerouter(]

})

使用 props 將元件和路由解耦:

const productdetail=

;const router =

newvuerouter(]

})

別名和重定向看起來相似,

,

children屬性值是乙個陣列,陣列中的項和前面講的路由物件幾乎沒有區別,但子路由中的path不需要加』/』,因為以「/」開頭的巢狀路徑會被當作根路徑。

本例中router配置這樣改寫

const router =

newvuerouter(,

,,,]

},],

mode:

'history'})

;

9、beforeenter 配置路由獨享的守衛

在路由記錄上上直接定義 beforeenter 守衛,是這條路由路由獨享的路由守衛,引數是to,from,next

}

關於路由守衛詳見vue中管理路由-vue-router路由守衛

meta是每個路由的標識資訊,是路由物件固有的乙個資訊,無論在路由中是否定義meta,在元件中都可以通過this.$route.meta訪問到,如果沒有定義,返回{}

根據路由的meta屬性可以實現驗證使用者是否登入、設定標題、圖示、麵包屑導航等等

下面的**,配置這條路由驗證進入的時候驗證是否登入,並設定網頁的title

, beforeenter:

(to,

from

,next)

=>

else

next()

;}}

new

router()

;

如果這樣配置,訪問 http://localhost:***/view/ 和 http://localhost:***/效果是一樣的。

預設是false,不敏感。

下面的配置下,/login匹配不到登入元件

,

vue route 三 後台管理路由配置

在乙個後台管理的專案中,關於路由的配置,我們需要實現的乙個布局是header,aside,main三部分,後期還可能新增footer部分,實現的需求是請求資料時,區域性的重新整理,這個時候我們就需要對路由進行配置。要實現main部分的區域性重新整理,還要考慮404頁面 直接上 import vue ...

如何使用route管理路由表

這裡是引用 route快捷使用方法 我們一般管理路由有使用route命令 本身route使用大致有兩種方法 但其實 在實際操作中,我們熟練掌握一種方法就可以了。route 有以下6種操作方法 1 add 新增 路由 包含destination,gw,netmask 2 del 刪除上面資訊 3 ne...

Vue非同步元件處理路由元件載入狀態

在大型單頁面應用中,處於對效能的考慮和首屏載入速度的要求,我們一般都會使用webpack的 分割和vue router的路由懶載入功能將我們的 分成乙個個模組,並且只在需要的時候才從伺服器載入乙個模組。但是這種解決方案也有其問題,當網路環境較差時,我們去首次訪問某個路由模組,由於載入該模組的資源需要...