vue學(xué)習(xí)之Vue-Router用法實(shí)例分析
本文實(shí)例講述了vue學(xué)習(xí)之Vue-Router用法。分享給大家供大家參考,具體如下:
Vue-router就像一個(gè)路由器,將組件(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', //定義相對(duì)路徑
component:Link1, //定義頁(yè)面的組件
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è)置根路由,頁(yè)面加載完成后默認(rèn)顯示根路由,否則將什么也不顯示。
在頁(yè)面中調(diào)用路由接口,<router-link> 默認(rèn)會(huì)被渲染成一個(gè) `<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、嵌套路由
通過每個(gè)路由內(nèi)的children數(shù)組屬性可以為每個(gè)路由再配置子路由,子路由的路徑是基于父路由目錄下的,默認(rèn)路徑會(huì)進(jìn)行疊加。例如上面再link1中添加intro與feature兩個(gè)子路由,在link1模板中使用兩個(gè)子路由:
<template id="link1">
<div>
<h3>白羊座</h3>
<ul class="nav nav-tabs">
<li class="active">
<router-link to="/link1/intro">簡(jiǎn)介</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、動(dòng)態(tài)路由
在路由路徑中綁定變量,使其根據(jù)不同的變量值跳轉(zhuǎn)到不同頁(yè)面,例如將path:"goods/:goodsId",假如當(dāng)goodsId為15時(shí),就會(huì)路由到/goods/15頁(yè)面。
4、編程路由
通過js代碼控制路由頁(yè)面的跳轉(zhuǎn)與傳值。例如給button綁定事件jump,在methods內(nèi)實(shí)現(xiàn):
jump(){
this.$router.push('/cart?goodsId=123')
}
頁(yè)面跳轉(zhuǎn)到根下的cart目錄,并且傳遞參數(shù)goodsId,值為123。在cart頁(yè)面通過$route.query接收參數(shù),直接在頁(yè)面內(nèi)使用:
注意:區(qū)分跳轉(zhuǎn)是$router,接收參數(shù)是$route
<span>商品ID:{{$route.query.goodsId}}</span>
也可以指定頁(yè)面向前向后跳轉(zhuǎn):this.$router.go(2),向前跳轉(zhuǎn)兩步 ,向后跳轉(zhuǎn)一步go(-1)。
5、命名路由
當(dāng)路由路徑過長(zhǎng)時(shí),也可以用name屬性為路徑命名,在<router-link>中使用動(dòng)態(tài)綁定:to="{name:'路徑名'}"訪問。例如白羊座的鏈接上使用 :to="{name:'ariesIntro'}",可直接跳轉(zhuǎn)到link1下的Intro頁(yè)面。
還可以對(duì)視圖進(jìn)行命名,將組件渲染到指定視圖位置,例如在父組件中有一個(gè)默認(rèn)視圖與兩個(gè)命名視圖一左一右:
<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é)果如下:
希望本文所述對(duì)大家vue.js程序設(shè)計(jì)有所幫助。
上一篇:Nodejs封裝類似express框架的路由實(shí)例詳解
欄 目:JavaScript
下一篇:vue 對(duì)axios get pust put delete封裝的實(shí)例代碼
本文標(biāo)題:vue學(xué)習(xí)之Vue-Router用法實(shí)例分析
本文地址:http://m.jygsgssxh.com/a1/JavaScript/9302.html
您可能感興趣的文章
- 01-10在Vue項(xiàng)目中使用Typescript的實(shí)現(xiàn)
- 01-10Vue中使用Lodop插件實(shí)現(xiàn)打印功能的簡(jiǎn)單方法
- 01-10Vue filter 過濾當(dāng)前時(shí)間 實(shí)現(xiàn)實(shí)時(shí)更新效果
- 01-10Vuex實(shí)現(xiàn)數(shù)據(jù)共享的方法
- 01-10Vue+Node服務(wù)器查詢Mongo數(shù)據(jù)庫(kù)及頁(yè)面數(shù)據(jù)傳遞操作實(shí)例分析
- 01-10vue中根據(jù)時(shí)間戳判斷對(duì)應(yīng)的時(shí)間(今天 昨天 前天)
- 01-10Vue+Node實(shí)現(xiàn)的商城用戶管理功能示例
- 01-10vue實(shí)現(xiàn)拖拽效果
- 01-10vue圖片上傳組件使用詳解
- 01-10vue項(xiàng)目實(shí)現(xiàn)圖片上傳功能


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02javascript點(diǎn)線,點(diǎn)線的代碼
- 04-02javascript潛力,javascript強(qiáng)大嗎
- 04-02javascript替換字符串,js字符串的替換
- 04-02javascript移出,js 移入移出
- 04-02包含javascript舍的詞條
- 04-02javascript并行,深入理解并行編程 豆瓣
- 04-02javascript匿名,js匿名方法
- 04-02javascript警報(bào),JavaScript警告
- 04-02javascript遮蓋,JavaScript遮蓋PC端頁(yè)面
- 04-02javascript前身,javascript的前身
隨機(jī)閱讀
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-10C#中split用法實(shí)例總結(jié)
- 04-02jquery與jsp,用jquery
- 01-10delphi制作wav文件的方法
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什


