$router和$route

一没酣、$router

$router是一個全局路由對象垄懂,是new Router的實例厘擂,先上console...

image-20200815145118790.png

從console的結(jié)果看起來,在頁面上拿到的$router對象正是new VueRouter所創(chuàng)建router對象匣吊。

進一步往里看,路由類上的一些方法就是眼熟的beforeEach寸潦、push色鸳、replacego见转、back等, 因此在其他組件直接調(diào)用如this.$router.replace()方法就是調(diào)用router對象的方法命雀。

image-20200815145640337.png

常用:

this.$router.push('/user') //跳轉(zhuǎn)路由
this.$router.replace('/user')  //跳轉(zhuǎn)路由,但是不會有記錄斩箫,不入棧

相關源碼

Vue.mixin({
    beforeCreate () {
      if (isDef(this.$options.router)) {
        this._routerRoot = this   // this指向vue實例
        this._router = this.$options.router
        this._router.init(this)
        Vue.util.defineReactive(this, '_route', this._router.history.current)
      } else {
        this._routerRoot = (this.$parent && this.$parent._routerRoot) || this
      }
      registerInstance(this, this)
    },
   // ...
  })

// this.$options就是創(chuàng)建vue實例時傳入的{el:#app,router,render:h => h(App)}
// 當傳入router吏砂,將this._routerRoot指向vue實例,將傳入的router賦值給this._router
// 就相當于 this._routerRoot._router = this.$options.router校焦,即把options傳入的router賦給 this._routerRoot._router
  Object.defineProperty(Vue.prototype, '$router', {
    get () { return this._routerRoot._router }
  })
  // 給Vue.prototype對象添加$router屬性赊抖,添加屬性為 this._routerRoot._router

因此,Vue.prototype.$router和options中傳入的router等同, 則this.$router就等同于new Router的實例寨典。

二氛雪、$route

$route是一個局部對象,表示當前正在跳轉(zhuǎn)的路由對象耸成,換句話說报亩,當前哪個路由處于活躍狀態(tài),$route就對應那個路由井氢。還是先上console弦追,直觀感受一下。

image-20200815150134520.png

常用:

$route.path

字符串花竞,等于當前路由對象的路徑劲件,如“/home/news”。

$route.params

對象,包含路由中的動態(tài)片段和全匹配片段的鍵值對零远。

$route.query

對象苗分,包含路由中query參數(shù)的鍵值對。如“......牵辣?name=qq&age=18”會得到{“name”:"qq"摔癣,“age”:18}

$route.name

當前路徑的名字纬向,如果沒有使用具名路徑择浊,則名字為空。

$route.router

路由規(guī)則所述的路由器(以及所屬的組件)逾条。

$route.matched

數(shù)組琢岩,包含當前匹配的路徑中所包含的所有片段所對應的配置參數(shù)對象。

相關源碼

Vue.mixin({
    beforeCreate () {
      if (isDef(this.$options.router)) {
        this._routerRoot = this   // this指向vue實例
        this._router = this.$options.router
        this._router.init(this)
        Vue.util.defineReactive(this, '_route', this._router.history.current)
      } else {
        this._routerRoot = (this.$parent && this.$parent._routerRoot) || this
      }
      registerInstance(this, this)
    },
   // ...
  })


 Object.defineProperty(Vue.prototype, '$route', {
    get () { return this._routerRoot._route }
  })
  // 給Vue.prototype對象添加$route屬性膳帕,添加屬性為 this._routerRoot._route

由于this._routerRoot._route是動態(tài)的粘捎,哪個路由對象處于活躍,就把就把活躍的路由對象賦給this._routerRoot._route危彩,因此this.$route代表當前活躍的路由對象攒磨。

三、總結(jié)

$routernew Router的實例汤徽,是全局路由對象娩缰,用于進行路由跳轉(zhuǎn)等操作;

$route是路由信息對象谒府,表示當前活躍的路由對象拼坎,用于讀取路由參數(shù);

簡單來說也就是完疫,操作找$router泰鸡,讀參找$route

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末壳鹤,一起剝皮案震驚了整個濱河市盛龄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌芳誓,老刑警劉巖余舶,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異锹淌,居然都是意外死亡嵌屎,警方通過查閱死者的電腦和手機订讼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門僚碎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人钟些,你說我怎么就攤上這事“硖罚” “怎么了厘唾?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長龙誊。 經(jīng)常有香客問我,道長喷楣,這世上最難降的妖魔是什么趟大? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮铣焊,結(jié)果婚禮上逊朽,老公的妹妹穿的比我還像新娘。我一直安慰自己曲伊,他們只是感情好叽讳,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著坟募,像睡著了一般岛蚤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上懈糯,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天涤妒,我揣著相機與錄音,去河邊找鬼赚哗。 笑死她紫,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的屿储。 我是一名探鬼主播贿讹,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼够掠!你這毒婦竟也來了民褂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤祖屏,失蹤者是張志新(化名)和其女友劉穎助赞,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袁勺,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡雹食,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了期丰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片群叶。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡吃挑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出街立,到底是詐尸還是另有隱情舶衬,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布赎离,位于F島的核電站逛犹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏梁剔。R本人自食惡果不足惜虽画,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望荣病。 院中可真熱鬧码撰,春花似錦、人聲如沸个盆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽颊亮。三九已至柴梆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間编兄,已是汗流浹背轩性。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留狠鸳,地道東北人揣苏。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像件舵,于是被迫代替她去往敵國和親卸察。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355