Vue-router

Vue-router入門

技術(shù)胖原文鏈接

vue-router是一個(gè)插件包,所以我們還是需要用npm來進(jìn)行安裝的辜限。打開命令行工具樱报,進(jìn)入你的項(xiàng)目目錄,輸入下面命令泻拦。

npm install vue-router --save-dev

importVuefrom'vue'//引入Vue

importRouterfrom'vue-router'//引入vue-router

importHellofrom'@/components/Hello'//引入根目錄下的Hello.vue組件

Vue.use(Router)//Vue全局使用Router

exportdefaultnewRouter({

? ??routes: [//配置路由襟锐,這里是個(gè)數(shù)組

? ??????{

? ??????????//每一個(gè)鏈接都是一個(gè)對(duì)象path:'/',

? ??????????//鏈接路徑name:'Hello',

? ??????????//路由名稱,component: Hello//對(duì)應(yīng)的組件模板

? ??????}?

?? ??]

})


**常用語法**


<router-link to="/">[顯示字段]</router-link>

<p>{{ $route.name}}</p>

<router-link :to="{name:xxx,params:{key:value}}">valueString</router-link>

{{$route.params.username}}

<router-view ></router-view>

<router-view name="left"></router-view>

{ path: '/', components: { default:Hello, left:Hi1, right:Hi2 } }

{ path:'/params/:newsId/:newsTitle', component:Params }

path:'/params/:newsId(\\d+)/:newsTitle',

{ path: '/hi1',component: Hi1,alias:'/jspang' } 別名

**切換效果 **

想讓路由有過渡動(dòng)畫娄柳,需要在<router-view>標(biāo)簽的外部添加<transition>標(biāo)簽寓辱,標(biāo)簽還需要一個(gè)name屬性。

<transition name="fade"> <router-view ></router-view> </transition>


** css過渡類名 **?

組件過渡過程中赤拒,會(huì)有四個(gè)CSS類名進(jìn)行切換秫筏,這四個(gè)類名與transition的name屬性有關(guān),比如name=”fade”,會(huì)有如下四個(gè)CSS類名:

fade-enter:進(jìn)入過渡的開始狀態(tài)挎挖,元素被插入時(shí)生效这敬,只應(yīng)用一幀后立刻刪除。

fade-enter-active:進(jìn)入過渡的結(jié)束狀態(tài)蕉朵,元素被插入時(shí)就生效崔涂,在過渡過程完成后移除。

fade-leave:離開過渡的開始狀態(tài)始衅,元素被刪除時(shí)觸發(fā)冷蚂,只應(yīng)用一幀后立刻刪除。

fade-leave-active:離開過渡的結(jié)束狀態(tài)汛闸,元素被刪除時(shí)生效蝙茶,離開過渡完成后被刪除。

從上面四個(gè)類名可以看出诸老,fade-enter-active和fade-leave-active在整個(gè)進(jìn)入或離開過程中都有效隆夯,所以CSS的transition屬性在這兩個(gè)類下進(jìn)行設(shè)置。

**過渡模式mode**

in-out:新元素先進(jìn)入過渡别伏,完成之后當(dāng)前元素過渡離開吮廉。

out-in:當(dāng)前元素先進(jìn)行過渡離開,離開完成后新元素過渡進(jìn)入畸肆。

**mode的兩個(gè)值**

histroy:當(dāng)你使用?history?模式時(shí)宦芦,URL 就像正常的 url,例如?http://jsapng.com/lms/轴脐,也好看调卑!

hash:默認(rèn)’hash’值,但是hash看起來就像無意義的字符排列大咱,不太好看也不符合我們一般的網(wǎng)址瀏覽習(xí)慣恬涧。

**404頁面**

{ path:'*', component:Error }

** 路由配置文件中的鉤子函數(shù) **

我們可以直接在路由配置文件(/src/router/index.js)中寫鉤子函數(shù)。但是在路由文件中我們只能寫一個(gè)beforeEnter,就是在進(jìn)入此路由配置時(shí)碴巾。先來看一段具體的代碼:

{? //進(jìn)入路由

????????path:'/params/:newsId(\\d+)/:newsTitle',

????????component:Params,

????????beforeEnter:(to,from,next)=>{

????????????????console.log('我進(jìn)入了params模板');

????????????????console.log(to);

????????????????console.log(from);

????????????????next();? ?執(zhí)行跳轉(zhuǎn)

? ? ? ? ? ? ? ? next(false);? 不跳轉(zhuǎn)? ?

? ??????????????next({path:‘/’}); 跳轉(zhuǎn)到首頁

? ? ? ? }

},

