2019-04-30 路由概述

簡(jiǎn)介

前端路由簡(jiǎn)單的說(shuō)辆沦,就是業(yè)內(nèi)的跳轉(zhuǎn)

進(jìn)行不同組件之間的切換

使用

  1. 導(dǎo)入包

  2. 創(chuàng)建一個(gè)路由對(duì)象友瘤,當(dāng)導(dǎo)入包之后权烧,就有一個(gè)路由的構(gòu)造函數(shù)眯亦,VueRouter,在創(chuàng)建路由對(duì)象時(shí)般码,可以傳入一個(gè)配置對(duì)象妻率,這個(gè)匹配對(duì)象中的route表示(路由匹配規(guī)則)的意思

    1. 路由匹配規(guī)則,每個(gè)路由規(guī)則都是一個(gè)對(duì)象板祝,這個(gè)規(guī)則對(duì)象宫静,身上都必須偶兩個(gè)屬性

      1. path:表示監(jiān)聽(tīng)那個(gè)路由連接地址

      2. component:表示如果路由是起那么匹配到的path,則暫時(shí)component屬性對(duì)應(yīng)的那個(gè)組件券时,這個(gè)地方必須是一個(gè)組件的對(duì)象孤里,而不是組件的引用名稱(chēng)

        例如使用var login={

        ? template:""

        }這個(gè)login是對(duì)象

        Vue.component('login',{

        ? template:''

        }),這個(gè)login就是一個(gè)名稱(chēng)

  3. 將路由規(guī)則對(duì)象注冊(cè)到Vue實(shí)例上橘洞,用來(lái)監(jiān)聽(tīng)URL地址 捌袜,然后展示對(duì)應(yīng)的組件

也就是說(shuō)

  1. 導(dǎo)包
  2. 創(chuàng)建路由規(guī)則對(duì)象
  3. 將路由規(guī)則對(duì)象注冊(cè)到Vue實(shí)例中
  4. 綁定到對(duì)應(yīng)的vm實(shí)例上
  5. 將router-view注冊(cè)到頁(yè)面中

注意,第二步炸枣,創(chuàng)建路由對(duì)象時(shí)虏等,其中的路由規(guī)則數(shù)組是“routes”

第四步,在將路由規(guī)則綁定到vm實(shí)例時(shí)抛虏,是router

  1. <script src="../../js/vue-router.js"></script>
    
  2. var routerObi=new VueRouter({
        routes:[
            {path:'',component:},
        ]
    });
    

    注意博其,path是地址欄顯示的數(shù)據(jù),component是組件對(duì)應(yīng)的對(duì)象迂猴,不是字符串

  3. OK

  4. router:routerObj
    
  5. <router-view></router-view>
    

注意Vue中的路由是基于hash的慕淡,所以對(duì)它的調(diào)用的路由路徑前面需要加上“#/XXX”

<a href="#/login">登錄</a>
<a href="#/register">注冊(cè)</a>

但是不推薦使用a連接的方式進(jìn)行跳轉(zhuǎn),Vue封裝了一個(gè)自定義的組件沸毁,默認(rèn)渲染一個(gè)a標(biāo)簽峰髓,但是可以通過(guò)tag屬性傻寂,傳入標(biāo)簽的值來(lái)渲染別的標(biāo)簽

<router-link to="/login">登錄</router-link>
<router-link to="/register">注冊(cè)</router-link>

但是需要注意的是這個(gè)標(biāo)簽需要在vue對(duì)應(yīng)實(shí)例標(biāo)明的區(qū)域使用

重定向

也就是網(wǎng)頁(yè)默認(rèn)的url地址欄中的后綴,為了使一開(kāi)始有一個(gè)固定的地址對(duì)應(yīng)的組件携兵,所以可以加上一個(gè)默認(rèn)情況下的重定向?qū)傩约碴诼酚梢?guī)則中加上一個(gè)規(guī)則

{path:'/',redirect:'/login'}

這樣就可以值初始化的時(shí)候默認(rèn)進(jìn)入login的組件,并且頁(yè)面顯示地址欄也是對(duì)應(yīng)的path

選中高亮

