Vue-router之配置

new Router 配置項(xiàng)

mode

hash / histoty

配置路由 history 模式

作為有服務(wù)端渲染的應(yīng)用叼耙,不希望有 #睦番,上述是 hash 模式雇盖,# 更多是用來做定位的屑墨,同時它不會被搜索引擎解析棺滞,導(dǎo)致網(wǎng)站 SEO 效果不好

在 router options 中使用 mode: 'history'

export default () => {
  return new Router({
    routes,
    mode: 'history' // 默認(rèn) hash 模式
  })
}

base

頁面基礎(chǔ)路徑

設(shè)置之后苟径,使用 vue-router api 進(jìn)行跳轉(zhuǎn) 都會加上這個 base 路徑

export default () => {
  return new Router({
    routes,
    mode: 'history', 
    base: '/base/' // 兩邊斜杠要加
  })
}

linkActiveClass 和 linkExactActiveClass

// app.vue
<template>
  <div id="app">
    <router-link to="/app">app</router-link>
    <router-link to="/login">login</router-link>
    <router-view />
  </div>
</template>

此時案站,控制臺對應(yīng)的 a標(biāo)簽顯示

<a data-v-06ebb29e="" href="/base/app" class="router-link-exact-active router-link-active">app</a>

對 class 進(jìn)行配置

// router.js
export default () => {
  return new Router({
    routes,
    mode: 'history', 
    base: '/base/', 
    linkActiveClass: 'active-link',
    linkExactActiveClass: 'exact-active-link'
  })
}

配置之后的 a 的 class,就是配置的值棘街。

<a data-v-06ebb29e="" href="/base/app" class="exact-active-link active-link">app</a>

區(qū)別

添加一個新路由 /login/exact

// client/config/routes.js
export default [
  {
    path: '/login',
    component: Login
  },
  {
    path: '/login/exact',
    component: Login
  }
]
// client/app.vue
<template>
  <div id="app">
    <router-link to="/login">login</router-link>
    <router-link to="/login/exact">login exact</router-link>
  </div>
</template>

當(dāng)點(diǎn)擊 login 鏈接時蟆盐,跳轉(zhuǎn)到 login 頁面承边,此時 login 和 login exact 鏈接標(biāo)簽,login 有兩個 class石挂。

<a data-v-06ebb29e="" href="/base/login" class="exact-active-link active-link">login</a>
<a data-v-06ebb29e="" href="/base/login/exact" class="">login exact</a>

當(dāng)點(diǎn)擊 login exact 鏈接時博助,此時 login 和 login exact 鏈接標(biāo)簽,login 有一個 class痹愚,login exact 有兩個 class富岳。

<a data-v-06ebb29e="" href="/base/login" class="active-link">login</a>
<a data-v-06ebb29e="" href="/base/login/exact" class="exact-active-link active-link">login exact</a>

vue-router 認(rèn)為只有路由真正匹配時,才會加上 exact-active-link 這個 class里伯,如果只有一部分重合城瞎,就會加上 active-link。

scrollBehavior

頁面跳轉(zhuǎn)后疾瓮,頁面是否滾動脖镀。

// router.js
export default () => {
  return new Router({
    scrollBehavior (to, from, savedPostion) {
      if (savedPostion) {
        return savedPostion
      } else {
        return { x: 0, y: 0 }
      }
    }
  })
}

parseQuery 和 stringifyQuery

定制 query 信息

vue 會默認(rèn)處理,如果有特定需求狼电,可以借助這兩個配置項(xiàng)蜒灰。

// router.js
export default () => {
  return new Router({
    parseQuery (query) {},
    stringifyQuery (obj) {}
  })
}

fallback

不是所有瀏覽器都支持前端路由的方式,如果不支持肩碟,設(shè)置 fallback: true强窖,vue 會自動 fallback 到 hash 模式。

路由配置

路由命名 name

name 和 path 可以沒有關(guān)系削祈,可以通過 name 來進(jìn)行路由的跳轉(zhuǎn)翅溺。

沒使用之前

// client/config/routes.js
export default [
  {
    path: '/app',
    component: Todo
  }
]
// app.vue
<template>
  <div id="app">
    <router-link to="/app">app</router-link>
  </div>
</template>

使用后,效果和使用路徑相同髓抑。

