Установить активный класс в роутере-ссылка вю, когда дополнительный param в родительский маршрут
У меня есть необязательный lang
.
Когда я использую маршрут foo в /:lang?/foo
, проходящем <a/>
param, он совпадает с этим маршрутом и правильно добавляет a lang
класс для .router-link-active
.
Однако во многих местах моего проекта я не передавал никаких параметров в <a/>
, и в global router navigation guard router-link
я устанавливаю beforeEach
param, если никто не передается. В этом случае lang
не будет добавлять активный класс, так как он не соответствует маршруту, потому что отсутствует param в router-link
prop.
Как я могу заставить логику сопоставления игнорировать этот необязательный параметр для всех маршрутов, поэтому у меня есть lang
и .router-link-active
классы добавил?
Вот jsfiddle, с которым я играл, где я хочу, чтобы первая ссылка была красной.
Ниже приведены соответствующие части:
.router-link-exact-active
<router-link :to="{name: 'foo'}">/foo</router-link>
<router-link :to="{name: 'foo', params: {lang: 'en'}}">/en/foo</router-link>
Ответы - Установить активный класс в роутере-ссылка вю, когда дополнительный param в родительский маршрут / Set active class in Vue router-link when optional param in parent route

28.01.2020 11:47:12
Я получил его, переопределив resolve
, так как он также используется в router-link
для поиска совпадений маршрута соответственно to