溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Vue3怎么獲取地址欄參數(shù)

發(fā)布時(shí)間:2023-04-25 14:37:37 來源:億速云 閱讀:146 作者:zzz 欄目:開發(fā)技術(shù)

這篇文章主要講解了“Vue3怎么獲取地址欄參數(shù)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“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

然后就可以在組件中通過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ù)進(jìn)行命名,下面代碼中:code就是命名一個(gè)路徑參數(shù)code

首先需要在router/index.js中定義好路由以及路徑參數(shù)

import { createRouter, createWebHistory } from 'vue-router'

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: '/:code',
      name: 'home',
      component: () => import('../views/home.vue')
    },
  ]
})

export default router

接著就可以在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>

三、注意點(diǎn)

入口頁面App.vue必須定義好router-view標(biāo)簽,不能圖簡單將上面定義的home組件直接引入到App.vue中,如果直接引入走的就不是路由了,因而通過useRouter也無法獲取到路由參數(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>

感謝各位的閱讀,以上就是“Vue3怎么獲取地址欄參數(shù)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Vue3怎么獲取地址欄參數(shù)這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI