VUE-Router的知識點總結(jié)

一楞慈、動態(tài)路由匹配

形如:

const router = new VueRouter({ routes: [{ path: '/user/:id', component: User } ] })

后面的值就是動態(tài)匹配的參數(shù),真正的路由值跳轉(zhuǎn)到冒號之前的路徑中啃擦,:后的值在this.$route.params中囊蓝,可以在任意組件中被使用。
當(dāng)只有:后的參數(shù)改變的時候令蛉,原來的組件實例會被復(fù)用聚霜,意味著組建的生命周期不會再被調(diào)用

如果此時想要對參數(shù)的變化做出響應(yīng),可以watch$router

二珠叔、編程式導(dǎo)航

在vue實例內(nèi)部蝎宇,可以通過$router訪問路由實例,可以通過this.$push(...)倆進行頁面跳轉(zhuǎn)

跳轉(zhuǎn)有兩種方式:

聲明式跳轉(zhuǎn):<router-link :to="...">;
編程式跳轉(zhuǎn):router.push(...)

參數(shù)可以是一個path路徑祷安,也可以包括params和query參數(shù)

router.push({ name: 'user', params: { userId: '123' }})
router.push({ path: 'register', query: { plan: 'private' }})

注意:如果提供path姥芥,則params會被覆蓋,可以用以下兩種方式替代

router.push({ name: 'user', params: { userId }}) // -> /user/123 router.push({ path: /user/${userId} }) // -> /user/123

router.replace和router.push區(qū)別:

push是向前推進一個頁面(真正意義上的跳轉(zhuǎn)辆憔,后退會返回當(dāng)前頁面)撇眯,replace是替換當(dāng)前頁面(后退會返回當(dāng)前頁面的上一級)
router的API大體上和window.history很像,可以參考理解

三虱咧、路由優(yōu)先級

當(dāng)一個路由可以匹配多個路由的時候熊榛,此時,匹配的優(yōu)先級俺找路由的定義標準腕巡,誰先定義的玄坦,誰的優(yōu)先級就越高

四、路由嵌套

路由通常由:路由實例绘沉,路由表煎楣,components組成,在項目中這幾部分可以按照需求進行拆分车伞,從而有更清晰的結(jié)構(gòu)择懂,當(dāng)我們需要在同級展示多個視圖的時候,我們需要為router-view設(shè)置名字

當(dāng)路由需要進行嵌套的時候另玖,只需要在路由表的頂級路由中嵌套子路由即可困曙,如下

{ path: '/settings', component: UserSettings, 
children: [
{ path: 'emails', component: UserEmailsSubscriptions }, 
{ path: 'profile', components:
 { default: UserProfile, helper: UserProfilePreview }
 }] }

渲染時:

<div> <h1>User Settings</h1> <NavBar/> <router-view/> <router-view name="helper"/> </div>

五、路由重定向

有時我們需要多個路徑指向同一個視圖谦去,這時候就需要用到路由的重定向慷丽,一般在路由表的path后加一個redirect屬性就可以做到

參數(shù)可以是相對路徑:

const router = new VueRouter({ routes: [ { path: '/a', redirect: '/b' } ] })

也可以是命名路由

const router = new VueRouter({ routes: [ { path: '/a', redirect: { name: 'foo' }} ] })

也可以是一個方法

const router = new VueRouter({ routes: [ { path: '/a', redirect: to => { // 方法接收 目標路由 作為參數(shù) // return 重定向的 字符串路徑/路徑對象 }} ] })
路由重定向和路由別名的區(qū)別:

重定向是先訪問到/a,然后路由會把頁面重定向到/b鳄哭,跳轉(zhuǎn)了兩次要糊;別名是直接跳轉(zhuǎn)到對應(yīng)url,只經(jīng)歷一次跳轉(zhuǎn)

六妆丘、路由組件傳參

有時我們在進行路由跳轉(zhuǎn)的時候锄俄,不可避免的會遇到需要傳遞參數(shù)的情況局劲,這時候就需要利用路由進行傳參,但在之前我們的參數(shù)都是通過$router.params來進行傳遞的珊膜,這樣就造成了組件和URL過于耦合容握,組件只能在特定的url上使用宣脉,所以這時候我們就需要引入props進行解綁

const User = { props: ['id'], template: '<div>User {{ id }}</div>' } 
const router = new VueRouter({ 
routes: [ { path: '/user/:id', 
component: User, props: true }, 
// 對于包含命名視圖的路由车柠,你必須分別為每個命名視圖添加 `props` 選項:
 { path: '/user/:id', 
components: { default: User, sidebar: Sidebar }, 
props: { default: true, sidebar: false } } ] })

七、路由守衛(wèi)

路由守衛(wèi)顧名思義塑猖,就是在路由進行跳轉(zhuǎn)之前或之后進行的判斷竹祷,參數(shù)或查詢的改變并不會觸發(fā)進入/離開的導(dǎo)航守衛(wèi),

它一般分為:全局

1.png

單個路由獨享

2.png

組件

3.png
4.png

每個守衛(wèi)方法都有三個參數(shù)

  • to: Route: 即將要進入的目標 路由對象
  • from: Route: 當(dāng)前導(dǎo)航正要離開的路由
  • next: Function: 一定要調(diào)用該方法來 resolve 這個鉤子

通常情況下登錄路由守衛(wèi)

5.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末羊苟,一起剝皮案震驚了整個濱河市塑陵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蜡励,老刑警劉巖令花,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異凉倚,居然都是意外死亡兼都,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門稽寒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扮碧,“玉大人,你說我怎么就攤上這事杏糙∩魍酰” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵宏侍,是天一觀的道長赖淤。 經(jīng)常有香客問我,道長谅河,這世上最難降的妖魔是什么咱旱? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮旧蛾,結(jié)果婚禮上莽龟,老公的妹妹穿的比我還像新娘。我一直安慰自己锨天,他們只是感情好毯盈,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著病袄,像睡著了一般搂赋。 火紅的嫁衣襯著肌膚如雪赘阀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天脑奠,我揣著相機與錄音基公,去河邊找鬼。 笑死宋欺,一個胖子當(dāng)著我的面吹牛轰豆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播齿诞,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼酸休,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了祷杈?” 一聲冷哼從身側(cè)響起斑司,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎但汞,沒想到半個月后宿刮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡私蕾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年僵缺,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片是目。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡谤饭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出懊纳,到底是詐尸還是另有隱情揉抵,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布嗤疯,位于F島的核電站冤今,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏茂缚。R本人自食惡果不足惜戏罢,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望脚囊。 院中可真熱鬧龟糕,春花似錦、人聲如沸悔耘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至缓艳,卻和暖如春校摩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背阶淘。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工衙吩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人溪窒。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓坤塞,卻偏偏與公主長得像,于是被迫代替她去往敵國和親霉猛。 傳聞我的和親對象是個殘疾皇子尺锚,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容