vue-router的巢狀路由,重定向和別名
1.命名路由
有時候,通過一個名稱來標識一個路由顯得更方便一些,特別是在連結一個路由,或者是執行一些跳轉的時候。你可以在建立 Router 例項的時候,在 routes
配置中給某個路由設定名稱。我個人理解就相當於給路徑取個名字,呼叫的時候,這個名字就指這個路徑,不然有些路徑很長,直接寫太麻煩。
const router = new VueRouter({
routes: [
{
path: '/user/:userId',
name: 'user',
component: User
}
]
})
要連結到一個命名路由,可以給 router-link
to
屬性傳一個物件:
<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>
或者程式碼呼叫 router.push():
router.push({ name: 'user', params: { userId: 123 }})
這兩種方式都會把路由導航到 /user/123
路徑。
2.路由巢狀
有時候,我們會有這樣的需求 :
①將App.vue用作主路由視窗,有著一個main內容(一般是頂欄和低欄),其他所有的子元件都基於App.vue渲染,這樣路由配置可以配置成同一級的,每次跳轉路由都銷燬之前的路徑。
②但是大部分時候,我們不一定非要基於App.vue的所有樣式,意思就是整個工程有樣式不同的好幾種頁面,比方說有些頁面都要頂欄和低欄,有些頁面只要頂欄...
這時候採取的解決方法是:ⅠApp.vue僅作為一個路由視窗,不新增任何內容,僅僅是為了對映其他子元件。
Ⅱ子元件單獨建立兩個類似於App.vue作用的元件,用來提供所需樣式,並對映其他分別基於此的孫子元件。這時候路由index.js配置時要用到children,redirect,'',/等
3.重定向與別名
{ path: '/a', redirect: '/b' } // 從/a重定向到/b
上面意思是跳轉到/a時自動就變成/b了,所以永遠不會跳轉到/a,可以用來授權登陸前的驗證判斷
重定向的目標也可以是一個命名的路由:
{ path: '/a', redirect: { name: 'b' }}
甚至是一個方法,動態返回重定向目標:
{ path: '/a', redirect: to => {
// 方法接收 目標路由 作為引數
// return 重定向的 字串路徑/路徑物件
}}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
重定向和別名的區別:
重定向:當用戶訪問 /a
時,URL 將會被替換成 /b
,然後匹配路由為 /b
,那麼『別名』又是什麼呢?
別名:/a
的別名是 /b
,意味著,當用戶訪問 /b
時,URL 會保持為 /b
,但是路由匹配則為 /a
,就像使用者訪問 /a
一樣。
上面對應的路由配置為:
{ path: '/a', component: A, alias: '/b' }
『別名』的功能讓你可以自由地將 UI 結構對映到任意的 URL,而不是受限於配置的巢狀路由結構。
4.url開啟自動跳轉到‘/’。 而‘’則意味著自動跳轉到上一級時自動跳轉空路徑
{ path: '/', redirect: '/header' }, // 重定向到/header
{ path: '/header',
name: 'header',
component: Header,
children: [
{ path: '', redirect: 'login' }, // 預設跳轉到/header/login
{ path: 'login', name: 'login', component: Login },
{ path: 'register', name: 'register', component: Register },
{ path: 'forgetPassword', name: 'forgetPassword', component: ForgetPassword }
]
},
相關推薦
vue-router的巢狀路由,重定向和別名
1.命名路由 有時候,通過一個名稱來標識一個路由顯得更方便一些,特別是在連結一個路由,或者是執行一些跳轉的時候。你可以在建立 Router 例項的時候,在 routes 配置中給某個路由設定名稱。我個人理解就相當於給路徑取個名字,呼叫的時候,這個名字就指這個路徑,不
vue-router巢狀路由定向問題
存在這樣一個路由routes: [ { path: '/home', name: 'home', component: Nav, children: [ { path: 'index'
vue—router巢狀路由設定及預設選擇
巢狀路由 應用場景:用vue-router 設定一個頁面的路由的時候,在其頁面元件內也需要用到,用一個專案來舉例子 我在app.vue中設定路由出口對其他頁面元件.設定路徑,比如home 首頁設定,在router資料夾index.js中設定 routes: [ { path:
vue2.0子路由配置和跳轉 vue-router: 巢狀路由
路由跳轉 <li class="nav_li" v-link="{ path: '/home/reg'}"></li> <router-link to="/home/reg">註冊</router-link> this.
Vue-router巢狀路由的使用
路由使用的時候需要設定路由的路徑: ew Router({ // mode: 'abstract', routes: [ { path: '/top', component: Top }, { path: '/new', component: New
vue-router中定義動態路由、巢狀路由,並動態獲取引數
路由的定義,主要有以下幾步: 如果是模組化機制,需要呼叫 Vue.use(VueRouter) 定義路由元件,如: const Foo = { template: '<div>foo</div>' }; 定義路由(陣列):
vue路由介紹,命名路由,巢狀路由,命名檢視
路由,對於大多數單頁面應用,都推薦使用官方支援的 vue-router 庫。更多細節可以看 vue-router 文件https://router.vuejs.org/。以下為簡單實現路由的程式碼: 寫html <div class="tab-item"&g
vue-router巢狀+檢視路由
一、巢狀路由(配置好父路由component後,在父路由下面新增children屬性來配置這個父路由的子路由) 需要注意的是:父元件中的<router-view></router-view>是子元件的佔位符是必不可少的 巢狀路由的現象:點選了路由跳
AngularJS ui-router (巢狀路由)
我們都知道,如果使用原生路由的話,Angular的檢視是通過ng-view這個指令進行載入的。比如這樣:<div ng-view></div>。一般,我們都會把這個指令放在index.html這個檔案裡面,然後,通過控制器來載入相應的模板檢視。比
vue-router動態註冊路由,實現無需註冊頁面可跳轉
demo工程地址:https://github.com/martSforever/test-router 先說一下特性: 無需註冊頁面路由,可直接跳轉; 頁面地址可以在資料庫中配置; 頁面分包載入,進行頁面路由跳轉的時候才去載入頁面元
vue-router巢狀命名檢視
/settings/emails /settings/profile +-----------------------------------+ +---------
重定向和別名
router pat new dex 組件 outer path out 定向 new router({ routes:[ { path: ‘/‘, conponent: home, name: ‘Home‘, a
Vue router 路由巢狀 路由重定向 路由別名 router-link傳引數
<template> <div> 這是商品列表頁面 <router-link :to="{ name: 'title'}">標題</router-link> <router-link to="/good
vue巢狀路由與404重定向實現方法分析
第一部分: vue巢狀路由 巢狀路由是什麼? 巢狀路由就是在一個被路由過來的頁面下可以繼續使用路由,巢狀也就是路由中的路由的意思。 比如在vue中,我們如果不使用巢狀路由,那麼只有一個<router-view>,但是如果使用,那麼在一個元件中就還有<router-view>,這也就構
Vue-router學習筆記——遇到的坑(一)history模式重新整理/設定巢狀路由顯示404/cannot find(webpack配置)
前端路由有兩種,一種是hash模式,一種是history模式。 這兩種模式的url路徑都不需要真實存在,只需要為前端跳轉做一個顯示。 hash模式的url路徑會帶有#,看起來不太舒服且不好做SEO,但是因為瀏覽器向伺服器請求時會自動忽略#後面的值,所以在瀏覽器中重新整理還是
Vue 爬坑之旅--巢狀路由預設選中第一個子路由,並且主路由和子路由都處於啟用狀態
在實際開發中,巢狀路由經常會用到,基本用法也很簡單,今天要說的不是巢狀路由怎麼用,而是在用的過程中發現的二點小細節的處理。 巢狀路由中預設選中第一個子路由 在一個這樣的介面中,底部的五個 tab 顯然應該是五個路由,現在在首頁這個路由下面又有三個 tab
vue-router: 巢狀路由
模板抽離 我們已經學習過了Vue模板的另外定義形式,使用<template></template>。 <!-- 模板抽離出來 --> <template id="home">
Vue+vue-router+Webpack4模擬登陸跳轉和巢狀路由功能(非vue-cli)
Webpack實現的功能 打包和輸出html 打包,分離,壓縮和輸出css檔案 vue模板解析 自定義輸出js檔案路徑和名稱等 demo的基本功能 使用vue-router模擬登陸和跳轉 vue-router巢狀路由模擬登陸後切換頁面 packag
vue路由巢狀,配置children巢狀路由
巢狀路由就是路由裡面巢狀他的子路由,可以有自己的路由導航和路由容器(router-link、router-view),通過配置children可實現多層巢狀 //mine元件 <template
vue-router菜鳥進階!(巢狀路由VS命名路由)
巢狀路由 一個被渲染元件可以包含自己的巢狀< router-view >。 要在巢狀的出口中渲染元件,需要在VueRouter的引數中使用children配置: <script src="https://unpkg.com/vue/dis