vue路由vue-router

配置

如果在一個模塊化工程中使用它瞄摊,必須要通過Vue.use()明確地安裝路由功能:

import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

基礎(chǔ)

Getting Started

HTML

<div id="app">
  <h1>Hello App!</h1>
  <p>
    <!-- 使用 router-link 組件來導航. -->
    <!-- 通過傳入 `to` 屬性指定鏈接. -->
    <!-- <router-link> 默認會被渲染成一個 `<a>` 標簽 -->
    <router-link to="/foo">Go to Foo</router-link>
    <router-link to="/bar">Go to Bar</router-link>
  </p>
  <!-- 路由出口 -->
  <!-- 路由匹配到的組件將渲染在這里 -->
  <router-view></router-view>
</div>

javaScript

// 0. 如果使用模塊化機制編程方援,導入Vue和VueRouter送丰,要調(diào)用 Vue.use(VueRouter)

// 1. 定義(路由)組件会油。
// 可以從其他文件 import 進來
const Foo = { template: '<div>foo</div>' }
const Bar = { template: '<div>bar</div>' }

// 2. 定義路由
// 每個路由應該映射一個組件珠叔。 其中"component" 可以是
// 通過 Vue.extend() 創(chuàng)建的組件構(gòu)造器炉峰,
// 或者复颈,只是一個組件配置對象蚓曼。
const routes = [
  { path: '/foo', component: Foo },
  { path: '/bar', component: Bar }
]

// 3. 創(chuàng)建 router 實例亲澡,然后傳 `routes` 配置
const router = new VueRouter({
  routes // (縮寫)相當于 routes: routes
})

// 4. 創(chuàng)建和掛載根實例。
// 記得要通過 router 配置參數(shù)注入路由纫版,
// 從而讓整個應用都有路由功能
const app = new Vue({
  router
}).$mount('#app')

// 現(xiàn)在床绪,應用已經(jīng)啟動了!

動態(tài)路由匹配

通俗的講就是,路徑中包含參數(shù)癞己,而對應的組件是一定的膀斋。在線例子

響應路由參數(shù)的變化
當使用路由參數(shù)時,原來的組件實例會被復用痹雅,組件的生命周期鉤子不會再被調(diào)用仰担。
因為兩個路由都渲染同個組件,比起銷毀再創(chuàng)建绩社,復用顯得更加高效摔蓝。
復用組件時,想對路由參數(shù)的變化做出響應的話愉耙,你可以簡單的watch(檢測變化) $route對象

const User = {
template: '...',
watch: {
  '$route' (to, from) {
      // 對路由變化做出響應
    }
  }
}

嵌套路由

<router-view>中的組件還可以包含自己的<router-view>在線例子

嵌套路由

上圖中的嵌套結(jié)構(gòu)如下所示贮尉,B1和B2就是B的子結(jié)構(gòu),在路由中通過children配置朴沿。

- A
|  --- B
|   | ------B1
|   | ------B2
|  --- C

編程式導航

導航的兩種方式

  • <router-link>創(chuàng)建a標簽
  • router的實例方法
方法 功能
router.push(location) 向history棧添加新的記錄
router.replace(location) 替換當前的history記錄
router.go(n) 在history記錄中向前后者后退多少步

命名路由

通過名稱標識路由猜谚。
創(chuàng)建Router實例的時候,在routes配置中給某個路由設置名稱(name)赌渣。

命名視圖

界面中可以擁有多個單獨命名的視圖龄毡,而不是只有一個單獨的出口(<router-view>)
如果router-view沒有設置名字,那么默認為default锡垄。

進階

導航鉤子

導航表示路由正在發(fā)生改變。vue-router提供的導航鉤子主要用來攔截導航祭隔,讓它完成跳轉(zhuǎn)或取消货岭。

全局鉤子

鉤子 用法
router.beforeEach() 導航之前調(diào)用
router.afterEach() 導航之后調(diào)用,不能改變導航

路由獨享的鉤子

鉤子 用法
router.beforeEnter() 進入此導航

組件內(nèi)的鉤子

鉤子 用法
router.beforeRouteEnter() 在渲染該組件的對應路由被confirm前調(diào)用疾渴。
不能獲取組件實例this千贯,因為當鉤子執(zhí)行前,組件實例還沒被創(chuàng)建
router.beforeRouteUpdate() 在當前路由改變搞坝,但是該組件被復用時調(diào)用搔谴。
router.beforeRouteLeave() 導航離開該組件的對應路由時調(diào)用。

路由元信息

定義路由的時候可以配置meta字段
通過$route.matched數(shù)組來檢查路由記錄中的meta字段桩撮。

to.matched.some()

過渡動效

所有路由

<transition>
  <router-view></router-view>
</transition>

單個路由
在路由組件內(nèi)使用<transition>并設置不同的name

基于路由的動態(tài)過渡

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末敦第,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子店量,更是在濱河造成了極大的恐慌芜果,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件融师,死亡現(xiàn)場離奇詭異右钾,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門舀射,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窘茁,“玉大人,你說我怎么就攤上這事脆烟∩搅郑” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵浩淘,是天一觀的道長捌朴。 經(jīng)常有香客問我,道長张抄,這世上最難降的妖魔是什么砂蔽? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮署惯,結(jié)果婚禮上左驾,老公的妹妹穿的比我還像新娘。我一直安慰自己极谊,他們只是感情好诡右,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著轻猖,像睡著了一般帆吻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上咙边,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天猜煮,我揣著相機與錄音,去河邊找鬼败许。 笑死王带,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的市殷。 我是一名探鬼主播愕撰,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼醋寝!你這毒婦竟也來了搞挣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤音羞,失蹤者是張志新(化名)和其女友劉穎柿究,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體黄选,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蝇摸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年婶肩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片貌夕。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡律歼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出啡专,到底是詐尸還是另有隱情险毁,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布们童,位于F島的核電站畔况,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏慧库。R本人自食惡果不足惜跷跪,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望齐板。 院中可真熱鬧吵瞻,春花似錦、人聲如沸甘磨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽济舆。三九已至卿泽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間滋觉,已是汗流浹背签夭。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留椎瘟,地道東北人。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓侄旬,卻偏偏與公主長得像肺蔚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子儡羔,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

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