溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

vue路由傳參的基本實(shí)現(xiàn)方式小結(jié)【三種方式】

發(fā)布時(shí)間:2020-10-01 03:22:24 來源:腳本之家 閱讀:153 作者:不想寫代碼的碼農(nóng) 欄目:web開發(fā)

本文實(shí)例講述了vue路由傳參的基本實(shí)現(xiàn)方式。分享給大家供大家參考,具體如下:

前言

vue 路由傳參的使用場(chǎng)景一般都是應(yīng)用在父路由跳轉(zhuǎn)到子路由時(shí),攜帶參數(shù)跳轉(zhuǎn)。傳參方式可劃分為 params 傳參和 query 傳參,而 params 傳參又可分為在 url 中顯示參數(shù)和不顯示參數(shù)兩種方式,這就是vue路由傳參的三種方式。

方式一:params 傳參(顯示參數(shù))

params 傳參(顯示參數(shù))又可分為 聲明式 和 編程式 兩種方式

1、聲明式 router-link

該方式是通過 router-link 組件的 to 屬性實(shí)現(xiàn),該方法的參數(shù)可以是一個(gè)字符串路徑,或者一個(gè)描述地址的對(duì)象。使用該方式傳值的時(shí)候,需要子路由提前配置好參數(shù),例如:

//子路由配置
{
 path: '/child/:id',
 component: Child
}
//父路由組件
<router-link :to="/child/123">進(jìn)入Child路由</router-link>

2、編程式 this.$router.push

使用該方式傳值的時(shí)候,同樣需要子路由提前配置好參數(shù),例如:

//子路由配置
{
 path: '/child/:id',
 component: Child
}
//父路由編程式傳參(一般通過事件觸發(fā))
this.$router.push({
  path:'/child/${id}',
})

在子路由中可以通過下面代碼來獲取傳遞的參數(shù)值

this.$route.params.id

方式二:params 傳參(不顯示參數(shù))

params 傳參(不顯示參數(shù))也可分為 聲明式 和 編程式 兩種方式,與方式一不同的是,這里是通過路由的別名 name 進(jìn)行傳值的

1、聲明式 router-link

該方式也是通過 router-link 組件的 to 屬性實(shí)現(xiàn),例如:

<router-link :to="{name:'Child',params:{id:123}}">進(jìn)入Child路由</router-link>

2、編程式 this.$router.push

使用該方式傳值的時(shí)候,同樣需要子路由提前配置好參數(shù),不過不能再使用 :/id 來傳遞參數(shù)了,因?yàn)楦嘎酚芍校呀?jīng)使用 params 來攜帶參數(shù)了,例如:

//子路由配置
{
 path: '/child,
 name: 'Child',
 component: Child
}
//父路由編程式傳參(一般通過事件觸發(fā))
this.$router.push({
  name:'Child',
  params:{
   id:123
  }
})

在子路由中可以通過下面代碼來獲取傳遞的參數(shù)值

this.$route.params.id

注意:上述這種利用 params 不顯示 url 傳參的方式會(huì)導(dǎo)致在刷新頁面的時(shí)候,傳遞的值會(huì)丟失

方式三:query 傳參(顯示參數(shù))

query 傳參(顯示參數(shù))也可分為 聲明式 和 編程式 兩種方式

1、聲明式 router-link

該方式也是通過 router-link 組件的 to 屬性實(shí)現(xiàn),不過使用該方式傳值的時(shí)候,需要子路由提前配置好路由別名(name 屬性),例如:

//子路由配置
{
 path: '/child,
 name: 'Child',
 component: Child
}
//父路由組件
<router-link :to="{name:'Child',query:{id:123}}">進(jìn)入Child路由</router-link>

2、編程式 this.$router.push

使用該方式傳值的時(shí)候,同樣需要子路由提前配置好路由別名(name 屬性),例如:

//子路由配置
{
 path: '/child,
 name: 'Child',
 component: Child
}
//父路由編程式傳參(一般通過事件觸發(fā))
this.$router.push({
  name:'Child',
  params:{
   id:123
  }
})

在子路由中可以通過下面代碼來獲取傳遞的參數(shù)值

this.$route.query.id

希望本文所述對(duì)大家vue.js程序設(shè)計(jì)有所幫助。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI