@Eugene07

Как сделать активный класс только на одном пункте меню?

Есть такой код:
<template>
   <ul class="sidenav app-sidenav open">
      <li v-for="link in links" :key="link.url">
         <router-link
            :to="link.url"
            class="waves-effect waves-orange pointer"
         >
            {{ link.title }}
         </router-link>
      </li>
   </ul>
</template>

<script>
export default {
   data: () => ({
      links: [
         { title: "Счет", url: "/" },
         { title: "История", url: "/history" },
         { title: "Планирование", url: "/planning" },
         { title: "Новая запись", url: "/record" },
         { title: "Категории", url: "/categories" },
      ],
   }),
};
</script>

Нужно чтобы только одному пункту меню присваивался класс active и у других пунктов его не было.
Помогите пожалуйста
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Такой класс уже есть. Если надо стилизовать ссылку - используйте его.

UPD. Вынесено из комментариев:

А можно как-то присваивать свой класс?

Как-то можно:

computed: {
  activeLink() {
    return this.links.find(n => n.url === this.$route.path);
  },
},

:class="{ active: activeLink === link }"

Одно непонятно - зачем?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы