Как отключить vuejs роутер-линк? - PullRequest
2 голосов
/ 23 апреля 2020

У меня есть одностраничное приложение, которое я создал с использованием vue, а навигационные ссылки выполнены с использованием тегов router-link. В навигации есть пара элементов, которые мой босс хочет иметь в навигации, но отключен, чтобы люди могли увидеть некоторые функции, которые появятся в ближайшее время. Однако я не могу понять, как полностью отключить ссылку на роутер!

preventDefault ничего не делает, @click.native.prevent="stopClick()" ничего не делает (я попытался отправить его в функцию, чтобы посмотреть, будет ли это предотвращать щелчок, но он просто вызывает функцию и в любом случае маршрутизирует, несмотря на предупреждение), добавление класса disabled и установка правила css для pointer-events: none; ничего не делает. Я не уверен, что еще можно попробовать, это единственный способ сделать так, чтобы отключенные ссылки были обычным текстом, а не маршрутизаторами?

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Я не думаю, что есть подходящее решение для этой проблемы, так как ссылки маршрутизатора не имеют атрибута disabled, но один трюк будет использовать tag="button" для добавления необходимого атрибута следующим образом:

<router-link 
     to="/link"
     tag="button"
     :disabled="true"
>
  Link
</router-link>
0 голосов
/ 23 апреля 2020

Сегодня все еще нет собственного решения. Но для этого на репо с vue -рутером есть открытый PR: https://github.com/vuejs/vue-router/pull/2098.

Обходной путь должен использовать:

<router-link 
  :disabled="!whateverActivatesThisLink" 
  :event="whateverActivatesThisLink ? 'click' : ''"
  to="/link"
>
  /link
</router-link>
...