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