詳解vue?Router(v3.x)?路由傳參的三種方式
前言
vue 路由傳參的使用場景一般都是應(yīng)用在父路由跳轉(zhuǎn)到子路由時,攜帶參數(shù)跳轉(zhuǎn)。傳參方式可劃分為 params 傳參和 query 傳參,而 params 傳參又可分為在 url 中顯示參數(shù)和不顯示參數(shù)兩種方式,這就是vue路由傳參的三種方式。
當(dāng)然 ,這三種傳參方式只是針對vue Router V3版本的,V4版本的路由傳參會有些不同;V3版本經(jīng)常與vue2相配合使用;而V4版本則多和vue3配合使用;
一,params 傳參(顯示參數(shù))
這種方式vue router官網(wǎng)也叫 動態(tài)路由匹配;
1,,首先需要在路由表中配置 冒號+參數(shù)(/user/:id)
// 這是動態(tài)路由 加上:/:id
{
path: "/routers/:id",
name: "Routers",
meta: { title: "動態(tài)路由" },
component: () => import("../views/routers/routers.vue")
},2,開始跳轉(zhuǎn)并傳參
jumpTo() {
this.$router.push({ path: "/routers/123" });
}3,獲取動態(tài)路由參數(shù)
created(){
console.log('獲取', this.$route.params); //{id: '123'}
}當(dāng)然,你也可以傳多個參數(shù),只不過需要在路由表中配置多個,如下:

注意: 響應(yīng)路由參數(shù)的變化
注意:當(dāng)使用路由參數(shù)時,例如從 /user/foo 導(dǎo)航到 /user/bar,原來的組件實(shí)例會被復(fù)用。因?yàn)閮蓚€路由都渲染同個組件,比起銷毀再創(chuàng)建,復(fù)用則顯得更加高效。不過,這也意味著組件的生命周期鉤子不會再被調(diào)用。
復(fù)用組件時,想對路由參數(shù)的變化作出響應(yīng)的話,你可以簡單地 watch (監(jiān)測變化) $route 對象:
const User = {
template: '...',
watch: {
$route(to, from) {
// 對路由變化作出響應(yīng)...
}
}
}或者使用 2.2 中引入的 beforeRouteUpdate 導(dǎo)航守衛(wèi):
const User = {
template: '...',
beforeRouteUpdate(to, from, next) {
// react to route changes...
// don't forget to call next()
}
}二,params 傳參(不顯示參數(shù))
1,使用不顯示參數(shù)的方式,則不需要在進(jìn)行配置路由表:
{
path: "routers",
name: "Routers",
component: () => import("../views/routers/routers.vue")
},2,開始跳轉(zhuǎn)并傳參
注意:需要指定路由表中的 name與之相對應(yīng);
jumpTo() {
this.$router.push({ name: "Routers", params:{ id:123 } });
}3,獲取參數(shù)
this.$route.params.id
注意:上述這種利用 params 不顯示 url 傳參的方式會導(dǎo)致在刷新頁面的時候,傳遞的值會丟失;需要謹(jǐn)慎使用。
三,query 傳參(顯示參數(shù))
這種傳參方式會把你的參數(shù)以問號拼接到路由上面;刷新頁面且路由不會丟失。
1,這種也不需要進(jìn)行配置路由表:
{
path: "routers",
name: "Routers",
component: () => import("../views/routers/routers.vue")
},2,開始跳轉(zhuǎn)并傳參
注意:需要與路由表中的 path屬性 與之相對應(yīng);
this.$router.push({ path:'/routers', query:{ id:123 } })3,獲取參數(shù)
this.$route.query.id
到此這篇關(guān)于詳解vue Router(v3.x) 路由傳參的三種方式的文章就介紹到這了,更多相關(guān)vue Router(v3.x) 路由傳參內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue項(xiàng)目使用$router.go(-1)返回時刷新原來的界面操作
這篇文章主要介紹了vue項(xiàng)目使用$router.go(-1)返回時刷新原來的界面操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
Vue3使用Vuex之mapState與mapGetters詳解
這篇文章主要為大家介紹了Vue3使用Vuex之mapState與mapGetters詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
vue+elementUI實(shí)現(xiàn)右擊指定表格列的單元格顯示選擇框功能
這篇文章主要介紹了vue+elementUI實(shí)現(xiàn)右擊指定表格列的單元格顯示選擇框功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-03-03
淺談Vue使用Elementui修改默認(rèn)的最快方法
這篇文章主要介紹了淺談Vue使用Elementui修改默認(rèn)的最快方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
vue中利用prop進(jìn)行父子通信時的注意事項(xiàng)總結(jié)
這篇文章主要給大家介紹了關(guān)于vue中利用prop進(jìn)行父子通信時的注意事項(xiàng),文中通過實(shí)例介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-01-01

