vue-router傳參的四種方式超詳細(xì)講解
vue路由傳參的四種方式
一、router-link路由導(dǎo)航方式傳參
父組件:<router-link to="/跳轉(zhuǎn)到的路徑/傳入的參數(shù)"></router-link>
子組件:this.$route.params.content接受父組件傳遞過來的參數(shù)
例如:
路由配置:
bashbash{path:'/father/son/:num',name:A,component:A}```
地址欄中的顯示:
http://localhost:8080/#/father/son/44
調(diào)用方法:
<router-link to="/father/son/傳入的參數(shù)">父親組件<router-link> 子組件通過 this.$route.params.num 接受參數(shù)
二、調(diào)用$router.push實(shí)現(xiàn)路由傳參
父組件:通過實(shí)踐觸發(fā),跳轉(zhuǎn)代碼
<button @click="clickHand(123)">push傳參</button> methods: { clickHand(id) { this.$router.push({ path: `/d/${id}` }) } }
路由配置
{path: '/d/:id', name: D, component: D}
地址欄中顯示:
http://localhost:8080/d/123
子組件接受參數(shù)方式
mounted () { this.id = this.$route.params.id }
三、通過路由屬性name匹配路由,再根據(jù)params傳遞參數(shù)
父組件:
<button @click="ClickByName()">params傳參</button> ClickByName() { this.$router.push({ name: 'B', params: { context: '吳又可吳又可吳又可' } }) }
路由配置:路徑后不需要在加上傳入的參數(shù),但是name必須和父組件中的name一致
{path: '/b', name: 'B', component: B}
地址欄中的顯示:地址欄不會(huì)帶有傳入的參數(shù),而且再次刷新頁面后參數(shù)會(huì)丟失
http://localhost:8080/#/b
子組件接收參數(shù)的方式:
<template> <div id="b"> This is page B! <p>傳入?yún)?shù):{{this.$route.params.context}}</p> </div> </template>
四、通過query來傳遞參數(shù)
父組件:
<button @click="clickQuery()">query傳參</button> clickQuery() { this.$router.push({ path: '/c', query: { context: '吳又可吳又可' } }) }
路由配置:不需要做任何修改
{path: '/c', name: 'C', component: C}
地址欄中的顯示(中文轉(zhuǎn)碼格式):
http://localhost:8080/#/c?sometext=%E8%BF%99%E6%98%AF%E5%B0%8F%E7%BE%8A%E5%90%8C%E5%AD%A6
子組件接受方法:
<template> <div id="C"> This is page C! <p>這是父組件傳入的數(shù)據(jù): {{this.$route.query.context}}</p> </div> </template>
工作中經(jīng)常用的也就是上面的幾種傳參方式,完結(jié)~ 歡迎點(diǎn)贊收藏哦
補(bǔ)充知識:
vue-router傳遞參數(shù)的幾種方式
vue-router傳遞參數(shù)分為兩大類
1 編程式的導(dǎo)航 router.push
2聲明式的導(dǎo)航
編程式的導(dǎo)航 router.push
編程式導(dǎo)航傳遞參數(shù)有兩種類型:字符串、對象。
字符串
字符串的方式是直接將路由地址以字符串的方式來跳轉(zhuǎn),這種方式很簡單但是不能傳遞參數(shù):
this.$router.push("home");
對象
使用方法如下:
this.$router.push({ name: 'news', params: { userId: 123 }})
name:為路由的名字
獲取參數(shù)
{{this.$route.params.userId}}
查詢參數(shù)
使用方法如下:
this.$router.push({ path: '/news', query: { userId: 123 }});
獲取參數(shù)
{{this.$route.query.userId}}
聲明式的導(dǎo)航
字符串方式
click to news page
命名路由方式
click to news page
查詢參數(shù)方式
click to news page
1.命名路由搭配params,刷新頁面參數(shù)會(huì)丟失
2.查詢參數(shù)搭配query,刷新頁面數(shù)據(jù)不會(huì)丟失
3.接受參數(shù)使用this.$router后面就是搭配路由的名稱就能獲取到參數(shù)的值
到此這篇關(guān)于vue-router傳參的四種方式超詳細(xì)的文章就介紹到這了,更多相關(guān)vue-router傳參方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue實(shí)現(xiàn)選項(xiàng)卡tab切換制作
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)選項(xiàng)卡tab切換制作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Vue常用傳值方式、父傳子、子傳父及非父子實(shí)例分析
這篇文章主要介紹了Vue常用傳值方式、父傳子、子傳父及非父子,結(jié)合實(shí)例形式分析了vue.js常見的傳值方式及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-02-02Vue 3自定義指令開發(fā)的相關(guān)總結(jié)
這篇文章主要介紹了Vue 3自定義指令開發(fā)的相關(guān)總結(jié),幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下2021-01-01vue事件監(jiān)聽函數(shù)on中的this指針域使用
這篇文章主要介紹了vue事件監(jiān)聽函數(shù)on中的this指針域使用方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08vue.js使用v-if實(shí)現(xiàn)顯示與隱藏功能示例
這篇文章主要介紹了vue.js使用v-if實(shí)現(xiàn)顯示與隱藏功能,結(jié)合簡單實(shí)例形式分析了使用v-if進(jìn)行判斷實(shí)現(xiàn)元素的顯示與隱藏功能,需要的朋友可以參考下2018-07-07基于Vue設(shè)計(jì)實(shí)現(xiàn)一個(gè)彈幕組件
這篇文章主要給大家分享一個(gè)開發(fā)中常見的需求,接下來將為大家詳細(xì)介紹彈幕的實(shí)現(xiàn)以及設(shè)計(jì)思路一步一步描述出來,希望大家能夠喜歡2023-06-06