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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM