vue學(xué)習(xí)之Vue-Router用法實(shí)例分析
本文實(shí)例講述了vue學(xué)習(xí)之Vue-Router用法。分享給大家供大家參考,具體如下:
Vue-router就像一個路由器,將組件(components)映射到路由(routes)后,通過點(diǎn)擊<router-link>它可以在<router-view>中將相應(yīng)的組件渲染出來。
1、使用vue-router的步驟
//1、創(chuàng)建路由組件
const Link1={template:'#link1'};
const Link2={template:'#link2'};
const Link3={template:'#link3'};
//2、定義路由映射
const routes=[
{
path:'/link1', //定義相對路徑
component:Link1, //定義頁面的組件
children:[
{
path:'intro', //子路由/link1/intro
component:{template:'#ariesIntro'},
name:'ariesIntro', //為路由命名
},
{
path:'feature',
component:{template:'#ariesFeature'},
},
{path:'/',redirect:'intro'}
]
},
{path:'/link2',component:Link2},
{path:'/link3',component:Link3},
{path:'/',redirect:'/link1'} //配置根路由,使其重定向到/link1
];
//3、創(chuàng)建router實(shí)例
const router = new VueRouter({
routes //縮寫,相當(dāng)于 routes: routes
});
// 4、 創(chuàng)建和掛載根實(shí)例。
const app = new Vue({
router
}).$mount('#app'); //掛載到id為app的div
注意:要設(shè)置根路由,頁面加載完成后默認(rèn)顯示根路由,否則將什么也不顯示。
在頁面中調(diào)用路由接口,<router-link> 默認(rèn)會被渲染成一個 `<a>` 標(biāo)簽,點(diǎn)擊后在<router-view>渲染指定模板
<div class="col-lg-offset-2 col-lg-2">
<!-- 使用 router-link 組件來導(dǎo)航. -->
<!-- 通過傳入 `to` 屬性指定鏈接. -->
<router-link class="list-group-item" :to="{name:'ariesIntro'}">白羊座</router-link>
<router-link class="list-group-item" to="/link2">處女座</router-link>
<router-link class="list-group-item" to="/link3">金牛座</router-link>
</div>
<div class="col-lg-6">
<div class="panel">
<div class="panel-body">
<!-- 路由出口,路由匹配到的組件將渲染在這里 -->
<router-view></router-view>
</div>
</div>
</div>
2、嵌套路由
通過每個路由內(nèi)的children數(shù)組屬性可以為每個路由再配置子路由,子路由的路徑是基于父路由目錄下的,默認(rèn)路徑會進(jìn)行疊加。例如上面再link1中添加intro與feature兩個子路由,在link1模板中使用兩個子路由:
<template id="link1">
<div>
<h3>白羊座</h3>
<ul class="nav nav-tabs">
<li class="active">
<router-link to="/link1/intro">簡介</router-link>
</li>
<li><router-link to="/link1/feature">特點(diǎn)</router-link></li>
</ul>
<div class="tab-content">
<router-view></router-view>
</div>
</div>
</template>
最終效果如圖:

