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中定義好路由以及路徑參數
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得到參數,注意是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怎麼取得網址列參數的詳細內容。更多資訊請關注PHP中文網其他相關文章!