? ??????三個(gè)參數(shù):

????????????????to:路由將要跳轉(zhuǎn)的路徑信息溯捆,信息是包含在對(duì)像里邊的。

????????????????from:路徑跳轉(zhuǎn)前的路徑信息厦瓢,也是一個(gè)對(duì)象的形式提揍。

????????????????next:路由的控制參數(shù)啤月,常用的有next(true)和next(false)。

**模板路由狗子函數(shù)**

export default {

? name: 'params',

? data () {

? ? return {

? ? ? msg: 'params page'? ? }

? },

? beforeRouteEnter:(to,from,next)=>{

? ? console.log("準(zhǔn)備進(jìn)入路由模板");

? ? next();

? },

? beforeRouteLeave: (to,from,next)=> {

? ? console.log("準(zhǔn)備離開路由模板");

? ? next();

? }

}

**編程式導(dǎo)航**

?this.$router.go(-1) 和 this.$router.go(1)?

這兩個(gè)編程式導(dǎo)航的意思是后退和前進(jìn)劳跃,功能跟我們?yōu)g覽器上的后退和前進(jìn)按鈕一樣谎仲,這在業(yè)務(wù)邏輯中經(jīng)常用到。比如條件不滿足時(shí)刨仑,我們需要后退郑诺。

router.go(-1)代表著后退,我們可以讓我們的導(dǎo)航進(jìn)行后退杉武,并且我們的地址欄也是有所變化的辙诞。

router.go(1):代表著前進(jìn),用法和后退一樣轻抱,我在這里就不重復(fù)碼字了(碼字辛苦希望大家理解)倘要。

this.$router.push(‘/xxx ‘)

這個(gè)編程式導(dǎo)航都作用就是跳轉(zhuǎn),比如我們判斷用戶名和密碼正確時(shí)十拣,需要跳轉(zhuǎn)到用戶中心頁面或者首頁封拧,都用到這個(gè)編程的方法來操作路由。


this.$router.push傳遞參數(shù)有2種方式:

傳遞參數(shù) – this.$router.push({path: ’ 路由 ', query: {key: value}})

參數(shù)取值 – this.$route.query.key

使用這種方式夭问,傳遞參數(shù)會(huì)拼接在路由后面泽西,出現(xiàn)在地址欄.

傳遞參數(shù) – this.$router.push({name: ’ 路由的name ',?params: {key: value}})

參數(shù)取值 – this.$route.params.key

使用這種方式,參數(shù)不會(huì)拼接在路由后面缰趋,地址欄上看不到參數(shù)…

動(dòng)態(tài)路由也是傳遞params的捧杉,所以在 this.$router.push() 方法中 path不能和params一起使用,否則params將無效秘血。需要用name來指定頁面味抖。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市灰粮,隨后出現(xiàn)的幾起案子仔涩,更是在濱河造成了極大的恐慌,老刑警劉巖粘舟,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熔脂,死亡現(xiàn)場離奇詭異,居然都是意外死亡柑肴,警方通過查閱死者的電腦和手機(jī)霞揉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晰骑,“玉大人适秩,你說我怎么就攤上這事。” “怎么了秽荞?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵骤公,是天一觀的道長。 經(jīng)常有香客問我蚂会,道長,這世上最難降的妖魔是什么耗式? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任胁住,我火速辦了婚禮,結(jié)果婚禮上刊咳,老公的妹妹穿的比我還像新娘彪见。我一直安慰自己,他們只是感情好娱挨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布余指。 她就那樣靜靜地躺著,像睡著了一般跷坝。 火紅的嫁衣襯著肌膚如雪酵镜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天柴钻,我揣著相機(jī)與錄音淮韭,去河邊找鬼。 笑死贴届,一個(gè)胖子當(dāng)著我的面吹牛靠粪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播毫蚓,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼占键,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了元潘?” 一聲冷哼從身側(cè)響起畔乙,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎翩概,沒想到半個(gè)月后啸澡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡氮帐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年嗅虏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片上沐。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡皮服,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情龄广,我是刑警寧澤硫眯,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站择同,受9級(jí)特大地震影響两入,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜敲才,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一裹纳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧紧武,春花似錦剃氧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至妥箕,卻和暖如春滥酥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背畦幢。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來泰國打工恨狈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人呛讲。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓禾怠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親贝搁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子吗氏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

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