Vue-router中redirect屬性的理解
阿新 • • 發佈:2021-08-12
vue-router API文件對routes.redirect屬性的說明比較簡潔,如下:
//RouteConfig 的型別定義: interface RouteConfig = { path: string, component?: Component, name?: string, // 命名路由 components?: { [name: string]: Component }, // 命名檢視元件 redirect?: string | Location | Function, props?: boolean | Object | Function, alias?: string | Array<string>, children?: Array<RouteConfig>, // 巢狀路由 beforeEnter?: (to: Route, from: Route, next: Function) => void, meta?: any, // 2.6.0+ caseSensitive?: boolean, // 匹配規則是否大小寫敏感?(預設值:false) pathToRegexpOptions?: Object // 編譯正則的選項 }
我對其中redirect路徑的最終指向不是很明白,最後在檢視vue-router的常用用例中(https://github.com/vuejs/vue-router/blob/dev/examples/redirect/app.js)找到了如下程式碼,截圖如下:
這裡註釋的意思是:
1、redirect不帶 '/' 的: 路徑相對於父級路由,最終重定向到的是同級路由foo(兄弟路由)。
2、帶 '/' 的:路徑是相對於伺服器路由的,最終重定向地址為:伺服器地址+'/bar'。
於是乎,我在本地寫個一個demo測試,求證結果是對的!
其實這個知識點在幾年前學習servlet相對路徑時學習過,跟vue-router這個原理是一樣的,只不過很久沒用比較模糊了,在此記一下。