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中存在問號,也就說有參數(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ù)有兩個方式:查詢參數(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然后就可以在組件中通過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ù)首先要定義要路由,在路由中對參數(shù)進行命名,下面代碼中:code就是命名一個路徑參數(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組件中通過路由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>三、注意點
入口頁面App.vue必須定義好router-view標簽,不能圖簡單將上面定義的home組件直接引入到App.vue中,如果直接引入走的就不是路由了,因而通過useRouter也無法獲取到路由參數(shù)了
如下錯誤示例:
<template>
<div id="app">
<home></home>
</div>
</template>
<script setup>
import home from './views/home.vue';
</script>正確應(yīng)該是使用router-view標簽
<template>
<div id="app">
<router-view></router-view>
</div>
</template>
<script setup>
</script>到此這篇關(guān)于vue3獲取url地址參數(shù)的文章就介紹到這了,更多相關(guān)vue3地址參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue子傳父關(guān)于.sync與$emit的實現(xiàn)
這篇文章主要介紹了vue子傳父關(guān)于.sync與$emit的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2019-11-11
使用babel-plugin-import?實現(xiàn)自動按需引入方式
這篇文章主要介紹了使用babel-plugin-import?實現(xiàn)自動按需引入方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12
Vue3使用路由及配置vite.alias簡化導(dǎo)入寫法的過程詳解
這篇文章主要介紹了Vue3使用路由及配置vite.alias簡化導(dǎo)入寫法,本文通過實例代碼給大家講解的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-11-11
在Vue中進行數(shù)據(jù)分頁的實現(xiàn)方法
在前端開發(fā)中,數(shù)據(jù)分頁是一個常見的需求,特別是當處理大量數(shù)據(jù)時,Vue作為一款流行的JavaScript框架,提供了強大的工具和生態(tài)系統(tǒng)來實現(xiàn)數(shù)據(jù)分頁,本文將介紹如何在Vue中進行數(shù)據(jù)分頁,以及如何設(shè)計一個通用的分頁組件,需要的朋友可以參考下2023-10-10
vue3.0 Reactive數(shù)據(jù)更新頁面沒有刷新的問題
這篇文章主要介紹了vue3.0 Reactive數(shù)據(jù)更新頁面沒有刷新的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04
vue指令之表單控件綁定v-model v-model與v-bind結(jié)合使用
這篇文章主要介紹了vue指令之表單控件綁定v-model v-model與v-bind結(jié)合使用,需要的朋友可以參考下2019-04-04
使用Vue-scroller頁面input框不能觸發(fā)滑動的問題及解決方法
這篇文章主要介紹了使用Vue-scroller頁面input框不能觸發(fā)滑動的問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08