3、動態(tài)路由
在路由路徑中綁定變量,使其根據(jù)不同的變量值跳轉(zhuǎn)到不同頁面,例如將path:"goods/:goodsId",假如當(dāng)goodsId為15時,就會路由到/goods/15頁面。
4、編程路由
通過js代碼控制路由頁面的跳轉(zhuǎn)與傳值。例如給button綁定事件jump,在methods內(nèi)實(shí)現(xiàn):
jump(){
this.$router.push('/cart?goodsId=123')
}
頁面跳轉(zhuǎn)到根下的cart目錄,并且傳遞參數(shù)goodsId,值為123。在cart頁面通過$route.query接收參數(shù),直接在頁面內(nèi)使用:
注意:區(qū)分跳轉(zhuǎn)是$router,接收參數(shù)是$route
<span>商品ID:{{$route.query.goodsId}}</span>
也可以指定頁面向前向后跳轉(zhuǎn):this.$router.go(2),向前跳轉(zhuǎn)兩步 ,向后跳轉(zhuǎn)一步go(-1)。
5、命名路由
當(dāng)路由路徑過長時,也可以用name屬性為路徑命名,在<router-link>中使用動態(tài)綁定:to="{name:'路徑名'}"訪問。例如白羊座的鏈接上使用 :to="{name:'ariesIntro'}",可直接跳轉(zhuǎn)到link1下的Intro頁面。
還可以對視圖進(jìn)行命名,將組件渲染到指定視圖位置,例如在父組件中有一個默認(rèn)視圖與兩個命名視圖一左一右:
<router-view></router-view> <router-view class="left" name="cartview"></router-view> <router-view class="right" name="imgview"></router-view>
在根路由中設(shè)置其組件components,將默認(rèn)視圖渲染為GoodsList,左邊cartview視圖渲染為Cart組件,右邊imgview渲染為Image組件:
new Router({
routes: [
{
path: '/',
components:{
default:GoodsList,
cartview:Cart,
imgview:Image
}
}
結(jié)果如下:

希望本文所述對大家vue.js程序設(shè)計有所幫助。
- 淺析vue-router中params和query的區(qū)別
- 詳解vue-router 動態(tài)路由下子頁面多頁共活的解決方案
- vue-router結(jié)合vuex實(shí)現(xiàn)用戶權(quán)限控制功能
- vue實(shí)現(xiàn)權(quán)限控制路由(vue-router 動態(tài)添加路由)
- 解決vue-router 二級導(dǎo)航默認(rèn)選中某一選項(xiàng)的問題
- vue-router 中 meta的用法詳解
- 淺談vue-router路由切換 組件重用挖下的坑
- vue-router之實(shí)現(xiàn)導(dǎo)航切換過渡動畫效果
- 使用vue-router切換頁面時實(shí)現(xiàn)設(shè)置過渡動畫
- vue-router的鉤子函數(shù)用法實(shí)例分析
- vue-router路由模式詳解(小結(jié))
- vue-router兩種模式區(qū)別及使用注意事項(xiàng)詳解
- vue-router跳轉(zhuǎn)時打開新頁面的兩種方法
- 使用vue-router在Vue頁面之間傳遞數(shù)據(jù)的方法
- vue-router二級導(dǎo)航切換路由及高亮顯示的實(shí)現(xiàn)方法
- 移動端底部導(dǎo)航固定配合vue-router實(shí)現(xiàn)組件切換功能
- 詳解新手使用vue-router傳參時注意事項(xiàng)
- Vue路由管理器Vue-router的使用方法詳解
相關(guān)文章
vue2.0實(shí)戰(zhàn)之使用vue-cli搭建項(xiàng)目(2)
這篇文章主要為大家詳細(xì)介紹了vue2.0實(shí)戰(zhàn)第二篇使用vue-cli搭建項(xiàng)目,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03
解決@vue/cli安裝成功后,運(yùn)行vue -V報:不是內(nèi)部或外部命令的問題
這篇文章主要介紹了解決@vue/cli安裝成功后,運(yùn)行vue -V報:不是內(nèi)部或外部命令的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10
vue keep-alive實(shí)現(xiàn)多組件嵌套中個別組件存活不銷毀的操作
這篇文章主要介紹了vue keep-alive實(shí)現(xiàn)多組件嵌套中個別組件存活不銷毀的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
VueTreeselect?參數(shù)options的數(shù)據(jù)轉(zhuǎn)換-參數(shù)normalizer解析
這篇文章主要介紹了VueTreeselect?參數(shù)options的數(shù)據(jù)轉(zhuǎn)換-參數(shù)normalizer解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
在Vuex使用dispatch和commit來調(diào)用mutations的區(qū)別詳解
今天小編就為大家分享一篇在Vuex使用dispatch和commit來調(diào)用mutations的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
Vue使用pdf.js和docx-preview實(shí)現(xiàn)docx和pdf的在線預(yù)覽
這篇文章主要為大家詳細(xì)介紹了在Vue中使用pdf.js和docx-preview實(shí)現(xiàn)docx和pdf的在線預(yù)覽的相關(guān)知識,文中的示例代碼講解詳細(xì),需要的可以參考下2025-03-03
Vue手動埋點(diǎn)設(shè)計的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Vue手動埋點(diǎn)設(shè)計的相關(guān)資料,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,需要的朋友可以參考下2022-03-03
手把手教你vue實(shí)現(xiàn)動態(tài)路由
動態(tài)路由可以根據(jù)不同用戶登錄獲取不一樣的路由層級,可隨時調(diào)配路由,下面這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)動態(tài)路由的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07

