vue中路由跳轉(zhuǎn)的多種方式(和$router下路由跳轉(zhuǎn)的那幾個(gè)方法的區(qū)別)
Vue.js是一款流行的前端JavaScript框架,它提供了多種方式來(lái)實(shí)現(xiàn)路由跳轉(zhuǎn)。以下是其中幾種常見(jiàn)的方式:
1. 聲明式導(dǎo)航
在Vue的模板中,可以使用`<router-link>`標(biāo)簽來(lái)創(chuàng)建鏈接。該標(biāo)簽會(huì)被渲染為一個(gè)`<a>`標(biāo)簽,點(diǎn)擊它時(shí),它將導(dǎo)航到指定的路由
<router-link to="/home">Home</router-link>
2. 編程式導(dǎo)航
在Vue實(shí)例中,可以使用`$router`對(duì)象來(lái)實(shí)現(xiàn)編程式導(dǎo)航,該對(duì)象提供了一些方法,如`push`、`replace`、`go`等。```
// 導(dǎo)航到指定的路由
this.$router.push('/home')
// 替換當(dāng)前路由
this.$router.replace('/home')
// 后退一步
this.$router.go(-1)3. 路由傳參
在聲明式導(dǎo)航和編程式導(dǎo)航中,可以通過(guò)`to`屬性或方法的第二個(gè)參數(shù)來(lái)傳遞參數(shù)。
<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>this.$router.push({ name: 'user', params: { userId: 123 }})4. 命名路由
在Vue路由中,可以給路由配置一個(gè)唯一的名稱,以方便在模板中使用。
{
path: '/user/:id',
name: 'user',
component: User
}<router-link :to="{ name: 'user', params: { id: userId }}">User</router-link>以上是Vue中幾種常見(jiàn)的路由跳轉(zhuǎn)方式,通過(guò)它們,可以方便地實(shí)現(xiàn)路由之間的切換和傳參。
===============================================
在Vue.js中,$router是Vue Router插件注入到Vue實(shí)例中的路由實(shí)例,它提供了幾個(gè)方法來(lái)進(jìn)行編程式導(dǎo)航,這些方法的區(qū)別如下
1. $router.push(location, onComplete?, onAbort?)
`push`方法會(huì)在瀏覽器的歷史記錄中添加一條新的記錄,當(dāng)用戶點(diǎn)擊瀏覽器的后退按鈕時(shí),可以回退到之前的頁(yè)面。同時(shí),也可以在`push`方法中傳遞一個(gè)回調(diào)函數(shù),在路由導(dǎo)航完成時(shí)執(zhí)行。```
// 導(dǎo)航到指定的路由
this.$router.push('/home')
// 導(dǎo)航到命名路由
this.$router.push({ name: 'user', params: { userId: 123 }})
// 添加回調(diào)函數(shù)
this.$router.push('/home', () => {
console.log('路由導(dǎo)航完成')
})2. $router.replace(location, onComplete?, onAbort?)
`replace`方法與`push`方法類似,也可以用來(lái)導(dǎo)航到指定的路由,但它不會(huì)在瀏覽器的歷史記錄中添加一條新的記錄,而是替換當(dāng)前的記錄。當(dāng)用戶點(diǎn)擊瀏覽器的后退按鈕時(shí),會(huì)跳轉(zhuǎn)到上一個(gè)頁(yè)面而不是當(dāng)前頁(yè)面的前一個(gè)。```
// 替換當(dāng)前路由
this.$router.replace('/home')
// 替換命名路由
this.$router.replace({ name: 'user', params: { userId: 123 }})
// 添加回調(diào)函數(shù)
this.$router.replace('/home', () => {
console.log('路由導(dǎo)航完成')
})```
3. $router.go(n)
`go`方法用來(lái)在瀏覽器的歷史記錄中前進(jìn)或后退指定的步數(shù),參數(shù)n可以是正數(shù)或負(fù)數(shù),正數(shù)表示前進(jìn),負(fù)數(shù)表示后退。```
// 后退一步 this.$router.go(-1) // 前進(jìn)兩步 this.$router.go(2)
```
以上三個(gè)方法都是用來(lái)進(jìn)行編程式導(dǎo)航的,但它們的行為略有不同,根據(jù)具體的需求選擇使用。需要注意的是,在使用這些方法時(shí),需要確保路由實(shí)例已經(jīng)創(chuàng)建并注入到Vue實(shí)例中。
到此這篇關(guān)于vue中路由跳轉(zhuǎn)的幾種方式(和$router下路由跳轉(zhuǎn)的那幾個(gè)方法的區(qū)別)的文章就介紹到這了,更多相關(guān)vue路由跳轉(zhuǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue.set() this.$set()引發(fā)的視圖更新思考及注意事項(xiàng)
this.$set()和Vue.set()本質(zhì)方法一樣,前者可以用在methods中使用。這篇文章主要介紹了Vue.set() this.$set()引發(fā)的視圖更新思考及注意事項(xiàng),需要的朋友可以參考下2018-08-08
Vue中實(shí)現(xiàn)過(guò)渡動(dòng)畫(huà)效果示例代碼
這篇文章主要介紹了Vue中實(shí)現(xiàn)過(guò)渡動(dòng)畫(huà)效果示例代碼,Vue中為我們提供一些內(nèi)置組件和對(duì)應(yīng)的API來(lái)完成動(dòng)畫(huà),利用它們我們可以方便的實(shí)現(xiàn)過(guò)渡動(dòng)畫(huà)效果,需要的朋友可以參考下2022-08-08
Vue3實(shí)現(xiàn)九宮格抽獎(jiǎng)效果的示例詳解
這篇文章主要為大家詳細(xì)介紹了如何通過(guò)Vue3實(shí)現(xiàn)簡(jiǎn)單的九宮格抽獎(jiǎng)效果,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的可以了解一下2023-10-10
詳解webpack + vue + node 打造單頁(yè)面(入門篇)
本篇文章主要介紹了詳解webpack + vue + node 打造單頁(yè)面(入門篇) ,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-09-09
Vue框架中如何調(diào)用模擬數(shù)據(jù)你知道嗎
這篇文章主要為大家詳細(xì)介紹了Vue框架中如何調(diào)用模擬數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03
Vuerouter的beforeEach與afterEach鉤子函數(shù)的區(qū)別
本文詳細(xì)的介紹了Vuerouter的beforeEach與afterEach鉤子函數(shù)的區(qū)別和使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12

