在使用 router-link-active 設置鏈接激活時CSS類名時,發現在例如 /member/order 和 /member/order/:id 這兩個都包含 /member/order的路由路徑,其中后者無法和前者一樣設置類名,也就是 router-link-active 加不上
在vue2中可以實現,因為 router-link-active 本就不是精確匹配,只要路由路徑包含router-link組件的to屬性值,就可以在鏈接激活時設置CSS類名
但是在vue3中,無法實現
在查看官方回答后,該屬性有新的改變
也就是說,如果在Router v4中,如果想使用 router-link-active ,路由路徑包含需要包含router-link組件的to屬性值 且 需要路由嵌套關系。
原路由:
{ path: '/member', component: MemberLayout, children: [ { path: '/member', component: MemberHome }, { path: '/member/order', component: MemberOrder }, { path: '/member/order/:id', component: MemberDetail } ] }
更改后:
{ path: '/member', component: MemberLayout, children: [ { path: '/member', component: MemberHome }, // { path: '/member/order', component: MemberOrder }, // { path: '/member/order/:id', component: MemberDetail } { path: '/member/order', // 創建一個RouterView容器形成嵌套關系 component: { render: () => h(<RouterView />) }, children: [ { path: '', component: MemberOrder }, { path: ':id', component: MemberDetail } ] } ] }