wire:current
wire:current ディレクティブを使用すると、ページ上の現在アクティブなリンクを簡単に検出してスタイルを設定できます。The wire:current directive allows you to easily detect and style currently active links on a page.
wire:current をナビゲーションバーのリンクに追加して、現在アクティブなリンクのフォントウェイトを強くする簡単な例を次に示します。Here's a simple example of adding wire:current to links in a navbar so that the currently active link has a stronger font weight:
<nav>
<a href="/dashboard" ... wire:current="font-bold text-zinc-800">Dashboard</a>
<a href="/posts" ... wire:current="font-bold text-zinc-800">Posts</a>
<a href="/users" ... wire:current="font-bold text-zinc-800">Users</a>
</nav>
これで、ユーザーが /posts にアクセスすると、"Posts" リンクは他のリンクよりも強いフォントで表示されます。Now when a user visits /posts, the "Posts" link will have a stronger font treatment than the other links.
wire:current は、wire:navigate リンクとページの変更でそのまま動作することに注意してください。You should note that wire:current works out of the box with wire:navigate links and page changes.
完全一致Exact matching
デフォルトでは、wire:current は部分一致戦略を使用します。つまり、リンクと現在のページが URL のパスの先頭部分を共有している場合に適用されます。By default, wire:current uses a partial matching strategy, meaning it will be applied if the link and current page share the beginning portion of the Url's path.
たとえば、リンクが /posts で、現在のページが /posts/1 の場合、wire:current ディレクティブが適用されます。For example, if the link is /posts, and the current page is /posts/1, the wire:current directive will be applied.
完全一致を使用する場合は、.exact 修飾子をディレクティブに追加できます。If you wish to use exact matching, you can add the .exact modifier to the directive.
ユーザーが /posts にアクセスしたときに "Dashboard" リンクが強調表示されないようにするために、完全一致を使用する例を次に示します。Here's an example where you might want to use exact matching to prevent the "Dashboard" link from being highlighted when the user visits /posts:
<nav>
<a href="/" wire:current.exact="font-bold">Dashboard</a>
</nav>
厳密な一致Strict matching
デフォルトでは、wire:current は比較から末尾のスラッシュ (/) を削除します。By default, wire:current will remove trailing slashes (/) from its comparison.
この動作を無効にして、厳密なパス文字列の比較を強制する場合は、.strict 修飾子を追加できます。If you'd like to disable this behavior and force a stract path string comparison, you can append the .strict modifier:
<nav>
<a href="/posts/" wire:current.strict="font-bold">Dashboard</a>
</nav>
トラブルシューティングTroubleshooting
wire:current が現在のリンクを正しく検出しない場合は、以下を確認してください。If wire:current is not detecting the current link correctly, ensure the following:
- ページに少なくとも 1 つの Livewire コンポーネントがあるか、レイアウトに
@livewireScriptsをハードコードしていることYou have at least one Livewire component on the page, or have hardcoded@livewireScriptsin your layout - リンクに
href属性があることYou have ahrefattribute on the link.