1. 參數(shù)
mode
: 默認(rèn)vue路由在瀏覽器的url帶“#”,如果想去掉#,就要把mode選項(xiàng)設(shè)為‘history’
base
: 應(yīng)用的基路徑,所有的路由path前面url會添加一個(gè)基路徑
linkActiveClass
:全局配置 <router-link> 的默認(rèn)“激活 class 類名”,<router-link>的路徑匹配了瀏覽器url的一部分石抡,就加上這個(gè)類。
linkExactActiveClass
:精確激活的默認(rèn)的 class,必須路徑完全匹配
scrollBehavior
:對于瀏覽過的網(wǎng)頁保留滾動記錄
fallback
:如果瀏覽器不支持history上的形式,則默認(rèn)啟用哈希方式
parseQuery
:提供自定義查詢字符串的解析函數(shù)
stringifyQuery
:提供自定義查詢字符串反解析函數(shù)
2. API
# mode
- 類型: string
- 默認(rèn)值: "hash" (瀏覽器環(huán)境) | "abstract" (Node.js 環(huán)境)
- 可選值: "hash" | "history" | "abstract"
配置路由模式:- hash: 使用 URL hash 值來作路由遮精。支持所有瀏覽器,包括不支持 HTML5 History Api 的瀏覽器。
- history: 依賴 HTML5 History API 和服務(wù)器配置本冲。查看 HTML5 History 模式准脂。
- abstract: 支持所有 JavaScript 運(yùn)行環(huán)境,如 Node.js 服務(wù)器端檬洞。如果發(fā)現(xiàn)沒有瀏覽器的 API狸膏,路由會自動強(qiáng)制進(jìn)入這個(gè)模式
# base
- 類型: string
- 默認(rèn)值: "/"
應(yīng)用的基路徑。例如添怔,如果整個(gè)單頁應(yīng)用服務(wù)在/app/
下湾戳,然后base
就應(yīng)該設(shè)為"/app/"
。
# linkActiveClass
- 類型: string
- 默認(rèn)值: "router-link-active"
全局配置<router-link>
的默認(rèn)“激活 class 類名”澎灸。參考 router-link院塞。
# linkExactActiveClass
- 類型: string
- 默認(rèn)值: "router-link-exact-active"
全局配置<router-link>
精確激活的默認(rèn)的 class⌒哉眩可同時(shí)翻閱 router-link拦止。
# scrollBehavior
- 類型:
Function
簽名:
更多詳情參考滾動行為。type PositionDescriptor = { x: number, y: number } | { selector: string } | ?{} type scrollBehaviorHandler = ( to: Route, from: Route, savedPosition?: { x: number, y: number } ) => PositionDescriptor | Promise<PositionDescriptor>
# parseQuery / stringifyQuery
- 類型:
Function
提供自定義查詢字符串的解析/反解析函數(shù)糜颠。覆蓋默認(rèn)行為汹族。
# fallback
- 類型:
boolean
當(dāng)瀏覽器不支持history.pushState
控制路由是否應(yīng)該回退到hash
模式。默認(rèn)值為true
其兴。
在 IE9 中顶瞒,設(shè)置為false
會使得每個(gè)router-link
導(dǎo)航都觸發(fā)整頁刷新。它可用于工作在 IE9 下的服務(wù)端渲染應(yīng)用元旬,因?yàn)橐粋€(gè) hash 模式的 URL 并不支持服務(wù)端渲染榴徐。
3. 例子
import Router from 'vue-router'
import routes from './routers'
// 創(chuàng)建路由實(shí)例
export default () => {
return new Router({
routes,
// 如果不配置mode,默認(rèn)瀏覽器的url帶“#”匀归,像這樣http://localhost:8000/#/app
mode: 'history',
// 加了base配置坑资,在所有的路由path前面url會添加一個(gè)base,像這樣http://localhost:8000/base/app
base: '/base/',
// 下面兩個(gè)都用來給<router-link>添加全局類
// 這個(gè)是<router-link>的路徑匹配了瀏覽器url的一部分穆端,就會給<router-link>標(biāo)簽加上active-link這個(gè)類
linkActiveClass: 'active-link',
// 這個(gè)是<router-link>的路徑完全匹配了瀏覽器url袱贮,才會給<router-link>標(biāo)簽加上exact-active-link這個(gè)類
linkExactActiveClass: 'exact-active-link',
// 如果瀏覽器不支持history上的形式,則默認(rèn)啟用哈希方式,也就是帶個(gè)#
fallback: true,
//配置滾動記錄
scrollBehavior (to, from, savedPosition) {
if (savedPosition) {
return savedPosition
} else {
return { x: 0, y: 0 }
}
}
})
}