首頁  >  文章  >  web前端  >  Vue3怎麼取得網址列參數

Vue3怎麼取得網址列參數

王林
王林轉載
2023-05-15 22:25:045640瀏覽

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 &#39;vue-router&#39;

const { currentRoute } = useRouter();
const route = currentRoute.value;

onMounted(()=>{
  let code=route.query.code
  console.log(&#39;code&#39;, code)
})

</script>

二、路徑參數

路徑參數指的是參數是拼接在網址列中的。
例如位址 http://127.0.0.1:5173/123123
最後的123123就是參數。

這種參數首先要定義要路由,在路由中對參數進行命名,下面程式碼中:code就是命名一個路徑參數code

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

import { createRouter, createWebHistory } from &#39;vue-router&#39;

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

export default router

接著就可以在home.vue元件中透過路由useRouter得到參數,注意是route.params

<script setup>
import {useRouter} from &#39;vue-router&#39;

const { currentRoute } = useRouter();
const route = currentRoute.value;

onMounted(()=>{
  let code=route.params.code
  console.log(&#39;code&#39;, code)
})

</script>

三、注意點

入口頁App.vue必須定義好router-view標籤,不能圖簡單將上面定義的home元件直接引入到App.vue中,如果直接引入走的就不是路由了,因而通過useRouter也無法獲取到路由參數了

如下錯誤示例:

<template>
  <div id="app">
    <home></home>
  </div>

</template>

<script setup>
import home from &#39;./views/home.vue&#39;;
</script>

正確應該是使用router-view標籤

<template>
  <div id="app">
    <router-view></router-view>
  </div>
</template>
<script setup>

</script>

以上是Vue3怎麼取得網址列參數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除