Reputation: 15
Using a Single File Component, how can the element be accessed during a colon prefixed conditional evaluation like
:class
I tried doing:
<RouterLink to="/post-container" :class="{'is-active': (el) => subIsActive(el)}">Link Name</RouterLink>
but then the conditional doesn't work since it's not trying to execute an event handler.
My goal is check each link in a side nav menu to see which one is active according to the URL and then if it is active, change the CSS class selectors accordingly.
Upvotes: 1
Views: 42
Reputation: 22734
The RouterLink component adds two CSS classes to active links, router-link-active and router-link-exact-active.
You can customize class names:
<RouterLink :active-class="blah" :exact-active-class="blah2"/>
https://router.vuejs.org/guide/essentials/active-links.html#Active-links
If you want to access <a>
my guess a sure way is to use a directive:
<script setup>
const vMount = {
mounted(el, { value }) {
value(el);
}
};
</script>
<template>
<RouterLink v-mount="el => el.classList.toggle('active', /* some condition here */)"/>
</template>
Upvotes: 1