主题
wire:current
wire:current 指令允许你轻松检测页面上当前活动的链接并设置其样式。
以下是向导航栏中的链接添加 wire:current 的简单示例,以便当前活动链接具有更强的字体粗细:
blade
<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"链接将具有比其他链接更强的字体处理。
你应该注意 wire:current 开箱即用地与 wire:navigate 链接和页面更改一起工作。
精确匹配
默认情况下,wire:current 使用部分匹配策略,这意味着如果链接和当前页面共享 URL 路径的开始部分,它将被应用。
例如,如果链接是 /posts,当前页面是 /posts/1,则将应用 wire:current 指令。
如果你希望使用精确匹配,可以将 .exact 修饰符添加到指令中。
以下是一个示例,你可能希望使用精确匹配来防止用户访问 /posts 时突出显示"Dashboard"链接:
blade
<nav>
<a href="/" wire:current.exact="font-bold">Dashboard</a>
</nav>严格匹配
默认情况下,wire:current 会从其比较中删除尾随斜杠(/)。
如果你想禁用此行为并强制进行严格的路径字符串比较,可以附加 .strict 修饰符:
blade
<nav>
<a href="/posts/" wire:current.strict="font-bold">Dashboard</a>
</nav>故障排除
如果 wire:current 未正确检测当前链接,请确保以下事项:
- 页面上至少有一个 Livewire 组件,或在布局中硬编码了
@livewireScripts - 链接上有
href属性。