Vue中的動態(tài)路由匹配路由問題
vue-router 動態(tài)路由匹配
我們經(jīng)常需要把某種模式匹配到的所有路由,全都映射到同個組件。
例如,我們有一個 User
組件,對于所有 ID 各不相同的用戶,都要使用這個組件來渲染。
那么,我們可以在 vue-router
的路由路徑中使用“動態(tài)路徑參數(shù)”(dynamic segment) 來達(dá)到這個效果:
簡而言之,動態(tài)路由匹配解決的是頁面根據(jù)id跳轉(zhuǎn)的問題
// appfront/src/router const User = { template: '<div>User</div>' } const router = new VueRouter({ routes: [ // 動態(tài)路徑參數(shù) 以冒號開頭 { path: '/user/:id', component: User } ] })
現(xiàn)在呢,像 /user/foo
和 /user/bar
都將映射到相同的路由。
一個“路徑參數(shù)”使用冒號 :
標(biāo)記。當(dāng)匹配到一個路由時,參數(shù)值會被設(shè)置到 this.$route.params
,可以在每個組件內(nèi)使用。
于是,我們可以更新 User
的模板,輸出當(dāng)前用戶的 ID:
const User = { template: '<div>User {{ $route.params.id }}</div>' }
你可以在一個路由中設(shè)置多段“路徑參數(shù)”,對應(yīng)的值都會設(shè)置到 $route.params
中。
例如:
模式 | 匹配路徑 | $route.params |
---|---|---|
/user/:username | /user/evan | { username: 'evan' } |
/user/:username/post/:post_id | /user/evan/post/123 | { username: 'evan', post_id: '123' } |
除了 $route.params
外,$route
對象還提供了其它有用的信息,例如,$route.query
(如果 URL 中有查詢參數(shù))、$route.hash
等等。
你可以查看 API 文檔 的詳細(xì)說明
下面這個是在實(shí)際應(yīng)用中使用動態(tài)路由進(jìn)行跳轉(zhuǎn)對應(yīng)頁(這里采用的是按鈕跳轉(zhuǎn),還可以route-link跳轉(zhuǎn)此處略過)
// components/yyy.vue ... <el-button size="mini" @click="handleEdit(scope.row.Id)">編輯</el-button> ... <script> export default { methods: { handleEdit(Id) { # 跳轉(zhuǎn)到xxx+id頁面 this.$router.push({path:'/xxx/'+Id}) }, </script>
// router/index.js ... import Router from 'vue-router' import xxx from '@/components/xxx' ... export default new Router({ routes: [ ... { path:'/xxx/:Id', name:'xxx', component: xxx }, ... ] })
跳轉(zhuǎn)后對參數(shù)進(jìn)行獲取
// components/xxx.vue ... <div>{{ this.$route.params.id }}</div> ...
參考:
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue+SSM實(shí)現(xiàn)驗(yàn)證碼功能
這篇文章主要介紹了vue+SSM實(shí)現(xiàn)驗(yàn)證碼功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2018-12-12vue中報錯“error‘xxx‘?is?defined?but?never?used”問題及解決
介紹了兩種解決代碼導(dǎo)入問題的方法:單一代碼解決和全局解決,第一種方法是在代碼前面添加特定代碼并保存;第二種方法是在package.json中添加代碼后重啟項(xiàng)目,這些方法可以有效解決導(dǎo)包錯誤提示,希望對大家有幫助2024-10-10Vue模擬實(shí)現(xiàn)購物車結(jié)算功能
這篇文章主要為大家詳細(xì)介紹了Vue模擬實(shí)現(xiàn)購物車結(jié)算功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09詳解關(guān)于vue-area-linkage走過的坑
這篇文章主要介紹了詳解關(guān)于vue-area-linkage走過的坑,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06