vue之路由(八)

一世澜、什么是路由?

網(wǎng)絡(luò)原理中姻几,路由指的是根據(jù)上一接口的數(shù)據(jù)包中的IP地址宜狐,查詢(xún)路由表轉(zhuǎn)發(fā)到另一個(gè)接口,它決定的是一個(gè)端到端的網(wǎng)絡(luò)路徑蛇捌。

web中抚恒,路由的概念也是類(lèi)似,根據(jù)URL來(lái)將請(qǐng)求分配到指定的一個(gè)'端'络拌。(即根據(jù)網(wǎng)址找到能處理這個(gè)URL的程序或模塊)俭驮。

使用vue.js構(gòu)建項(xiàng)目,vue.js本身就可以通過(guò)組合組件來(lái)組成應(yīng)用程序;當(dāng)引入vue-router后混萝,我們需要處理的是將組件(components)映射到路由(routes)遗遵,然后在需要的地方進(jìn)行使用渲染。
1.概念:路由其實(shí)就是指向的意思逸嘀,當(dāng)我們點(diǎn)擊home按鈕時(shí)车要,頁(yè)面中就要顯示home的內(nèi)容,點(diǎn)擊login按鈕時(shí)崭倘,頁(yè)面就顯示login的內(nèi)容翼岁,也可以說(shuō)是一種映射,所有在頁(yè)面上有兩個(gè)部分司光,一個(gè)是點(diǎn)擊部分琅坡,一個(gè)是顯示部分。
2.路由中有三個(gè)基本的概念残家,route,routes,router榆俺。
<1>route:它是一個(gè)路由,是一個(gè)單數(shù)坞淮,點(diǎn)擊Home按鈕->Home內(nèi)容
<2>routes:它是一組路由茴晋,把每一條路由組合起來(lái),串接起來(lái)形成一個(gè)數(shù)組碾盐;[{home按鈕=>home內(nèi)容}晃跺,{about按鈕=>about內(nèi)容}]
<3>router:它是一個(gè)機(jī)制揩局,相當(dāng)于一個(gè)管理者毫玖,來(lái)管理所有路由;
<4>客戶(hù)端中的路由原理:實(shí)際上就是dom 元素的顯示和隱藏凌盯。當(dāng)頁(yè)面中顯示home 內(nèi)容的時(shí)候付枫,about 中的內(nèi)容全部隱藏,反之也是一樣驰怎〔玻客戶(hù)端路由有兩種實(shí)現(xiàn)方式:基于hash 和基于html5 history api.

二、基本使用

<1>下載:

npm   install  vue-router --save

<2>引用:在router下面的index.js中

//index.js
import Vue from "vue"
import VueRouter from "vue-router"
Vue.use(VueRouter)
//創(chuàng)建路由對(duì)象
export default new VueRouter({
})

<3>路由跳轉(zhuǎn)方式:
router-link
to
幫助我們生成a標(biāo)簽的href
錨點(diǎn)值代碼維護(hù)不方便县忌,如果需要改變錨點(diǎn)值名稱(chēng)
則需要改變 [使用次數(shù) + 1(配置規(guī)則)] 個(gè)地方的代碼
3.1靜態(tài)路由跳轉(zhuǎn)

<router-link to="/">首頁(yè)</router-link>

3.2動(dòng)態(tài)路由跳轉(zhuǎn)

<router-link :to='{path:"/"}'>首頁(yè)</router-link>

3.3編程式導(dǎo)航

this.$router.push({path:"/"})

<4>命名路由

1:給路由對(duì)象一個(gè)名稱(chēng) { name:'home',path:'/home',component:Home}
2:在router-link的to屬性中描述這個(gè)規(guī)則
<router-link :to="{name:'home'}>首頁(yè)</router-link>"
通過(guò)名稱(chēng)找路由對(duì)象掂榔,獲取其path,生成自己的href
極大的降低維護(hù)成本症杏,錨點(diǎn)值改變只用在main.js中改變path屬性即可

<5>嵌套路由

import Vue from "vue"
import VueRouter from "vue-router"
import Tran from "../components/transition.vue"
import TranOne from "../components/transitionone.vue"
import About from "../components/about.vue"
import First from "../components/aboutfirst.vue"
import Two from "../components/abouttwo.vue"
Vue.use(VueRouter)
export default new VueRouter({
   mode:"history",
   routes:[
     {
       path:"/",
       component:Tran,
       name:"index",
     },{
       path:"/one",
       name:"one",
       component:TranOne
     },{
       path:"/about",
       name:"about",
       component:About,
       children:[
         {
           path:"/about/first",
           component:First
         },{
           path:"/about/two",
           component:Two
         }
       ]
     }
     }
   ]
})

<6>路由重定向和別名

