欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue路由三種傳參方式詳細(xì)講解

 更新時(shí)間:2023年10月11日 09:34:41   作者:不及你笑靨如花  
在Vue中有多種方式可以進(jìn)行路由跳轉(zhuǎn)并傳遞參數(shù),這篇文章主要給大家介紹了關(guān)于vue路由三種傳參方式的相關(guān)資料,文中介紹的方法分別包括params傳參、query傳參(顯示傳參)以及props傳參(路由組件傳參),,需要的朋友可以參考下

一、params傳參

1.1 顯示參數(shù)(動態(tài)路由匹配)

很多時(shí)候,我們需要將給定匹配模式的路由映射到同一個組件。例如,我們可能有一個 Search組件,它應(yīng)該對所有用戶進(jìn)行渲染,但查找的關(guān)鍵字不同。在 Vue Router 中,我們可以在路徑中使用一個動態(tài)字段來實(shí)現(xiàn),我們稱之為路徑參數(shù) 。

(1)在開始傳參前,需要子路由提前配置好參數(shù)。比如:keyword。

ps:

  • url中的參數(shù)需要用冒號 : 表示。當(dāng)一個路由被匹配時(shí),它的 params 的值將在每個組件中以 this.$route.params 的形式暴露出來。
  • 因?yàn)閰?shù)在url路徑上顯示,所以當(dāng)我們刷新時(shí),參數(shù)依舊保留
//子組件
    {
        path: '/Search/:keyword',
        name: 'Search',
        component: () =>
            import ('../views/Search'),
        meta: { show: true }
    }

(2)傳參分為聲明式傳參和編程式傳參

聲明式傳參:該方式是通過 router-link 組件的to屬性實(shí)現(xiàn),該方法的參數(shù)可以是一個字符串路徑,或者一個描述地址的對象。

//父路由組件
<router-link :to="/Search/123">進(jìn)入搜索頁面</router-link>

編程式傳參:該方式是通過 this.$router.push屬性實(shí)現(xiàn)。

(a)字符串的形式傳參

//父路由編程式傳參(一般通過事件觸發(fā))
this.$router.push({
    path:'/Search/${keyword}',
})

(b)對象形式傳參(路由必須要有別名name)

//父路由編程式傳參
 this.$router.push({
      name: "Search",
      params: { keyword: this.keyword },//這種方式的傳參必須要有路由的別名name
   });

注意項(xiàng)

(1)params傳參如何做到可傳可不傳?在子組件的參數(shù)路徑后面加上?,采用正則表達(dá)式

{
        path: '/Search/:keyword?',
        name: 'Search',
        component: () =>
            import ('../views/Search'),
        meta: { show: true }
    }

(2)params傳參如何傳空字符?

在父組件傳參的時(shí)候,給參數(shù)加上判斷。如果是空字符,則傳入undefined

 this.$router.push({
        name: "Search",
        params: { keyword: this.keyword || undefined },
      });

1.2 不顯示參數(shù)

注意:當(dāng)params不在路由上時(shí),參數(shù)為不可見。但是當(dāng)我們刷新頁面是,參數(shù)會消失。

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

聲明式傳參:該方式是通過 router-link 組件的to屬性實(shí)現(xiàn),比如:

//父路由組件
<router-link :to="{name:'Search',params:{keyword:123}}">進(jìn)入搜索頁面</router-link>

編程式傳參:該方式是通過 this.$router.push屬性對象方式實(shí)現(xiàn)。

//父路由編程式傳參
 this.$router.push({
      name: "Search",
      params: { keyword: this.keyword },//這種方式的傳參必須要有路由的別名name
   });

1.3 獲取傳參

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

this.$route.params.keyword

二、query傳參(顯示傳參)

2.1 傳參

**注意:query傳參在路徑上以?關(guān)鍵字=**的形式存在,刷新頁面,數(shù)據(jù)保留

聲明式傳參:該方式是通過 router-link 組件的to屬性實(shí)現(xiàn),需要子路由提前配置好路由別名(name 屬性)。比如:

//父路由組件
<router-link :to="{name:'Search',query:{keyword:123}}">進(jìn)入搜索頁面</router-link>

編程式傳參:

(1)該方式是通過 this.$router.push屬性對象方式實(shí)現(xiàn)。

//父路由編程式傳參
 this.$router.push({
      name: "Search",
      query: { keyword: this.keyword },//這種方式的傳參必須要有路由的別名name
   });

(2)路徑傳參

 this.$router.push(`/Search?k=${this.keyword}`);

2.2 獲取傳參

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

this.$route.query.keyword

三、props傳參(路由組件傳參)

3.1、布爾模式

當(dāng)props設(shè)置為true時(shí),route.params將被設(shè)置為組件的props這種情況下,只能傳params參數(shù)。

