Директива wire:current⚓︎
Директива wire:current позволяет легко обнаруживать и стилизовать активные ссылки на странице.
Рассмотрите использование data-current вместо
Livewire автоматически добавляет атрибут data-current ко всем ссылкам wire:navigate, которые соответствуют текущей странице. Вы можете стилизовать эти ссылки напрямую с помощью варианта Tailwind data-current: или CSS, без необходимости в директиве wire:current. Узнайте больше об автоматическом data-current →
Вот простой пример добавления wire:current к ссылкам в навигационной панели, чтобы активная ссылка имела более жирный шрифт:
<nav>
<a href="/dashboard" ... wire:current="font-bold text-zinc-800">Дашборд</a>
<a href="/posts" ... wire:current="font-bold text-zinc-800">Посты</a>
<a href="/users" ... wire:current="font-bold text-zinc-800">Пользователи</a>
</nav>
Теперь, когда пользователь посещает /posts, ссылка «Посты» будет иметь более жирное оформление шрифта по сравнению с другими ссылками.
Обратите внимание, что wire:current работает из коробки со ссылками wire:navigate и изменениями страниц, и автоматически добавляет атрибут data-current к соответствующим ссылкам в дополнение к указанным классам.
Точное совпадение⚓︎
По умолчанию wire:current использует стратегию частичного совпадения, означающую, что оно будет применено, если ссылка и текущая страница делят начальную часть пути URL.
Например, если ссылка /posts, а текущая страница /posts/1, директива wire:current будет применена.
Если вы хотите использовать точное совпадение, вы можете добавить модификатор .exact к директиве.
Вот пример, где вы можете использовать точное совпадение, чтобы предотвратить выделение ссылки «Дашборд», когда пользователь посещает /posts:
Строгое совпадение⚓︎
По умолчанию wire:current удаляет завершающие слэши (/) из сравнения.
Если вы хотите отключить это поведение и принудить строгое сравнение строк пути, вы можете добавить модификатор .strict:
Решение проблем⚓︎
Если wire:current не обнаруживает текущую ссылку правильно, убедитесь в следующем:
- На странице есть хотя бы один компонент Livewire, или в вашем макете жестко закодирован
@livewireScripts - У ссылки есть атрибут
href.
Справочник⚓︎
Модификаторы⚓︎
| Модификатор | Описание |
|---|---|
.exact |
Использовать точное совпадение пути вместо частичного |
.strict |
Принудить строгое сравнение пути, включая завершающие слэши |