vue3獲取url地址參數的示例詳解
vue3獲取url地址參數
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中存在問號,也就說有參數。 { var str = url.substr(1); //得到?後面的字符串 var strs = str.split("&"); //將得到的參數分隔成數組[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獲取地址欄參數
Vue3 獲取地址欄參數有兩個方式:查詢參數和路徑參數。
Vue3獲取地址欄參數是從路由router中獲取,查詢參數和路徑參數獲取方式不一樣。
一、查詢參數
比如地址 http://127.0.0.1:5173/?code=123123,
我們要獲取code參數可以路由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
然後就可以在組件中通過useRouter獲取query參數瞭
<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>
二、路徑參數
路徑參數指的是參數是拼接在地址欄中的。
比如地址 http://127.0.0.1:5173/123123
最後的123123就是參數。
這種參數首先要定義要路由,在路由中對參數進行命名,下面代碼中:code就是命名一個路徑參數code
首先需要在router/index.js中定義好路由以及路徑參數
<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組件中通過路由useRouter得到參數,註意是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>
三、註意點
入口頁面App.vue
必須定義好router-view
標簽,不能圖簡單將上面定義的home組件直接引入到App.vue
中,如果直接引入走的就不是路由瞭,因而通過useRouter
也無法獲取到路由參數瞭
如下錯誤示例:
<template> <div id="app"> <home></home> </div> </template> <script setup> import home from './views/home.vue'; </script>
正確應該是使用router-view
標簽
<template> <div id="app"> <router-view></router-view> </div> </template> <script setup> </script>
到此這篇關於vue3獲取url地址參數的文章就介紹到這瞭,更多相關vue3地址參數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- vue3獲取當前路由地址
- vue3在自定義hooks中使用useRouter報錯的解決方案
- vue3使用vue-router的完整步驟記錄
- vue3配置router路由並實現頁面跳轉功能
- Vue3的路由傳參方法超全匯總