Vue-cli---路由

路由的三個(gè)基本概念

  1. route,它是一條路由验残,由這個(gè)英文單詞也可以看出來(lái)捞附,它是單數(shù)。
  2. routes 是一組路由您没,就是把每一條路由組合起來(lái)鸟召,形成一個(gè)數(shù)組。
  3. router 是一個(gè)機(jī)制氨鹏,相當(dāng)于一個(gè)管理者欧募,它來(lái)管理路由。

下面來(lái)簡(jiǎn)單使用一下
下載vue-router庫(kù):npm install vue-router
創(chuàng)建一個(gè)router文件夾仆抵,在里面創(chuàng)建一個(gè)index.js文件跟继,專(zhuān)門(mén)來(lái)配置路由的相關(guān)信息的文件
導(dǎo)入路由并使用

import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)

創(chuàng)建一個(gè)pages文件夾种冬,創(chuàng)建Home.vue和News.vue頁(yè)面
Home.vue頁(yè)面

<template>
<div>
    <h1>首頁(yè)</h1>
</div>
</template>
<script>
export default {
name:'Home'
}
</script>
<style scoped lang='scss'>
</style>

News.vue頁(yè)面

<template>
<div>
    <h1>新聞</h1>
</div>
</template>
<script>
export default {
name:'News'
}
</script>
<style scoped lang='scss'>
</style>

在index.js中導(dǎo)入這兩個(gè)頁(yè)面

import Home from '../pages/Home.vue'
import List from '../pages/News.vue'

index.js中創(chuàng)建路由器對(duì)象,一條路由信息就是一個(gè)對(duì)象

