路由是Web應用程序的重要組成部分,能夠讓用戶在瀏覽器地址欄中輸入指定的URL來訪問站點的不同頁面。在Vue中,路由也是一個非常強大且易于使用的功能。除了指定路由路徑外,您還可以通過路由參數來通過URL傳遞數據。這種方式被稱為路由參數傳遞。
// 進行路由配置 const router = new VueRouter({ routes: [ { path: '/user/:id', name: 'user', component: User, props: true } ] }) // 定義組件 - User const User = { // 使用 props 傳遞參數 props: ['id'], template: 'User {{ id }}' }
以上的代碼可以把 props 視為傳遞到路由組件的參數列表。在這個例子中,我們定義了一個路由參數 /user/:id,其中 :id 表示參數名稱。這個參數會被 User 組件接收到,作為 props 中的一個屬性。
我們還可以在這里使用函數來傳遞參數,這個函數可以返回一個對象,其中提供了組件可用的 prop。通過這種方式,我們可以動態改變傳遞的參數。
// 進行路由配置 const router = new VueRouter({ routes: [ { path: '/user/:id', name: 'user', component: User, props: (route) =>({ id: route.query.id }) } ] }) // 定義組件 - User const User = { // 使用 props 傳遞參數 props: ['id'], template: 'User {{ id }}' }
在此代碼中,我們使用了 props 的一個特殊函數來返回一個對象。這個函數會接收到當前路由對象的參數,然后返回一個對象。
最后提醒一點,Vue 的路由參數傳遞同時也可以使用 query 參數。Query參數是一個對象,允許我們在URL中傳遞一些額外的數據。
// 進行路由配置 const router = new VueRouter({ routes: [ { path: '/user', name: 'user', component: User, props: (route) =>({ id: route.query.id }) } ] }) // 定義組件 - User const User = { // 使用 props 傳遞參數 props: ['id'], template: 'User {{ id }}' } // 將 query 參數傳遞給組件User
在此代碼中,我們定義了一個與路由 /user 相關聯的組件 User。使用<router-link>
組件傳遞 query 參數,然后路由組件會從 location.query 中檢索參數。
通過使用路由參數傳遞,我們可以輕松地跨組件傳遞數據,并且不需要使用 Vuex 等全局狀態管理工具。通過這種方式,我們可以保持簡單、清晰的代碼結構。
上一篇vue 轉盤抽獎插件
下一篇vue 路由進入之前