Vue-路由傳參 params 與 query的使用和區(qū)別

記得初學(xué)Vue的時(shí)候,不知道如何通過(guò)路由跳轉(zhuǎn)界面并傳參,去面試也有問(wèn)到,當(dāng)時(shí)就很尷尬,這么基礎(chǔ)的東西說(shuō)出來(lái)不知道,沒(méi)用過(guò),真的好難堪,誰(shuí)也不是一開(kāi)始就什么都會(huì),不懂得及時(shí)去查,時(shí)間長(zhǎng)了總會(huì)理解,孰能生巧,這不最近在我工作中常常有跳轉(zhuǎn)頁(yè)面的需求,下面我跟大家說(shuō)說(shuō)params和query兩種方式的區(qū)別

首先來(lái)說(shuō)明一下router 和route得區(qū)別
// $router:是路由操作對(duì)象,只寫對(duì)象
// $route:是路由信息對(duì)象,只讀對(duì)象

// 操作  路由跳轉(zhuǎn) index.vue
this.$router.push({
    name:'hello',
    params:{
        name:'yuyu',
        age:'11'
    }
})
// 讀取  路由參數(shù)接收 detail.vue
this.name = this.$route.params.name;
this.age = this.$route.params.age;
1、query使用path和name傳參跳轉(zhuǎn)都可以,而params只能使用name傳參跳轉(zhuǎn)。

query傳參:

//query傳參,使用name跳轉(zhuǎn)    index.vue
this.$router.push({ 
    name:'contact',
    query:{ 
        id:id,
        code:code
    }
})
//query傳參,使用path跳轉(zhuǎn)    index.vue
this.$router.push({ 
    path:'contact',
    query:{ 
        id:id,
        code:code
    }
})
//query接受參數(shù)   detail.vue
this.id = this.$route.query.id;
this.code = this.$route.query.code;

params傳參:

// params 傳參  使用name
this.$router.push({
      name:'contact',
      params:{
         id:id,
         code:code
      }
})
// params接收參數(shù)
this.id = this.$route.params.id;
this.code = this.$route.params.code
//路由
{
    path: '/contact/:id/:code',
    name:'contact',
    component: () => import('@/views/contact'),   // 懶加載
}

需要注意的是:
1、params是路由的一部分,必須要在路由后面添加參數(shù)名。query是拼接在url后面的參數(shù),沒(méi)有也沒(méi)關(guān)系。
2、params一旦設(shè)置在路由,params就是路由的一部分,如果這個(gè)路由有params傳參,但是在跳轉(zhuǎn)的時(shí)候沒(méi)有傳這個(gè)參數(shù),會(huì)導(dǎo)致跳轉(zhuǎn)失敗或者頁(yè)面會(huì)沒(méi)有內(nèi)容。
如果路由后面沒(méi)有 /:id/:name效果如下圖,地址欄沒(méi)有參數(shù)
**但是如果你刷新一下,就會(huì)發(fā)現(xiàn)頁(yè)面失敗,此時(shí)我們就可以 路由解耦
得方式來(lái)解決,具體得操作請(qǐng)看:http://www.itdecent.cn/p/9583a3b56475
**

好了,兩者得使用方法和區(qū)別就為大家介紹到這里吧,今后也會(huì)不斷得補(bǔ)充更新,也希望大家多給我些建議,我們共同進(jìn)步~~~小魚(yú)兒
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容