You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel10中Mary UI+Livewire Volt默认展开子菜单且不激活的方法

解决Mary UI子菜单默认展开且不激活的问题(Laravel 10 + Livewire-Volt)

要实现子菜单默认展开且父项不激活,只需利用Mary UI <x-menu-sub> 组件的内置属性,结合Volt语法即可完成:

方法1:静态直接设置

直接在组件上显式指定expanded和active属性:

<x-menu-item title="xxxx" icon="o-building-storefront" link="/" />
<x-menu-item title="xxxxx" icon="o-shopping-cart" link="/" />
<x-menu-sub title="xxxxx" icon="o-cog-6-tooth" :expanded="true" :active="false">
    <x-menu-item title="xxxx" icon="o-wifi" link="####" />
    <x-menu-item title="xxxxx" icon="o-archive-box" link="####" />
</x-menu-sub>
  • :expanded="true":强制子菜单默认展开
  • :active="false":强制父菜单项不处于激活状态(即使子项路由匹配也不会激活父项)

方法2:Volt响应式状态控制(如需动态切换)

如果后续需要通过交互控制菜单展开/折叠,可在Volt组件中定义状态变量:

<?php
use function Livewire\Volt\{state};

// 初始化状态为展开
state(['settingsMenuExpanded' => true]);
?>

<div>
    <x-menu-item title="xxxx" icon="o-building-storefront" link="/" />
    <x-menu-item title="xxxxx" icon="o-shopping-cart" link="/" />
    <x-menu-sub 
        title="xxxxx" 
        icon="o-cog-6-tooth" 
        :expanded="$settingsMenuExpanded" 
        :active="false"
    >
        <x-menu-item title="xxxx" icon="o-wifi" link="####" />
        <x-menu-item title="xxxxx" icon="o-archive-box" link="####" />
    </x-menu-sub>
</div>

这种方式可以通过Volt的方法动态修改$settingsMenuExpanded的值,实现菜单的展开/折叠切换,同时保持父项始终不激活。

内容的提问来源于stack exchange,提问作者newLaraveJoiner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 21:03:38