vue3獲取url地址參數(shù)的示例詳解
vue3獲取url地址參數(shù)
import { useRouter, useRoute } from 'vue-router'; setup() { let router = useRouter(); let route = useRoute(); } function GetRequest(value) { var url = decodeURI(window.location.search); //?id="123456"&name="www"; var object = {}; if (url.indexOf("?") != -1)//url中存在問(wèn)號(hào),也就說(shuō)有參數(shù)。 { var str = url.substr(1); //得到?后面的字符串 var strs = str.split("&"); //將得到的參數(shù)分隔成數(shù)組[id="123456",name="www"]; for (var i = 0; i < strs.length; i++) { object[strs[i].split("=")[0]] = strs[i].split("=")[1];//得到{id:'123456',name:'www'} } } return object[value]; }
附錄:Vue3獲取地址欄參數(shù)
Vue3 獲取地址欄參數(shù)有兩個(gè)方式:查詢參數(shù)和路徑參數(shù)。
Vue3獲取地址欄參數(shù)是從路由router中獲取,查詢參數(shù)和路徑參數(shù)獲取方式不一樣。
一、查詢參數(shù)
比如地址 http://127.0.0.1:5173/?code=123123,
我們要獲取code參數(shù)可以路由router獲取,注意是route.query
首先需要在router/index.js中定義好路由
import { createRouter, createWebHistory } from 'vue-router' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: '/', name: 'home', component: () => import('../views/home.vue') }, ] }) export default router
然后就可以在組件中通過(guò)useRouter獲取query參數(shù)了
<script setup> import {useRouter} from 'vue-router' const { currentRoute } = useRouter(); const route = currentRoute.value; onMounted(()=>{ let code=route.query.code console.log('code', code) }) </script>
二、路徑參數(shù)
路徑參數(shù)指的是參數(shù)是拼接在地址欄中的。
比如地址 http://127.0.0.1:5173/123123
最后的123123就是參數(shù)。
這種參數(shù)首先要定義要路由,在路由中對(duì)參數(shù)進(jìn)行命名,下面代碼中:code就是命名一個(gè)路徑參數(shù)code
首先需要在router/index.js中定義好路由以及路徑參數(shù)
<script setup> import {useRouter} from 'vue-router' const { currentRoute } = useRouter(); const route = currentRoute.value; onMounted(()=>{ let code=route.query.code console.log('code', code) }) </script>
接著就可以在home.vue組件中通過(guò)路由useRouter得到參數(shù),注意是route.params
<script setup> import {useRouter} from 'vue-router' const { currentRoute } = useRouter(); const route = currentRoute.value; onMounted(()=>{ let code=route.params.code console.log('code', code) }) </script>
三、注意點(diǎn)
入口頁(yè)面App.vue
必須定義好router-view
標(biāo)簽,不能圖簡(jiǎn)單將上面定義的home組件直接引入到App.vue
中,如果直接引入走的就不是路由了,因而通過(guò)useRouter
也無(wú)法獲取到路由參數(shù)了
如下錯(cuò)誤示例:
<template> <div id="app"> <home></home> </div> </template> <script setup> import home from './views/home.vue'; </script>
正確應(yīng)該是使用router-view
標(biāo)簽
<template> <div id="app"> <router-view></router-view> </div> </template> <script setup> </script>
到此這篇關(guān)于vue3獲取url地址參數(shù)的文章就介紹到這了,更多相關(guān)vue3地址參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue子傳父關(guān)于.sync與$emit的實(shí)現(xiàn)
這篇文章主要介紹了vue子傳父關(guān)于.sync與$emit的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11使用babel-plugin-import?實(shí)現(xiàn)自動(dòng)按需引入方式
這篇文章主要介紹了使用babel-plugin-import?實(shí)現(xiàn)自動(dòng)按需引入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12Vue3使用路由及配置vite.alias簡(jiǎn)化導(dǎo)入寫(xiě)法的過(guò)程詳解
這篇文章主要介紹了Vue3使用路由及配置vite.alias簡(jiǎn)化導(dǎo)入寫(xiě)法,本文通過(guò)實(shí)例代碼給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11在Vue中進(jìn)行數(shù)據(jù)分頁(yè)的實(shí)現(xiàn)方法
在前端開(kāi)發(fā)中,數(shù)據(jù)分頁(yè)是一個(gè)常見(jiàn)的需求,特別是當(dāng)處理大量數(shù)據(jù)時(shí),Vue作為一款流行的JavaScript框架,提供了強(qiáng)大的工具和生態(tài)系統(tǒng)來(lái)實(shí)現(xiàn)數(shù)據(jù)分頁(yè),本文將介紹如何在Vue中進(jìn)行數(shù)據(jù)分頁(yè),以及如何設(shè)計(jì)一個(gè)通用的分頁(yè)組件,需要的朋友可以參考下2023-10-10vue3.0 Reactive數(shù)據(jù)更新頁(yè)面沒(méi)有刷新的問(wèn)題
這篇文章主要介紹了vue3.0 Reactive數(shù)據(jù)更新頁(yè)面沒(méi)有刷新的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04開(kāi)發(fā)一個(gè)封裝iframe的vue組件
這篇文章主要介紹了開(kāi)發(fā)一個(gè)封裝iframe的vue組件,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下2021-03-03vue指令之表單控件綁定v-model v-model與v-bind結(jié)合使用
這篇文章主要介紹了vue指令之表單控件綁定v-model v-model與v-bind結(jié)合使用,需要的朋友可以參考下2019-04-04使用Vue-scroller頁(yè)面input框不能觸發(fā)滑動(dòng)的問(wèn)題及解決方法
這篇文章主要介紹了使用Vue-scroller頁(yè)面input框不能觸發(fā)滑動(dòng)的問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08