一篇文章帶你了解vue路由
概念
路由的本質(zhì)就是一種對(duì)應(yīng)關(guān)系,比如說(shuō)我們?cè)趗rl地址中輸入我們要訪(fǎng)問(wèn)的url地址之后,瀏覽器要去請(qǐng)求這個(gè)url地址對(duì)應(yīng)的資源。
那么url地址和真實(shí)的資源之間就有一種對(duì)應(yīng)的關(guān)系,就是路由。
路由分為前端路由和后端路由
1).后端路由是由服務(wù)器端進(jìn)行實(shí)現(xiàn),并完成資源的分發(fā)
后端路由性能相對(duì)前端路由來(lái)說(shuō)較低,所以,我們接下來(lái)主要學(xué)習(xí)的是前端路由
2).前端路由是依靠hash值(錨鏈接)的變化進(jìn)行實(shí)現(xiàn)
前端路由的基本概念:根據(jù)不同的事件來(lái)顯示不同的頁(yè)面內(nèi)容,即事件與事件處理函數(shù)之間的對(duì)應(yīng)關(guān)系
前端路由主要做的事情就是監(jiān)聽(tīng)事件并分發(fā)執(zhí)行事件處理函數(shù)
Vue Router
簡(jiǎn)介
它是一個(gè)Vue.js官方提供的路由管理器。是一個(gè)功能更加強(qiáng)大的前端路由器,推薦使用。
Vue Router和Vue.js非常契合,可以一起方便的實(shí)現(xiàn)SPA(single page web application,單頁(yè)應(yīng)用程序)應(yīng)用程序的開(kāi)發(fā)。
Vue Router依賴(lài)于Vue,所以需要先引入Vue,再引入Vue Router
Vue Router的特性
- 支持H5歷史模式或者h(yuǎn)ash模式
- 支持嵌套路由
- 支持路由參數(shù)
- 支持編程式路由
- 支持命名路由
- 支持路由導(dǎo)航守衛(wèi)
- 支持路由過(guò)渡動(dòng)畫(huà)特效
- 支持路由懶加載
- 支持路由滾動(dòng)行為
Vue Router的使用步驟
1.導(dǎo)入js文件
<script src="lib/vue_2.5.22.js"></script> <script src="lib/vue-router_3.0.2.js"></script>
2.添加路由鏈接:是路由中提供的標(biāo)簽,默認(rèn)會(huì)被渲染為a標(biāo)簽,to屬性默認(rèn)被渲染為href屬性,to屬性的值會(huì)被渲染為#開(kāi)頭的hash地址
<router-link to="/user">User</router-link>
3.添加路由填充位(路由占位符)
<router-view></router-view>
4.定義路由組件
var User = { template:"<div>This is User</div>" }
5.配置路由規(guī)則并創(chuàng)建路由實(shí)例
var myRouter = new VueRouter({
//routes是路由規(guī)則數(shù)組
routes:[
//每一個(gè)路由規(guī)則都是一個(gè)對(duì)象,對(duì)象中至少包含path和component兩個(gè)屬性
//path表示 路由匹配的hash地址,component表示路由規(guī)則對(duì)應(yīng)要展示的組件對(duì)象
{path:"/user",component:User},
{path:"/login",component:Login}
]
})
6.將路由掛載到Vue實(shí)例中
new Vue({ el:"#app", //通過(guò)router屬性?huà)燧d路由對(duì)象 router:myRouter})new Vue({
el:"#app",
//通過(guò)router屬性?huà)燧d路由對(duì)象
router:myRouter
})
補(bǔ)充:
路由重定向:可以通過(guò)路由重定向?yàn)轫?yè)面設(shè)置默認(rèn)展示的組件
在路由規(guī)則中添加一條路由規(guī)則即可,如
var myRouter = new VueRouter({
//routes是路由規(guī)則數(shù)組
routes: [
//path設(shè)置為/表示頁(yè)面最初始的地址 / ,redirect表示要被重定向的新地址,設(shè)置為一個(gè)路由即可
{ path:"/",redirect:"/user"},
{ path: "/user", component: User },
{ path: "/login", component: Login }
]
})
分類(lèi)
嵌套路由
嵌套路由最關(guān)鍵的代碼在于理解子級(jí)路由的概念:
比如我們有一個(gè)/login的路由
那么/login下面還可以添加子級(jí)路由,如:
/login/account
/login/phone

動(dòng)態(tài)路由

補(bǔ)充:
1.我們可以通過(guò)props來(lái)接收參數(shù)

2、還有一種情況,我們可以將props設(shè)置為對(duì)象,那么就直接將對(duì)象的數(shù)據(jù)傳遞給組件進(jìn)行使用

3、如果想要獲取傳遞的參數(shù)值還想要獲取傳遞的對(duì)象數(shù)據(jù),那么props應(yīng)該設(shè)置為函數(shù)形式。

命名路由
給路由取別名

編程式導(dǎo)航
調(diào)用js的api方法實(shí)現(xiàn)導(dǎo)航

總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Vue數(shù)據(jù)更新頁(yè)面卻沒(méi)有更新的幾種情況以及解決方法
我們?cè)陂_(kāi)發(fā)過(guò)程中會(huì)碰到數(shù)據(jù)更新,但是頁(yè)面卻沒(méi)有更新的情況,下面這篇文章主要給大家介紹了關(guān)于Vue數(shù)據(jù)更新頁(yè)面卻沒(méi)有更新的幾種情況以及解決方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
Vue項(xiàng)目啟動(dòng)后如何在瀏覽器自動(dòng)打開(kāi)
這篇文章主要介紹了Vue項(xiàng)目啟動(dòng)后如何在瀏覽器自動(dòng)打開(kāi)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
Vue-cli 如何將px轉(zhuǎn)化為rem適配移動(dòng)端
這篇文章主要介紹了Vue-cli 如何將px轉(zhuǎn)化為rem適配移動(dòng)端,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-07-07
electron+vue?實(shí)現(xiàn)靜默打印功能
這篇文章主要介紹了electron+vue?實(shí)現(xiàn)靜默打印功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
詳解vue修改elementUI的分頁(yè)組件視圖沒(méi)更新問(wèn)題
這篇文章主要介紹了詳解vue修改elementUI的分頁(yè)組件視圖沒(méi)更新問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Vue draggable實(shí)現(xiàn)從左到右拖拽功能
這篇文章主要為大家詳細(xì)介紹了Vue draggable實(shí)現(xiàn)從左到右拖拽功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
關(guān)于在vue2中使用weixin-js-sdk的詳細(xì)步驟
公司最近有微信公眾號(hào)的需求,那么微信登錄授權(quán)和如何使用WX-JSSDk實(shí)現(xiàn)分享等等肯定是最頭疼的問(wèn)題,這篇文章主要給大家介紹了關(guān)于在vue2中使用weixin-js-sdk的詳細(xì)步驟,需要的朋友可以參考下2024-07-07
vue路由導(dǎo)航守衛(wèi)和請(qǐng)求攔截以及基于node的token認(rèn)證的方法
這篇文章主要介紹了vue路由導(dǎo)航守衛(wèi)和請(qǐng)求攔截以及基于node的token認(rèn)證的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04