export default new VueRouter({
  routes:[
    {
      // 路由路徑
      path:'/home',
      // 路由名稱(chēng)
      name:'home',
      // 路由組件
      component:Home
    },
    {
      path:'/news',
      name:'news',
      component:News
    }
  ]

這樣一個(gè)路由器相關(guān)準(zhǔn)備就完成了舔糖,然后在main.js文件中導(dǎo)入路由器對(duì)象,并將路由器對(duì)象傳給Vue實(shí)例

import router from './router'
new Vue({
  render: h => h(App),
  router
}).$mount('#app')

在App.vue中來(lái)跳轉(zhuǎn)路由
router-link是路由鏈接組件娱两,用于跳轉(zhuǎn)

 <router-link to="/home">首頁(yè)</router-link>&nbsp;

也可以用編程式路由來(lái)跳轉(zhuǎn)

<button @click="gotoNews">新聞</button>

router-view是路由視圖組件,用于呈現(xiàn)路由頁(yè)面 金吗,必須要添加十兢,如果不用的話,就無(wú)法顯示要跳轉(zhuǎn)的路由頁(yè)面

<router-view></router-view>

在Vue實(shí)例中添加一個(gè)方法辽聊,這樣做的好處就是可以在挑戰(zhàn)之前做各種驗(yàn)證纪挎, $route返回的是當(dāng)前路由信息,router返回的是當(dāng)前vue實(shí)例里面的路由器對(duì)象,push方法是跳轉(zhuǎn)路由,并將路由地址添加到歷史記錄跟匆,當(dāng)然也可以用replace方法异袄,它是把當(dāng)前地址替換成記錄里面的最近一條地址

 gotoNews(){
      if(this.$route.path!=='/news'){
        this.$router.push('/news')
      }
    }

之后就可以使用路由來(lái)跳轉(zhuǎn)頁(yè)面了

在配置路由信息中
路由重定向redirect:后面寫(xiě)的是要跳轉(zhuǎn)的地址

 redirect:'/home' 

路由傳參props:參數(shù)設(shè)置為true時(shí),表示可接收路由屬性參數(shù)

 props:true,

當(dāng)要配置路由元信息時(shí):meta可配置該頁(yè)面標(biāo)題和設(shè)置角色權(quán)限等

 meta:{
      title:'One',
      roles:['admin']
    },

二級(jí)路由玛臂,就是在路由信息中配置子路由信息,例如:

 {
    path: '/one',
    name: 'One',
    component: ()=>import('@v/One.vue'),
    meta:{
      title:'One',
      roles:['admin']
    },
    //定義one的二級(jí)路由
    children:[
      {
        path:'nj',
        name:'nj',
        component:()=>import('../views/city/Nj.vue'),
        meta:{
          title:'二級(jí)路由'
        }
      },
      {
        path:'sz',
        name:'sz',
        component:()=>import('../views/city/Sz.vue'),
        meta:{
          title:'二級(jí)路由'
        }
      }
    ]
  },

路由懶加載:提高首屏加載性能

component: ()=>import('@v/Home.vue'),

配置路由模式:1.hash模式 2.history模式
hash模式烤蜕,使用的是錨鏈接的原理實(shí)現(xiàn)路由的跳轉(zhuǎn),這種方式兼容性非常好迹冤;缺點(diǎn)是路徑帶有#號(hào)讽营,不夠美觀。
history模式泡徙,使用的是瀏覽器中內(nèi)置的history對(duì)象實(shí)現(xiàn)路由的跳轉(zhuǎn)橱鹏,這種方式不兼容老版本的瀏覽器,刷新后會(huì)丟失路由信息堪藐。

路由前置守衛(wèi)

router.beforeEach((to,from,next)=>{
  //獲取瀏覽器的緩存中莉兰,保存的當(dāng)前登錄用戶(hù)的權(quán)限
  let role = sessionStorage.getItem('role')
  //驗(yàn)證用戶(hù)訪問(wèn)權(quán)限
  if(to.meta.roles && to.meta.roles.includes(role)){
    // next()方法,表示繼續(xù)向下執(zhí)行
    next()
  }

路由后置守衛(wèi)

router.afterEach((to,from)=>{
  // 配置當(dāng)前頁(yè)的標(biāo)題
  document.title = to.meta.title
})

路由緩存
<keep-alive></keep-alive>組件是用來(lái)緩存路由組件的礁竞,在默認(rèn)情況下會(huì)緩存打開(kāi)所有組件糖荒。用法:

<keep-alive :include="['newsGn','newsGj']">
    <router-view></router-view> 
</keep-alive>

:include是用來(lái)指定緩存指定的頁(yè)面名

路由的兩個(gè)特有的生命周期
1.激活狀態(tài)activated():打開(kāi)這個(gè)組件頁(yè)面
2.失活狀態(tài)deactivated():關(guān)閉這個(gè)組件頁(yè)面
當(dāng)路由組件采用緩存后,通常都會(huì)配合這兩個(gè)生命周期鉤子

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末模捂,一起剝皮案震驚了整個(gè)濱河市捶朵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌狂男,老刑警劉巖综看,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異岖食,居然都是意外死亡红碑,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)县耽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)句喷,“玉大人镣典,你說(shuō)我怎么就攤上這事⊥偾恚” “怎么了兄春?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)锡溯。 經(jīng)常有香客問(wèn)我赶舆,道長(zhǎng),這世上最難降的妖魔是什么祭饭? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任芜茵,我火速辦了婚禮,結(jié)果婚禮上倡蝙,老公的妹妹穿的比我還像新娘九串。我一直安慰自己,他們只是感情好寺鸥,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布猪钮。 她就那樣靜靜地躺著泉唁,像睡著了一般诡挂。 火紅的嫁衣襯著肌膚如雪荐开。 梳的紋絲不亂的頭發(fā)上衩藤,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音蜈漓,去河邊找鬼蹲堂。 笑死黍翎,一個(gè)胖子當(dāng)著我的面吹牛凉驻,可吹牛的內(nèi)容都是我干的腻要。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼沿侈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼闯第!你這毒婦竟也來(lái)了市栗?” 一聲冷哼從身側(cè)響起缀拭,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎填帽,沒(méi)想到半個(gè)月后蛛淋,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡篡腌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年褐荷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘹悼。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡叛甫,死狀恐怖层宫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情其监,我是刑警寧澤萌腿,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站抖苦,受9級(jí)特大地震影響毁菱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锌历,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一贮庞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧究西,春花似錦窗慎、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至商膊,卻和暖如春伏伐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背晕拆。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工藐翎, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人实幕。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓吝镣,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親昆庇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子末贾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

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