您好,登錄后才能下訂單哦!
這篇文章主要介紹“vue如何進(jìn)行路由跳轉(zhuǎn)”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“vue如何進(jìn)行路由跳轉(zhuǎn)”文章能幫助大家解決問(wèn)題。
vue-router 本質(zhì)是一個(gè)第三方的包 用的時(shí)候需要下載。
步驟 (7步法 ):
1、下載vue-router
模塊到當(dāng)前工程
yarn add vue-router
2、在main.js中引入VueRouter函數(shù)
// 引入路由
import VueRouter from "vue-router";
3、添加到Vue.use()身上 – 注冊(cè)全局RouterLink和RouterView組件
// 注冊(cè)全局
Vue.use(VueRouter)
4、創(chuàng)建路由規(guī)則數(shù)組 – 路徑和組件名對(duì)應(yīng)關(guān)系
創(chuàng)建路由規(guī)則數(shù)組(需要準(zhǔn)備切換的頁(yè)面組件)把準(zhǔn)備好的頁(yè)面組件引入到main.js中
const routes = [{
path: "/",
redirect: "find" //默認(rèn)顯示推薦組件(路由的重定向)
},
{
path: "/find",
name: "Find",
component: Find,
//二級(jí)路由
children: [{
path: "/",
redirect: "recom" //默認(rèn)顯示推薦組件
},
{
path: "ranking", //注意二級(jí)路由的路徑千萬(wàn)不要加/
component: Ranking
},
{
path: "songlist",
component: SongList
},
]
},
{
path: "/my",
name: "My",
component: My
},
{
path: "/part",
name: "Part",
component: Part
},
{
path: "*",
component: NotFound //定義找不到已有組件時(shí)顯示404
},
]
5、用規(guī)則生成路由對(duì)象
// 創(chuàng)建路由對(duì)象并且傳入規(guī)則
const router = new VueRouter({
routes,
mode: "history" //路由模式(默認(rèn)為hash模式)
})
6、把路由對(duì)象注入到new Vue實(shí)例中
new Vue({
router, //導(dǎo)入路由對(duì)象
render: h => h(App),
}).$mount('#app')
7、用router-view
作為掛載點(diǎn), 切換不同的路由頁(yè)面
當(dāng)url的hash值路徑切換,顯示規(guī)則里對(duì)應(yīng)的組件
router-view
實(shí)現(xiàn)路由內(nèi)容的地方,引入組件時(shí)寫(xiě)到需要引入的地方 需要注意的是,使用vue-router控制路由則必須router-view作為容器。(可以先引入根組件App.vue中進(jìn)行自測(cè))
注意:一切都要以u(píng)rl上hash值為準(zhǔn)
router-link
是vue-router提供了一個(gè)全局組件router-link實(shí)質(zhì)上最終會(huì)渲染成a鏈接 to屬性等價(jià)于提供 href屬性(to無(wú)需#)
router-link提供了聲明式導(dǎo)航高亮的功能(自帶類(lèi)名)
代碼如下:
<template>
<div>
<div class="footer_wrap">
<router-link to="/find">發(fā)現(xiàn)音樂(lè)</router-link>
<router-link to="/my">我的音樂(lè)</router-link>
<router-link to="/part">朋友</router-link>
</div>
<div class="top">
<router-view></router-view>
</div>
</div>
</template>
//在控制臺(tái)元素檢查時(shí)會(huì)發(fā)現(xiàn)激活的類(lèi)名 在樣式style中定義高亮樣式 點(diǎn)擊時(shí)就會(huì)高亮
router-link好處 : 自帶激活時(shí)的類(lèi)名, 可以做高亮
在router-link上的to屬性傳值, 語(yǔ)法格式如下 :
(方式一)
to=/path?參數(shù)名=值
例:
to="/part?name=小明"
對(duì)應(yīng)頁(yè)面組件接收傳遞過(guò)來(lái)的值
$route.query.參數(shù)名
接收數(shù)據(jù):$route.query.name
(方式二)
to=“/path/值” (需在路由規(guī)則里配置/path/:參數(shù)名)
例:
to="/part/小王"
配置:
path:"/part/:username"
對(duì)應(yīng)頁(yè)面組件接收傳遞過(guò)來(lái)的值 (注意動(dòng)態(tài)參數(shù)需要用params接收)
$route.params.參數(shù)名
接收數(shù)據(jù):$route.params.username
用JS代碼來(lái)進(jìn)行跳轉(zhuǎn)
語(yǔ)法: path或者name任選一個(gè)
$ router
和 $ route
的區(qū)別$router : 是路由操作對(duì)象,只寫(xiě)對(duì)象
$route : 路由信息對(duì)象,只讀對(duì)象
$ router操作路由跳轉(zhuǎn)
this.$router.push({ name:‘hello’, query:{ name:‘word’, age:‘11’ } })
$route讀取 路由參數(shù)接收
var name = this.$route.query.name;
path 和 name路由跳轉(zhuǎn)方式,都可以用query傳參
使用path方式跳轉(zhuǎn)路由 path會(huì)忽略params 所以path不能和params一起使用
推薦使用name和query方式實(shí)現(xiàn)路由跳轉(zhuǎn)
params傳參,push里面只能是 name:‘xxx’,不能是path:‘/xxx’,因?yàn)閜arams只能用name來(lái)引入路由,如果這里寫(xiě)成了path,接收參數(shù)頁(yè)面會(huì)是undefined?。。?/p>
通過(guò)params傳參
==注意:==這里使用name路由跳轉(zhuǎn)方式路徑不需要加
/
因?yàn)樗皇莻€(gè)名字
this.$router.push({
name:"Home",
params:{
id:this.id
}
})
另一個(gè)頁(yè)面接收:
這里使用params傳參就需要寫(xiě)params接收
this.$route.params.id
通過(guò)query傳參
this.$router.push({
path:"/Search",
query:{ //query是個(gè)配置項(xiàng)
age:20
}
})
另一個(gè)頁(yè)面接收
this.$route.query.age
query相當(dāng)于GET請(qǐng)求,頁(yè)面跳轉(zhuǎn)的時(shí)候,可以在地址欄看到請(qǐng)求參數(shù)
uery傳參**
this.$router.push({
path:"/Search",
query:{ //query是個(gè)配置項(xiàng)
age:20
}
})
另一個(gè)頁(yè)面接收
this.$route.query.age
關(guān)于“vue如何進(jìn)行路由跳轉(zhuǎn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。