在vue3中使用router-link-active遇到的坑

在使用 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 }
            ]
          }
        ]
      }