Vue 路由是 Vue.js 的核心組件之一,常用于實現單頁應用程序(SPA)。可以通過路由實現不刷新頁面的 URL 跳轉,并可以攜帶參數。下面我們詳細介紹 Vue 路由如何攜帶參數。
參數可以通過路由路徑傳遞也可以通過查詢字符串傳遞。路徑傳遞參數時,在路由路徑后面加上參數值即可,例如:
const router = new VueRouter({ routes: [ { path: '/user/:id', component: User } ] })
當用戶訪問 /user/123 時,參數 id 將被設置為 123,可以在 User 組件中通過 this.$route.params.id 獲取參數值。
查詢字符串傳遞參數時,可以在URL中用?和&符號連接多個鍵值對,例如:
const router = new VueRouter({ routes: [ { path: '/user', component: User } ] })
當用戶訪問 /user?id=123&name=張三 時,可以在 User 組件中通過 this.$route.query 獲取參數值。
在路由中傳遞參數時,可以在路由配置對象中使用 props 屬性來傳遞參數。默認情況下,路由參數將通過 this.$route.params 或 this.$route.query 傳遞給組件,但是這種方式需要在組件中手動獲取路由參數:
const router = new VueRouter({ routes: [ { path: '/user/:id', component: User, props: true } ] })
通過設置 props: true,路由參數將會被設置為組件實例的屬性,例如:
const User = { props: ['id'], template: 'User {{ id }}' }
當用戶訪問 /user/123 時,User 組件將顯示 User 123。
如果需要將路由參數與其他數據一起傳遞給組件,可以使用函數返回一個對象來設置 props 屬性。例如:
const router = new VueRouter({ routes: [ { path: '/user/:id', component: User, props: (route) =>({ id: route.params.id, name: '張三' }) } ] })
當用戶訪問 /user/123 時,User 組件將顯示 User 123 張三。
以上就是關于 Vue 路由攜帶參數的詳細介紹。無論是路徑傳遞還是查詢字符串傳遞參數,在 Vue 路由中都能夠非常方便地實現,通過設置 props 屬性還可以將路由參數與其他數據一起傳遞給組件。