詳解Vue如何通過URL傳遞與獲取參數(shù)
前言
Vue Router 路由實(shí)際上就是一種映射關(guān)系。例如,多個(gè)選項(xiàng)卡之間的切換就可以使用路由功能來實(shí)現(xiàn)。在切換時(shí),根據(jù)鼠標(biāo)的點(diǎn)擊事件顯示不同的頁面內(nèi)容,這相當(dāng)于事件和事件處理程序之間的映射關(guān)系。在實(shí)際的開發(fā)中,經(jīng)常需要通過URL來傳遞參數(shù),同時(shí)在 JavaScript 腳本中需要獲取URL中的參數(shù)。下面將介紹 Vue 項(xiàng)目中,如何通過 URL 對(duì)參數(shù)進(jìn)行傳遞與獲取。
1、傳遞 URL 參數(shù)
(1)配置路由信息:
const routes = [ { path: '/course/detail/:id', name: 'courseDetail', component: CourseDetail, meta: { title: '課程詳情' } } ]
該路由配置的 path 值為: '/course/detail/:id',其中 :id 為參數(shù)的占位符,需要通過 params:{} 方式賦值 。有效地址例如:/course/detail/1 或者 /course/detail/2 等。
(2)URL參數(shù)的傳遞:
<router-link :to="{ name: 'courseDetail', params: { id: course.id }, query: { name: course.name, teacher: course.teacher } }">預(yù)覽</router-link>
該路由配置的 path 值為: '/course/detail/:id',其中 :id 為參數(shù)的占位符,需要通過 params:{} 方式賦值 。有效地址例如:/course/detail/1 或者 /course/detail/2 等。
(2)URL參數(shù)的傳遞:
<router-link :to="{ name: 'courseDetail', params: { id: course.id }, query: { name: course.name, teacher: course.teacher } }">預(yù)覽</router-link>
參數(shù)說明:
params 參數(shù):會(huì)在URL中顯示出傳參的值,刷新頁面不會(huì)丟失參數(shù),使用該方式傳值的時(shí)候,需要在路由提前配置好參數(shù),如上述代碼:path: '/course/detail/:id',其中 :id 為參數(shù)的占位符。
query 參數(shù):傳遞的參數(shù)會(huì)拼接在地址欄中(?name=xxx&teacher=xxx),刷新頁面不會(huì)丟失參數(shù),使用 path 和 name 都可以。
執(zhí)行結(jié)果:
2、獲取 URL 參數(shù)
(1)模板中獲取URL參數(shù):
<!-- 獲取 params 對(duì)象中的參數(shù) --> <p>課程編號(hào):{{ $route.params.id }}</p> <!-- 獲取 query 對(duì)象中的參數(shù) --> <p>課程名稱:{{ $route.query.name }}</p> <p>課程講師:{{ $route.query.teacher }}</p>
(2)JavaScript 中獲取URL參數(shù)(Vue 2.0):
this.id = this.$route.params.Id || 0; //獲取 params 對(duì)象中的參數(shù) this.name = this.$route.query.name; //獲取 query 對(duì)象中的參數(shù)
(3)JavaScript 中獲取URL參數(shù)(Vue 3.0 ):
import { useRoute } from 'vue-router'; //獲取URL參數(shù) const route = useRoute(); let id = route.params.id || 0; //獲取 params 對(duì)象中的參數(shù) let name = route.query.name; //獲取 query 對(duì)象中的參數(shù) let teacher = route.query.teacher; //打印參數(shù) console.log("獲取URL參數(shù)id:", id); console.log("獲取URL參數(shù)name:", name); console.log("獲取URL參數(shù)teacher:", teacher);
執(zhí)行結(jié)果:
到此這篇關(guān)于詳解Vue如何通過URL傳遞與獲取參數(shù)的文章就介紹到這了,更多相關(guān)Vue URL傳遞與獲取參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue與iframe頁面數(shù)據(jù)互相通信的實(shí)現(xiàn)示例
這篇文章主要給大家介紹了vue與iframe頁面數(shù)據(jù)互相通信的實(shí)現(xiàn)示例,文中通過代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-12-12vue3中通過遍歷傳入組件名稱動(dòng)態(tài)創(chuàng)建多個(gè)component 組件
這篇文章主要介紹了vue3中通過遍歷傳入組件名稱動(dòng)態(tài)創(chuàng)建多個(gè)component 組件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03vue2實(shí)現(xiàn)directive自定義指令的封裝與全局注冊(cè)流程
自定義指令是對(duì)普通DOM元素進(jìn)行的底層操作,它是一種有效的的補(bǔ)充和擴(kuò)展,不僅可以用于定義任何的dom操作,并且是可以復(fù)用的,下面這篇文章主要給大家介紹了關(guān)于vue2實(shí)現(xiàn)directive自定義指令的封裝與全局注冊(cè)流程的相關(guān)資料,需要的朋友可以參考下2023-02-02vue2.0項(xiàng)目集成Cesium的實(shí)現(xiàn)方法
這篇文章主要介紹了vue2.0項(xiàng)目集成Cesium的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Vue+webpack項(xiàng)目基礎(chǔ)配置教程
這篇文章主要介紹了Vue+webpack項(xiàng)目基礎(chǔ)配置教程,需要的朋友可以參考下2018-02-02vue mvvm數(shù)據(jù)響應(yīng)實(shí)現(xiàn)
這篇文章主要介紹了vue mvvm數(shù)據(jù)響應(yīng)實(shí)現(xiàn)的方法,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下2020-11-11Vue3中Watch、Watcheffect、Computed的使用和區(qū)別解析
Watch、Watcheffect、Computed各有優(yōu)劣,選擇使用哪種方法取決于應(yīng)用場景和需求,watch?適合副作用操作,watchEffect適合簡單的自動(dòng)副作用管理,computed?適合聲明式的派生狀態(tài)計(jì)算,本文通過場景分析Vue3中Watch、Watcheffect、Computed的使用和區(qū)別,感興趣的朋友一起看看吧2024-07-07Vue @click.stop阻止事件向祖先元素傳遞方式(事件冒泡)
在Vue中,使用@click.stop修飾符可以阻止事件向父級(jí)元素傳遞,從而實(shí)現(xiàn)單擊父級(jí)元素執(zhí)行函數(shù),而單擊子元素不執(zhí)行函數(shù)的需求2025-02-02