對(duì)于router有一個(gè).router-link-active徐紧,當(dāng)選中一個(gè)路由時(shí)静檬,就會(huì)默認(rèn)給該路由的組件中添加上這個(gè)類(lèi),所以并级,我們只用給這個(gè)類(lèi)添加一些樣式拂檩,就可以實(shí)現(xiàn)點(diǎn)擊高亮或者其他的樣式

<style>
        .router-link-active{
            font-size:80px;
        }
</style>

可以通過(guò)在創(chuàng)建路由對(duì)象時(shí),在routes同級(jí)修改linkActiveClass屬性值來(lái)修改使用哪一個(gè)類(lèi)可以使選中高亮

var routerObj=new VueRouter({
    routes:[
        {path:'/',redirect:'/login'},
        {path:'/login',component:login},
        {path:'/register',component:register},
    ],
    linkActiveClass:'myRouterActive'
});

路由添加動(dòng)畫(huà)

還是可以直接包裹在transition標(biāo)簽中

<transition enter-active-class="animated bounce">
    <router-view></router-view>
</transition>


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../../js/vue.js"></script>
    <script src="../../js/vue-router.js"></script>
    <style>
        .myRouterActive {
            font-size: 80px;
        }
    </style>
    <link rel="stylesheet" href="../../css/animate.css">
</head>
<body>


<div id="app">
    <router-link to="/login">登錄</router-link>
    <router-link to="/register">注冊(cè)</router-link>
    <transition enter-active-class="animated bounce">
        <router-view></router-view>
    </transition>


</div>

<script>
    var login = {
        template: '<h1>登錄組件</h1>'
    }
    var register = {
        template: '<h1>注冊(cè)組件</h1>'
    }
    var routerObj = new VueRouter({
        routes: [
            {path: '/', redirect: '/login'},
            {path: '/login', component: login},
            {path: '/register', component: register},
        ],
        linkActiveClass: 'myRouterActive'
    });
    var vm = new Vue({
        el: "#app",
        data: {},
        router: routerObj
    })
</script>
</body>
</html>

路由點(diǎn)擊觸發(fā)切換頁(yè)面的原理是:

點(diǎn)擊按鈕觸發(fā)地址欄修改成XXX#/XXX嘲碧,地址的修改觸發(fā)路由稻励,讓路有監(jiān)聽(tīng)到,是路由進(jìn)行路由匹配愈涩,看路由的[]中有沒(méi)有對(duì)應(yīng)的path望抽,如果有,就獲取對(duì)應(yīng)的component值指向?qū)?yīng)的組件履婉,從而顯示其對(duì)應(yīng)的組件信息

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末煤篙,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子毁腿,更是在濱河造成了極大的恐慌舰蟆,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狸棍,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡味悄,警方通過(guò)查閱死者的電腦和手機(jī)草戈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)侍瑟,“玉大人唐片,你說(shuō)我怎么就攤上這事≌茄眨” “怎么了费韭?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)庭瑰。 經(jīng)常有香客問(wèn)我星持,道長(zhǎng),這世上最難降的妖魔是什么弹灭? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任督暂,我火速辦了婚禮揪垄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逻翁。我一直安慰自己饥努,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布八回。 她就那樣靜靜地躺著酷愧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缠诅。 梳的紋絲不亂的頭發(fā)上溶浴,一...
    開(kāi)封第一講書(shū)人閱讀 51,443評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音滴铅,去河邊找鬼戳葵。 笑死,一個(gè)胖子當(dāng)著我的面吹牛汉匙,可吹牛的內(nèi)容都是我干的拱烁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼噩翠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼戏自!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起伤锚,我...
    開(kāi)封第一講書(shū)人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤擅笔,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后屯援,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體猛们,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年狞洋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了弯淘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吉懊,死狀恐怖庐橙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情借嗽,我是刑警寧澤态鳖,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站恶导,受9級(jí)特大地震影響浆竭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一兆蕉、第九天 我趴在偏房一處隱蔽的房頂上張望羽戒。 院中可真熱鬧,春花似錦虎韵、人聲如沸易稠。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)驶社。三九已至,卻和暖如春测萎,著一層夾襖步出監(jiān)牢的瞬間亡电,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工硅瞧, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留份乒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓腕唧,卻偏偏與公主長(zhǎng)得像或辖,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子枣接,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354