Vue重定向redirect的三種寫法總結(jié)
一、寫法 1:直接路徑跳轉(zhuǎn)(最簡(jiǎn)單)
const router = createRouter({ routes: [ { path: '/原路徑', // 用戶訪問(wèn)的路徑 redirect: '/目標(biāo)路徑' // 直接跳轉(zhuǎn)到這個(gè)路徑 } ] })
必記規(guī)則:
redirect
后直接跟字符串路徑(必須以/
開(kāi)頭)。- 路徑必須存在:確保
/目標(biāo)路徑
在路由配置里有對(duì)應(yīng)的組件。
示例:
{ path: '/old', redirect: '/new' } // 訪問(wèn) /old → 自動(dòng)跳轉(zhuǎn)到 /new
二、寫法 2:通過(guò)路由名稱跳轉(zhuǎn)(更靈活)
const router = createRouter({ routes: [ { path: '/原路徑', redirect: { name: '目標(biāo)路由名稱' } // 通過(guò)路由的 name 屬性跳轉(zhuǎn) }, // 必須先定義目標(biāo)路由,并設(shè)置 name { path: '/目標(biāo)路徑', name: '目標(biāo)路由名稱', // 給路由起個(gè)名字 component: 目標(biāo)組件 } ] })
必記規(guī)則:
redirect
后是對(duì)象,必須包含name
屬性。- 路由名稱必須先定義:確保
name: '目標(biāo)路由名稱'
在路由配置里存在。
示例:
{ path: '/user', redirect: { name: 'profile' } } // 訪問(wèn) /user → 跳轉(zhuǎn)到 name 為 profile 的路由
三、寫法 3:動(dòng)態(tài)跳轉(zhuǎn)(帶參數(shù),最靈活)
const router = createRouter({ routes: [ { path: '/原路徑/:參數(shù)名', // 帶動(dòng)態(tài)參數(shù)的路徑 redirect: to => { // to 是當(dāng)前訪問(wèn)的路由對(duì)象 return { path: '/目標(biāo)路徑', query: { 參數(shù)名: to.params.參數(shù)名 } // 傳遞參數(shù) } } } ] })
必記規(guī)則:
redirect
后是箭頭函數(shù),函數(shù)返回一個(gè)對(duì)象。
參數(shù)傳遞:
to.params.參數(shù)名
→ 獲取當(dāng)前路由的動(dòng)態(tài)參數(shù)(如/user/123
中的123
)。query: { 參數(shù)名: 值 }
→ 把參數(shù)轉(zhuǎn)為查詢參數(shù)(如?id=123
)。
示例:
{ path: '/search/:keyword', // 訪問(wèn) /search/vue redirect: to => { return { path: '/results', query: { q: to.params.keyword } // 跳轉(zhuǎn)到 /results?q=vue } } }
四、核心規(guī)則速查表(必須記?。。?/h2>
寫法 | 固定格式 | 關(guān)鍵注意點(diǎn) |
---|---|---|
直接路徑 | redirect: '/目標(biāo)路徑' | 路徑必須以 / 開(kāi)頭,且已配置路由 |
路由名稱 | redirect: { name: '目標(biāo)名稱' } | 必須先定義帶 name 的路由 |
動(dòng)態(tài)跳轉(zhuǎn) | redirect: to => ({ ... }) | 用 to.params 獲取當(dāng)前路由參數(shù) |
五、完整示例(三種寫法對(duì)比)
import { createRouter, createWebHashHistory } from 'vue-router' import Home from './views/Home.vue' import Profile from './views/Profile.vue' import Search from './views/Search.vue' import Results from './views/Results.vue' const router = createRouter({ history: createWebHashHistory(), routes: [ // 寫法1:直接路徑跳轉(zhuǎn) { path: '/', redirect: '/home' }, // 寫法2:通過(guò)路由名稱跳轉(zhuǎn) { path: '/user', redirect: { name: 'profile' } }, { path: '/profile', name: 'profile', component: Profile }, // 寫法3:動(dòng)態(tài)跳轉(zhuǎn)(帶參數(shù)) { path: '/search/:keyword', redirect: to => ({ path: '/results', query: { q: to.params.keyword } }) }, { path: '/results', component: Results }, // 基礎(chǔ)路由 { path: '/home', component: Home }, ] }) export default router
六、一句話總結(jié)
重定向的本質(zhì)是 “訪問(wèn) A 路徑時(shí),自動(dòng)跳轉(zhuǎn)到 B 路徑”
三種寫法只是跳轉(zhuǎn)方式不同:
- 直接路徑:簡(jiǎn)單粗暴,適合固定跳轉(zhuǎn)。
- 路由名稱:解耦路徑,適合路徑可能變化的場(chǎng)景。
- 動(dòng)態(tài)跳轉(zhuǎn):帶參數(shù)傳遞,適合需要參數(shù)處理的場(chǎng)景。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue 實(shí)現(xiàn)前端權(quán)限控制的示例代碼
這篇文章主要介紹了Vue 實(shí)現(xiàn)前端權(quán)限控制的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07vue實(shí)現(xiàn)echarts餅圖/柱狀圖點(diǎn)擊事件實(shí)例
echarts原生提供了相應(yīng)的API,只需要在配置好echarts之后綁定相應(yīng)的事件即可,下面這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)echarts餅圖/柱狀圖點(diǎn)擊事件的相關(guān)資料,需要的朋友可以參考下2023-06-06Vue3實(shí)現(xiàn)vueFLow流程組件的詳細(xì)指南
VueFlow是一個(gè)專門為Vue.js框架設(shè)計(jì)的交互式可視化庫(kù),它允許開(kāi)發(fā)者輕松創(chuàng)建和管理復(fù)雜的圖形模型,如流程圖、狀態(tài)機(jī)、組織結(jié)構(gòu)圖等,本文給大家介紹了Vue3實(shí)現(xiàn)vueFLow流程組件的詳細(xì)指南,需要的朋友可以參考下2024-11-11Vue enter回車導(dǎo)致頁(yè)面刷新問(wèn)題及解決
這篇文章主要介紹了Vue enter回車導(dǎo)致頁(yè)面刷新問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10基于Vue實(shí)現(xiàn)關(guān)鍵詞實(shí)時(shí)搜索高亮顯示關(guān)鍵詞
這篇文章主要介紹了基于Vue實(shí)現(xiàn)關(guān)鍵詞實(shí)時(shí)搜索高亮顯示關(guān)鍵詞,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07vue-router實(shí)現(xiàn)webApp切換頁(yè)面動(dòng)畫效果代碼
本篇文章主要介紹了vue實(shí)現(xiàn)app頁(yè)面切換效果實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05vue+webpack實(shí)現(xiàn)異步加載三種用法示例詳解
這篇文章主要介紹了vue+webpack實(shí)現(xiàn)異步加載的三種用法,文中給大家提到了vue+webpack實(shí)現(xiàn)異步組件加載的代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2018-04-04