// client/config/routes.js
export default [
  {
    path: '/app',
    component: Todo,
    name: 'app'
  }
]
// app.vue
<template>
  <div id="app">
    <router-link :to="{name: 'app'}">app</router-link>  // 注意, v-bind:to
  </div>
</template>

路由元信息 meta

和 HTML 中 header 部分的 meta 頁面原信息類似咙崎,例如 description 有助于 seo 等,一般和路由沒什么關(guān)系的配置可以寫在這吨拍。

// client/config/routes.js
export default [
  {
    path: '/app',
    component: Todo,
    name: 'app',
    meta: {
      title: 'this is app',
      description: 'xxx'
    }
  }
]

子路由 children

嵌套路由

// client/config/routes.js
import Todo from '../views/todo/todo.vue'
import Login from '../views/login/login.vue'

export default [
  {
    path: '/app',
    component: Todo,
    },
    children: [ // 在 app 路由下褪猛,添加子路由
      {
        path: 'test',
        component: Login
      }
    ]
  }
]

// client/views/todo/todo.vue
<template>
  <section class="real-app">
  <router-view />  // 子路由使用,需要再上一級路由頁面加上 router-view 顯示羹饰。
  </section>
</template>

給 router-view 加 transition

給所有路由切換加個過渡效果伊滋。

// client/app.vue
<template>
  <div id="app">
    <transition name="fade"> // 使用 name
      <router-view />
    </transition>
  </div>
</template>
/* client/assets/styles/global.styl */
.fade-enter-active, .fade-leave-acitve /* fade- */
  transition: opacity  0.3s
.fade-enter, .fade-leave-to
  opacity : 0
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市队秩,隨后出現(xiàn)的幾起案子笑旺,更是在濱河造成了極大的恐慌,老刑警劉巖刹碾,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件燥撞,死亡現(xiàn)場離奇詭異,居然都是意外死亡迷帜,警方通過查閱死者的電腦和手機(jī)物舒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來戏锹,“玉大人冠胯,你說我怎么就攤上這事〗跽耄” “怎么了荠察?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長奈搜。 經(jīng)常有香客問我悉盆,道長,這世上最難降的妖魔是什么馋吗? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任焕盟,我火速辦了婚禮,結(jié)果婚禮上宏粤,老公的妹妹穿的比我還像新娘脚翘。我一直安慰自己,他們只是感情好绍哎,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布来农。 她就那樣靜靜地躺著,像睡著了一般崇堰。 火紅的嫁衣襯著肌膚如雪沃于。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天海诲,我揣著相機(jī)與錄音繁莹,去河邊找鬼。 笑死饿肺,一個胖子當(dāng)著我的面吹牛蒋困,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播敬辣,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼雪标,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了溉跃?” 一聲冷哼從身側(cè)響起村刨,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎撰茎,沒想到半個月后嵌牺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年逆粹,在試婚紗的時候發(fā)現(xiàn)自己被綠了募疮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡僻弹,死狀恐怖阿浓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蹋绽,我是刑警寧澤芭毙,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站卸耘,受9級特大地震影響退敦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蚣抗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一侈百、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧忠聚,春花似錦设哗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至赂毯,卻和暖如春战虏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背党涕。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工烦感, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人膛堤。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓手趣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親肥荔。 傳聞我的和親對象是個殘疾皇子绿渣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評論 2 359

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

  • # 傳智播客vue 學(xué)習(xí)## 1. 什么是 Vue.js* Vue 開發(fā)手機(jī) APP 需要借助于 Weex* Vu...
    再見天才閱讀 3,560評論 0 6
  • 用Vue.js + vue-router創(chuàng)建單頁應(yīng)用,是非常簡單的燕耿,基本是這樣的: 組件 → 路由 → 渲染地方 ...
    阿go閱讀 1,401評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理中符,服務(wù)發(fā)現(xiàn),斷路器誉帅,智...
    卡卡羅2017閱讀 134,695評論 18 139
  • 編程式導(dǎo)航 1 .用在可復(fù)用的路由視圖里面淀散,比如所有的需要跳轉(zhuǎn)到一個文章具體內(nèi)容的路由右莱,每一次跳轉(zhuǎn)到新路由的時候,...
    skoll閱讀 653評論 0 1
  • 從來不洗臉不漱口就去吃早飯 那天你說你要來 我洗了兩塊九毛九的澡 自從喜歡你 我的PH 總是小于7 如果你是pm2...
    1999年的郵箱閱讀 916評論 0 3