Если элемент запускает действие, а не переход — сохраняет, удаляет, открывает модальное окно, — возьмите CdsButton. Кнопке тоже можно передать
hrefилиto, когда переход должен выглядеть кнопкой. Путь по иерархии разделов собирают CdsBreadcrumbs, а равнозначные разделы переключают CdsTabs.
Вариации
Текст ссылки
Проп text задаёт подпись строкой, слот default — произвольной разметкой, например текстом с иконкой. Слот приоритетнее пропа.
Адрес
Проп href рендерит обычную ссылку. Атрибуты пишутся на компоненте как на теге a: target="_blank" открывает страницу в новой вкладке — пометьте такую ссылку иконкой, чтобы уход из приложения не был неожиданностью. Посещённые ссылки меняют цвет; якоря вида #section остаются прежними.
Маршрут приложения
Проп to принимает путь или объект маршрута vue-router: переход проходит без перезагрузки страницы, а на активном маршруте ссылка получает aria-current="page". Проп replace заменяет текущую запись в истории вместо новой — так возврат «назад» ведёт мимо промежуточного экрана. Проп exact считает маршрут активным только при полном совпадении, а не по префиксу.
<CdsLink to="/profile" text="Профиль" />
<CdsLink :to="{ name: 'order', params: { id } }" exact text="Заказ" />
<CdsLink to="/login" replace text="Войти" />Отключённая ссылка
Проп disabled гасит цвет и снимает переход: компонент отменяет клик, проставляет aria-disabled и убирает ссылку из обхода по Tab. Рядом объясните, почему переход недоступен — само по себе серое состояние причину не называет.
Рекомендации
Сценарии использования
Ссылка внутри текста
В абзаце ссылка занимает ровно ту фразу, которая называет цель перехода. Обработчик @click.prevent оставляет пользователя на странице и раскрывает подробности на месте, а href="mailto:…" открывает почтовый клиент.
Список результатов
Заголовки найденных документов — ссылки: пользователь сканирует список глазами и открывает нужный. Текст берётся из пропа text, а обработчик click показывает выбранный документ, не покидая страницу.
Документы с ограниченным доступом
Список показывает все документы процедуры, но часть из них закрыта: disabled оставляет их названия видимыми и запрещает переход. Кнопка запроса доступа снимает ограничение — ссылки оживают без перезагрузки списка.
API
Пропсы
| Имя | Тип | По умолчанию | Описание |
|---|---|---|---|
content | string | number | undefined | — | Контент, отображаемый в компоненте. |
disabled | boolean | undefined | — | Отключает ссылку: навигация не выполняется, проставляются aria-disabled и tabindex=-1 |
exact | boolean | undefined | — | Если true, активное состояние будет применяться только при точном совпадении маршрута |
href | string | undefined | — | Атрибут href для ссылки. Если указан, компонент будет вести себя как обычная ссылка |
replace | boolean | undefined | — | Если true, навигация по маршруту будет заменять текущую запись в истории вместо добавления новой |
text | string | number | undefined | — | Текст, отображаемый в компоненте. |
theme | string | undefined | — | Тема компонента |
to | LinkTo | undefined | — | Маршрут назначения или объект для RouterLink. Если указан, компонент будет вести себя как RouterLink |
События
| Имя | Тип | Описание |
|---|---|---|
click | [e: MouseEvent] | Клик по ссылке |
Слоты
| Имя | Тип | Описание |
|---|---|---|
default | any | Контент ссылки. Приоритетнее пропа text. |