初識:Vue 路由(router)是個啥

本文面向純粹的vue路由小白安吁,采用 head first的文風(fēng),重點(diǎn)在于解釋清楚vue路由的基本形象滚躯,傳達(dá)路由的設(shè)計概念雏门。

注意,這不是一篇“參考手冊”掸掏,而是一篇幫助理解的文章茁影。


要學(xué)習(xí)Vue路由,首先要明白它是干嘛的丧凤。

如果你看了菜鳥教程的解釋募闲,它是這樣的:

Vue 路由允許我們通過不同的 URL 訪問不同的內(nèi)容。通過 Vue 可以實(shí)現(xiàn)多視圖的單頁Web應(yīng)用(single page web application愿待,SPA)浩螺。

正常人(比如我)該有的反應(yīng):這說的啥玩意?

后來你才會知道它要表達(dá)的意思是仍侥,點(diǎn)擊一個鏈接<a>:

正常操作:等待服務(wù)器響應(yīng)要出,刷新頁面更新內(nèi)容。

vue路由操作:甚至不用理會服務(wù)器农渊,秒更新內(nèi)容患蹂。

所以說,Vue路由可以通過交互工具(比如按鈕)砸紊,在網(wǎng)站的不同地址上跳來跳去传于,但就是不用等待服務(wù)器!

沒有等待響應(yīng)的過程醉顽,用戶體驗(yàn)一級棒沼溜。

讀到這里你就應(yīng)該大呼:這不科學(xué)!沒有服務(wù)器的新數(shù)據(jù)游添,瀏覽器刷新個啥玩意系草!

說得好,這正是vue路由的神奇所在唆涝!

接下來類比餐廳點(diǎn)餐過程找都,開始路由的學(xué)習(xí)。

我們訪問一個網(wǎng)站石抡,就好比去一家餐廳吃飯:

要得到菜品檐嚣,就得在菜單里點(diǎn)來點(diǎn)去;要得到頁面,就得在網(wǎng)站地址上跳來跳去嚎京。

要點(diǎn)菜嗡贺,首先要有菜品;要跳地址鞍帝,首先要有目的地诫睬;

如果目的地是一個新地址的頁面,那么肯定要刷新頁面了帕涌,但這不是我們想看到的摄凡,那怎么辦呢?

辦法就是:讓它表面上是一個新地址蚓曼,暗地里是個早就下載完的組件亲澡!

結(jié)果:表面上看,地址變了纫版,頁面沒刷新但更新了床绪;實(shí)際上,就是換了個組件其弊。

所以我們先整個最簡單的菜品(組件)出來:


const tofu = { template: '<h1>ToFu</h1>' }

const water = { template: '<h1>water</h1>' }

代碼的意思是:我要聲明一個組件癞己,它叫<tofu >

template:模板,最終顯示的的HTML梭伐。好比菜單上的照片痹雅,<驢打滾>到底是個啥?一看圖片糊识,就是個米面糕點(diǎn)绩社;同理,<tofu >是個啥玩意技掏?一看template铃将,其實(shí)它就是:<h1>ToFu</h1>

這樣一個組件就OK啦项鬼。

下一個問題哑梳,你不認(rèn)識<驢打滾>,服務(wù)員當(dāng)然也不認(rèn)識绘盟,那么怎么辦呢鸠真?于是在用戶看不到的地方,老板(就是你)寫了個對應(yīng)表:

驢打滾 = 米面糕點(diǎn)龄毡,

魚香肉絲 = 豬肉蘿卜絲吠卷,

翡翠白玉湯 = 豆腐白菜

同理,Vue也需要個對應(yīng)表才能知道用戶要去的地址沦零,對應(yīng)啥組件祭隔。于是就有了路由規(guī)則:


const routes = [

{path: '/tofu', component: tofu},

{path: '/water', component: water}

]

path:瀏覽器端的地址路徑;

component: 對應(yīng)的組件路操;

OK疾渴,表面菜單和私下菜單都完成了千贯,現(xiàn)在只要找個熱情的服務(wù)員就可以開工了,在Vue中也是如此搞坝。但我們不要普通服務(wù)員(Vue實(shí)例)搔谴,我們要熱情的專門干這事的服務(wù)員(VueRouter實(shí)例):

創(chuàng)建VueRouter的 router 實(shí)例:


const router = new VueRouter({

routes // (縮寫)相當(dāng)于 routes: routes

})

routes ,等同于 routes:routes桩撮,意思是:把菜名對應(yīng)表拍服務(wù)員臉上交給他敦第。

萬事具備,只欠東風(fēng)店量。員工需要工作場所芜果,同理,router也需要工作工作場所融师。

HTML:


<div id="food_store">

</div>

id 是餐廳名字师幕,只有在該div內(nèi)服務(wù)員router才會為了薪資而工作。

服務(wù)員還沒去過你的餐廳呢诬滩,需要你帶它走一遭霹粥,同理,router 也不知道自己要在哪里干活疼鸟,需要掛載在Vue實(shí)例(工作場所)下:

const food_store = new Vue({

el: '#food_store',   //確認(rèn)餐廳名字

router   //把服務(wù)員丟到該餐廳

})

等同于:


const food_store = new Vue({

router   

}).$mount('#food_store')

OK后控,這樣一家前端餐廳的運(yùn)作機(jī)制就建成啦。

接下來就是顧客點(diǎn)餐部分空镜,即HTML中router的使用浩淘。

等一下,我們可是合法營業(yè)吴攒!要想開店得有相關(guān)部門批準(zhǔn)张抄,同理,要想招router干活洼怔,得引入相關(guān)Vue組件署惯。

在<head>中引入組件:


<head>

<script src="js/vue.min.js" ></script>

<script src="js/vue-router.js" ></script>

</head>

js是我的文件夾名稱,你們可以看著修改镣隶。

接下來极谊,上菜單,也就是選擇頁面安岂。該菜單由<router-link>組件來替代:


<div id="food_store">

        <router-link to="/tofu">豆腐</router-link>

        <router-link to="/water">水</router-link>

</div>

<router-link>: 使用我轻猖,表明你需要路由跳轉(zhuǎn)!

to屬性:我指定跳轉(zhuǎn)地址(菜名)域那。

恭喜你咙边,我們的服務(wù)員router對照了菜名表,拿到了正確的菜品,上菜败许!

等等友瘤,服務(wù)員似乎出現(xiàn)了一點(diǎn)小麻煩:我們?yōu)g覽器餐廳的位置是可以隨便坐的,你得告訴服務(wù)員你希望菜放哪張桌檐束。同理辫秧,你得告訴瀏覽器,得到的組件放哪里被丧。

這很簡單盟戏,方法是使用<router-view>:

<div id="food_store">

        <router-link to="/tofu">豆腐</router-link>

        <router-link to="/water">水</router-link>

        <router-view></router-view>

</div>

<router-view>:我是得到的新組件,把我放在任何合法的(在掛載點(diǎn)下的)甥桂,你希望我出現(xiàn)的位置柿究。

祝賀你!一家沒有等待上菜時間的瀏覽器餐廳從此就可以開始營運(yùn)啦黄选!

記得經(jīng)常寫信給我蝇摸,告訴我你的餐廳是否火爆營業(yè)!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末办陷,一起剝皮案震驚了整個濱河市貌夕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌民镜,老刑警劉巖啡专,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異制圈,居然都是意外死亡们童,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進(jìn)店門鲸鹦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來慧库,“玉大人,你說我怎么就攤上這事馋嗜∑氚澹” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵嵌戈,是天一觀的道長覆积。 經(jīng)常有香客問我听皿,道長熟呛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任尉姨,我火速辦了婚禮庵朝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己九府,他們只是感情好椎瘟,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著侄旬,像睡著了一般肺蔚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上儡羔,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天宣羊,我揣著相機(jī)與錄音,去河邊找鬼汰蜘。 笑死仇冯,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的族操。 我是一名探鬼主播苛坚,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼色难!你這毒婦竟也來了泼舱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤枷莉,失蹤者是張志新(化名)和其女友劉穎柠掂,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體依沮,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡涯贞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了危喉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宋渔。...
    茶點(diǎn)故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖辜限,靈堂內(nèi)的尸體忽然破棺而出皇拣,到底是詐尸還是另有隱情,我是刑警寧澤薄嫡,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布氧急,位于F島的核電站,受9級特大地震影響毫深,放射性物質(zhì)發(fā)生泄漏吩坝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一哑蔫、第九天 我趴在偏房一處隱蔽的房頂上張望钉寝。 院中可真熱鬧弧呐,春花似錦、人聲如沸嵌纲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逮走。三九已至鸠蚪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間师溅,已是汗流浹背邓嘹。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留险胰,地道東北人汹押。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像起便,于是被迫代替她去往敵國和親棚贾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評論 2 351

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