vue路由跳轉(zhuǎn)攜帶參數(shù)的方式總結(jié)
一、<router-link> 方式跳轉(zhuǎn)
1. 攜帶query參數(shù)
<router-link to="/detail?id=001&title=消息001"> 消息001</router-link>
<router-link :to="{ name: 'detail', path: '/detail', query: { id: '001', title: '消息001' } }"
注:此種方式不需要?jiǎng)勇酚膳渲?,to屬性對(duì)象形式中name和path二選一即可 。
此時(shí)瀏覽器地址欄地址為:http://localhost:8080/detail?id=001&title=消息001
接收參數(shù)為:
$route.query.xxx
2. 攜帶params參數(shù)
<router-link :to="`/detail/${id}/${title}`"> {{ title }} </router-link>
<router-link :to="{ ? ? ? ? name: 'detail', ? ? ? ? path: '/detail', ? ? ? ? params: { ? ? ? ? ? ? ? ? id: '001', ? ? ? ? ? ? ? ? title: '消息001' ? ? ? ? } }"
注意:此種方式需要修改路由配置,且to的對(duì)象形式中只能用name匹配路由
{ ? ? ? ?name: 'detail', ? ? ? ? path: '/detail/:id/:title' ? ? ? ? component: Detail }?
此時(shí)瀏覽器地址欄地址為:http://localhost:8080/detail/001/消息001
接收參數(shù)為:
$route.params.xxx
3.將參數(shù)轉(zhuǎn)換為props屬性
我們可以通過(guò)配置路由時(shí)的props屬性,將params/query攜帶的參數(shù),在組件中用props屬性來(lái)接收,這樣用時(shí)可以直接使用,就不需要$route.params.xxx/$route.query.xxx的形式了
配置方式:
{ name:'detail', path:'/detail', component: Detail, /** 方式一,值為對(duì)象,對(duì)象中的key-value會(huì)以props的形式傳遞給Detail組件, 但是傳遞的值都是一樣的,不推薦 props: { id: '123', title: '消息001', }, **/ /** 方式二,值為布爾值,若布爾值為真,就會(huì)把該組件收到的所有params參數(shù),以props的形式傳式傳遞給Detail組件, 但之這種方式只適用于params參數(shù) props: true, **/ /** 方式三,值為函數(shù),內(nèi)置傳參$route,可以使用結(jié)構(gòu)賦值形式 **/ props({query}){ return {id: query.id, title: query.title} },
還學(xué)到了一種結(jié)構(gòu)再結(jié)構(gòu)的形式
props({ query: { id, title } }) { ? ? ? ? return { id, title }
二、編程方式跳轉(zhuǎn)路由
通過(guò)編寫代碼的方式使路由發(fā)生跳轉(zhuǎn),跳轉(zhuǎn)方式有兩種,一種是push,一種是replace,他們都是$router上的函數(shù)(存在于VueRouter原型上)。此時(shí)攜帶參數(shù)方式為:
this.$router.push({ name: 'detail', params: { id: xxx, title: xxx }, /** query: { id: xxx, title: xxx } **/ }) this.$router.replace({ name: 'detail', params: { id: xxx, title: xxx }, /** query: { id: xxx, title: xxx } **/ })
注意:不論何種方式跳轉(zhuǎn),想要在標(biāo)簽中接收到不同的params就需要在路由配置時(shí)用/:占位,不然只能接收到第一次打開時(shí)帶過(guò)來(lái)的參數(shù)。
總結(jié)
到此這篇關(guān)于vue路由跳轉(zhuǎn)攜帶參數(shù)的文章就介紹到這了,更多相關(guān)vue路由跳轉(zhuǎn)攜帶參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- vue3.0?router路由跳轉(zhuǎn)傳參問(wèn)題(router.push)
- vue跳轉(zhuǎn)同一個(gè)路由參數(shù)不同的問(wèn)題
- 關(guān)于vue中路由的跳轉(zhuǎn)和參數(shù)傳遞,參數(shù)獲取
- Vue3使用vue-router如何實(shí)現(xiàn)路由跳轉(zhuǎn)與參數(shù)獲取
- vue路由跳轉(zhuǎn)傳遞參數(shù)的方式總結(jié)
- vue路由跳轉(zhuǎn)傳參數(shù)的方法
- 詳解vue 路由跳轉(zhuǎn)四種方式 (帶參數(shù))
- Vue3.0路由跳轉(zhuǎn)攜帶參數(shù)的示例詳解
相關(guān)文章
vue3.0中使用Element-Plus中Select下的filter-method屬性代碼示例
這篇文章主要給大家介紹了關(guān)于vue3.0中使用Element-Plus中Select下的filter-method屬性的相關(guān)資料,Filter-method用法是指從一組數(shù)據(jù)中選擇滿足條件的項(xiàng),文中通過(guò)圖文以及代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12利用Vue.js實(shí)現(xiàn)checkbox的全選反選效果
最近用vue做了兩個(gè)項(xiàng)目,都需要實(shí)現(xiàn)全選反選的功能,所以想著記錄下分享給大家,方便自己或者有需要的朋友們參考講學(xué)習(xí),所以下面這篇文章主要介紹了利用Vue.js實(shí)現(xiàn)checkbox的全選反選效果,需要的朋友可以一起來(lái)學(xué)習(xí)學(xué)習(xí)。2017-01-01在vue中給列表中的奇數(shù)行添加class的實(shí)現(xiàn)方法
今天小編就為大家分享一篇在vue中給列表中的奇數(shù)行添加class的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09vue路由跳轉(zhuǎn)打開新窗口(window.open())和關(guān)閉窗口(window.close())
這篇文章主要介紹了vue路由跳轉(zhuǎn)打開新窗口(window.open())和關(guān)閉窗口(window.close())問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04ant design vue datepicker日期選擇器中文化操作
這篇文章主要介紹了ant design vue datepicker日期選擇器中文化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10npm install sentry-cli失敗的問(wèn)題解決
本文主要介紹了npm install sentry-cli失敗的問(wèn)題解決,文章首先描述了問(wèn)題現(xiàn)象,然后分析了問(wèn)題的原因,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08一文帶你了解threejs在vue項(xiàng)目中的基本使用
three.js是一個(gè)用于在Web上創(chuàng)建三維圖形的JavaScript庫(kù),它可以用于創(chuàng)建各種類型的三維場(chǎng)景,包括游戲、虛擬現(xiàn)實(shí)、建筑和產(chǎn)品可視化等,下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)一文帶你了解threejs在vue項(xiàng)目中的基本使用,需要的朋友可以參考下2023-04-04