//redirect   alias
export default new VueRouter({
   mode:"history",
   routes:[
     {
       path:"/",
       component:Tran,
       name:"index",
       redirect:"/about",
       alias:"/index"
     },{
        path:"/about",
        component:About
    }
})

<7>路由跳轉(zhuǎn)模式

//  hash      histroy(html5)

<8>路由導(dǎo)航首位
分類(lèi):
全局導(dǎo)航守衛(wèi):

全局前置導(dǎo)航守衛(wèi)
router.beforeEach((to,from,next)=>{
//to   去向的目標(biāo)對(duì)象
//form  來(lái)自的對(duì)象
//next  繼續(xù)執(zhí)行后續(xù)代碼.必須執(zhí)行next
})
全局后置導(dǎo)航守衛(wèi)
router.afterEach((to,from)=>{
})

路由獨(dú)享守衛(wèi)

export default new VueRouter({
   mode:"history",
   routes:[
     {
       path:"/",
       component:Tran,
       name:"index"
     },{
        path:"/about",
        component:About,
      //路由獨(dú)享守衛(wèi)
        beforeEnter:()=>{
         
        }
    }

組件內(nèi)的導(dǎo)航守衛(wèi)

<script>
export default {
     name:"",
     data(){
        return {
        }
     },
     beforeRouteEnter(to,from,next){
       //進(jìn)入組件時(shí)調(diào)用
     },
     beforeRouteUpdate(to,from,next){
       // 在當(dāng)前路由改變装获,但是該組件被復(fù)用時(shí)調(diào)用
      // 舉例來(lái)說(shuō),對(duì)于一個(gè)帶有動(dòng)態(tài)參數(shù)的路徑 /foo/:id厉颤,在 /foo/1 和 /foo/2 之間跳轉(zhuǎn)的時(shí)候穴豫,
     // 由于會(huì)渲染同樣的 Foo 組件,因此組件實(shí)例會(huì)被復(fù)用逼友。而這個(gè)鉤子就會(huì)在這個(gè)情況下被調(diào)用精肃。
     // 可以訪問(wèn)組件實(shí)例 `this`
     },
     beforeRouteleave(to,from,next){
       //離開(kāi)組件時(shí)調(diào)用
     }
}
</script>

后續(xù)會(huì)繼續(xù)完善剩下內(nèi)容,如果感覺(jué)有用,請(qǐng)留下寶貴的一個(gè)贊!!!!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末秤涩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子司抱,更是在濱河造成了極大的恐慌筐眷,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件习柠,死亡現(xiàn)場(chǎng)離奇詭異浊竟,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)津畸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)振定,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人肉拓,你說(shuō)我怎么就攤上這事后频。” “怎么了暖途?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵卑惜,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我驻售,道長(zhǎng)露久,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任欺栗,我火速辦了婚禮毫痕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘迟几。我一直安慰自己消请,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布类腮。 她就那樣靜靜地躺著臊泰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蚜枢。 梳的紋絲不亂的頭發(fā)上缸逃,一...
    開(kāi)封第一講書(shū)人閱讀 49,071評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音厂抽,去河邊找鬼需频。 笑死,一個(gè)胖子當(dāng)著我的面吹牛修肠,可吹牛的內(nèi)容都是我干的贺辰。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼饲化!你這毒婦竟也來(lái)了莽鸭?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤吃靠,失蹤者是張志新(化名)和其女友劉穎硫眨,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體巢块,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡礁阁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了族奢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姥闭。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖越走,靈堂內(nèi)的尸體忽然破棺而出棚品,到底是詐尸還是另有隱情,我是刑警寧澤廊敌,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布铜跑,位于F島的核電站,受9級(jí)特大地震影響骡澈,放射性物質(zhì)發(fā)生泄漏锅纺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一肋殴、第九天 我趴在偏房一處隱蔽的房頂上張望囤锉。 院中可真熱鬧,春花似錦疼电、人聲如沸嚼锄。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至拧粪,卻和暖如春修陡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背可霎。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工魄鸦, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人癣朗。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓拾因,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绢记,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

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

  • SPA單頁(yè)應(yīng)用 傳統(tǒng)的項(xiàng)目大多使用多頁(yè)面結(jié)構(gòu),需要切換內(nèi)容的時(shí)候我們往往會(huì)進(jìn)行單個(gè)html文件的跳轉(zhuǎn)签孔,這個(gè)時(shí)候受網(wǎng)...
    視覺(jué)派Pie閱讀 11,810評(píng)論 1 55
  • 路由中有三個(gè)基本的概念 route, routes, router 1叉讥, route,它是一條路由饥追,由這個(gè)英文單詞...
    回到唐朝做IT閱讀 1,040評(píng)論 0 1
  • 路由图仓,其實(shí)就是指向的意思,當(dāng)我點(diǎn)擊頁(yè)面上的home按鈕時(shí)但绕,頁(yè)面中就要顯示home的內(nèi)容透绩,如果點(diǎn)擊頁(yè)面上的about...
    六月太陽(yáng)花閱讀 570評(píng)論 0 3
  • 一、vue-router實(shí)現(xiàn)原理 SPA(single page application):單一頁(yè)面應(yīng)用程序壁熄,只有...
    walycode閱讀 1,042評(píng)論 1 3
  • 1路由帚豪,其實(shí)就是指向的意思,當(dāng)我點(diǎn)擊頁(yè)面上的home按鈕時(shí)草丧,頁(yè)面中就要顯示home的內(nèi)容狸臣,如果點(diǎn)擊頁(yè)面上的abou...
    你好陌生人丶閱讀 1,613評(píng)論 0 6