Active router link CSS class

Published: November 17, 2019Updated: February 24, 2022

The Vue Router automatically applies router-link-active to active router links. No need to compare the URL yourself.

vue
<router-link to="/link">Link</router-link>
css
.router-link-active {
  background: blue;
}

If you have nested routes, you can also use router-link-exact-active to differentiate between active routes and the exact active child route.

js
const routes = [
  {
    path: '/parent',
    children: [{ path: 'child' }],
  },
]
css
.router-link-exact-active {
  background: red;
}

Now visiting /parent/child a link with /parent would be router-link-active, but only /parent/child is both router-link-active and router-link-exact-active.