//子路由
 {
        path: '/Search/:keyword?',
        name: 'Search',
        component: () =>
            import ('../views/Search'),
        meta: { show: true },
        props: true
    }

3.2、對象模式

當(dāng)props是一個對象時(shí),它將原樣設(shè)置為組件props。

{
        path: '/Search/:keyword?',
        name: 'Search',
        component: () =>
            import ('../views/Search'),
        meta: { show: true },
        props: { a: 1, b: 2 } //定義a和b兩個變量
    }

3.3、函數(shù)模式

你可以創(chuàng)建一個返回props的函數(shù)。這允許你將參數(shù)轉(zhuǎn)換為其他類型,將靜態(tài)值與基于路由的值相結(jié)合等等。

 {
        path: '/Search/:keyword?',
        name: 'Search',
        component: () =>
            import ('../views/Search'),
        meta: { show: true },
        props: route => ({ k: route.query.keyword, keyword: route.params.keyword })
    }

3.4、獲取參數(shù)

//首先在父路由里面設(shè)置路由跳轉(zhuǎn)
this.$router.push({
        name: "Search",
        params: { keyword: this.keyword || undefined },
        query: { k: this.keyword.toUpperCase() },
      });
//然后給子路由的路徑配置里面加上props
{
        path: '/Search/:keyword?',
        name: 'Search',
        component: () =>
            import ('../views/Search'),
        meta: { show: true },
        props: route => ({ k: route.query.k, keyword: route.params.keyword })
    }

最后我們可以在子頁面中通過props獲取參數(shù)

結(jié)果如下:

總結(jié) 

到此這篇關(guān)于vue路由三種傳參方式詳細(xì)講解的文章就介紹到這了,更多相關(guān)vue路由傳參內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決vue路由發(fā)生了跳轉(zhuǎn)但是界面沒有任何反應(yīng)問題

    解決vue路由發(fā)生了跳轉(zhuǎn)但是界面沒有任何反應(yīng)問題

    這篇文章主要介紹了解決vue路由發(fā)生了跳轉(zhuǎn)但是界面沒有任何反應(yīng)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue中h5端打開app(判斷是安卓還是蘋果)

    vue中h5端打開app(判斷是安卓還是蘋果)

    這篇文章主要介紹了vue中h5端打開app(判斷是安卓還是蘋果),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Vue3中使用echarts的簡單七個步驟(易懂,附緊急避坑)

    Vue3中使用echarts的簡單七個步驟(易懂,附緊急避坑)

    近期在做一個vue3的項(xiàng)目,里面有個圖表需求,因公司之前使用第三方封裝的圖表缺少文檔,就去看了echars的官網(wǎng)文檔,引入原生echars來實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Vue3中使用echarts的簡單七個步驟,需要的朋友可以參考下
    2023-01-01
  • Vue路由對象屬性 .meta $route.matched詳解

    Vue路由對象屬性 .meta $route.matched詳解

    今天小編就為大家分享一篇Vue路由對象屬性 .meta $route.matched詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • vue 動態(tài)添加/刪除dom元素節(jié)點(diǎn)的操作代碼

    vue 動態(tài)添加/刪除dom元素節(jié)點(diǎn)的操作代碼

    這篇文章主要介紹了vue 動態(tài)添加/刪除dom元素,需要在點(diǎn)擊添加時(shí),增加一行key/value的輸入框;點(diǎn)擊垃圾桶圖標(biāo)時(shí),刪除對應(yīng)行,本文結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • 解決Vue + Echarts 使用markLine標(biāo)線(precision精度問題)

    解決Vue + Echarts 使用markLine標(biāo)線(precision精度問題)

    這篇文章主要介紹了解決Vue + Echarts 使用markLine標(biāo)線(precision精度問題),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Vue form 表單提交+ajax異步請求+分頁效果

    Vue form 表單提交+ajax異步請求+分頁效果

    這篇文章主要介紹了Vue form 表單提交+ajax異步請求+分頁效果,需要的朋友可以參考下
    2017-04-04
  • vue項(xiàng)目中jsonp跨域獲取qq音樂首頁推薦問題

    vue項(xiàng)目中jsonp跨域獲取qq音樂首頁推薦問題

    這篇文章主要介紹了vue項(xiàng)目中jsonp跨域獲取qq音樂首頁推薦問題,非常不錯,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-05-05
  • Vue實(shí)現(xiàn)開心消消樂游戲算法

    Vue實(shí)現(xiàn)開心消消樂游戲算法

    這篇文章主要介紹了使用Vue寫一個開心消消樂游戲,游戲算法在文中給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Vue中的文字換行問題

    Vue中的文字換行問題

    這篇文章主要介紹了Vue中的文字換行問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論