Skip to content
全部文档

Tabs Blade 组件

简介

tabs 组件允许你渲染一组标签页,用于在多个内容区块之间切换:

blade
<x-filament::tabs label="Content tabs">
    <x-filament::tabs.item>
        Tab 1
    </x-filament::tabs.item>

    <x-filament::tabs.item>
        Tab 2
    </x-filament::tabs.item>

    <x-filament::tabs.item>
        Tab 3
    </x-filament::tabs.item>
</x-filament::tabs>
带图标的标签页带图标的标签页

触发标签页的激活状态

默认情况下,标签页不会显示为「激活」。要让某个标签页显示为激活,可使用 active 属性:

blade
<x-filament::tabs>
    <x-filament::tabs.item active>
        Tab 1
    </x-filament::tabs.item>

    {{-- Other tabs --}}
</x-filament::tabs>

也可以使用 active 属性按条件让标签页显示为激活:

blade
<x-filament::tabs>
    <x-filament::tabs.item
        :active="$activeTab === 'tab1'"
        wire:click="$set('activeTab', 'tab1')"
    >
        Tab 1
    </x-filament::tabs.item>

    {{-- Other tabs --}}
</x-filament::tabs>

或者,你可以使用 alpine-active 属性,通过 Alpine.js 按条件让标签页显示为激活:

blade
<x-filament::tabs x-data="{ activeTab: 'tab1' }">
    <x-filament::tabs.item
        alpine-active="activeTab === 'tab1'"
        x-on:click="activeTab = 'tab1'"
    >
        Tab 1
    </x-filament::tabs.item>

    {{-- Other tabs --}}
</x-filament::tabs>

设置标签页图标

标签页可以有图标,可使用 icon 属性设置:

blade
<x-filament::tabs>
    <x-filament::tabs.item icon="heroicon-m-bell">
        Notifications
    </x-filament::tabs.item>

    {{-- Other tabs --}}
</x-filament::tabs>
带图标的标签页带图标的标签页

设置标签页图标位置

可使用 icon-position 属性将标签页图标放在标签文字之前或之后:

blade
<x-filament::tabs>
    <x-filament::tabs.item
        icon="heroicon-m-bell"
        icon-position="after"
    >
        Notifications
    </x-filament::tabs.item>

    {{-- Other tabs --}}
</x-filament::tabs>
图标位于标签文字之后的标签页图标位于标签文字之后的标签页

设置标签页徽章

标签页可以有徽章,可使用 badge 插槽设置:

blade
<x-filament::tabs>
    <x-filament::tabs.item>
        Notifications

        <x-slot name="badge">
            5
        </x-slot>
    </x-filament::tabs.item>

    {{-- Other tabs --}}
</x-filament::tabs>
带徽章的标签页带徽章的标签页

默认情况下,标签页底层的 HTML 标签是 <button>。可使用 tag 属性将其改为 <a> 标签:

blade
<x-filament::tabs>
    <x-filament::tabs.item
        :href="route('notifications')"
        tag="a"
    >
        Notifications
    </x-filament::tabs.item>

    {{-- Other tabs --}}
</x-filament::tabs>

使用垂直标签页

可使用 vertical 属性垂直渲染标签页:

blade
<x-filament::tabs vertical>
    <x-filament::tabs.item>
        Tab 1
    </x-filament::tabs.item>

    <x-filament::tabs.item>
        Tab 2
    </x-filament::tabs.item>

    <x-filament::tabs.item>
        Tab 3
    </x-filament::tabs.item>
</x-filament::tabs>
垂直标签页垂直标签页