Skip to content

Layout 组件文档

概述

Layout 组件是一个用于页面布局的容器组件,它支持灵活的插槽系统,可以轻松地为页面创建常见的布局结构。通过该组件,你可以实现如顶部导航、侧边栏、内容区域、底部等布局元素,并且通过自定义样式或传递插槽内容来灵活调整页面布局。

预览

侧边栏内容
顶部导航栏内容
主体内容区域
基本使用
<template>
  <SeLayout v-model:collapsed="collapsed">
    <template #header>
      <div>顶部导航栏内容</div>
    </template>
    <template #sider>
      <div>侧边栏内容</div>
    </template>
    <template #content>
      <div>主体内容区域</div>
    </template>
    <template #footer>
      <div>底部区域</div>
    </template>
  </SeLayout>
</template>

<script setup>
import { ref } from 'vue';


const collapsed = ref(false); // 控制侧边栏收缩状态
</script>

功能

  1. 侧边栏收缩与展开
  • 通过点击收缩/展开按钮可以切换侧边栏的宽度,默认收缩状态。
  • 收缩时侧边栏的宽度为 24px,展开时为 200px
  • 侧边栏的显示/隐藏是通过修改 widthleft 来实现的,支持平滑过渡效果。
  1. 当前项样式控制
  • 在收缩状态时,显示一个收缩按钮,点击按钮时会展开侧边栏。
  • 展开状态时,侧边栏默认内容宽度为 200px
  1. 可插拔内容区域
  • 主体内容区域、头部和底部区域可以通过插槽 (slots) 进行自定义。
  • slots.sider 插槽用于自定义侧边栏内容。
  • slots.header 插槽用于自定义顶部导航栏。
  • slots.content 插槽用于自定义主体内容区域。
  • slots.footer 插槽用于自定义底部区域。
  1. 收缩按钮
  • 只有在侧边栏收缩时,才会显示一个用于切换展开状态的按钮,按钮位于侧边栏的最左边。
  • 当侧边栏展开时,按钮显示为“◀”,收缩时按钮显示为“▶”。

组件属性

属性类型默认值说明
collapsedBooleantrue控制侧边栏是否处于收缩状态。

组件事件

事件名称参数说明
update:collapsedBoolean当侧边栏的收缩状态发生变化时,触发此事件,并传递新的收缩状态。

组件方法

  • toggleCollapsed:切换侧边栏的收缩与展开状态,并更新父组件的状态。

插槽

插槽名称说明
sider用于侧边栏的自定义内容。
header用于顶部导航栏的自定义内容。
content用于主体内容区域的自定义内容。
footer用于底部区域的自定义内容。

使用示例

vue
<template>
  <SeLayout :collapsed="collapsed" @update:collapsed="handleCollapsedChange">
    <template #header>
      <div>自定义顶部导航栏</div>
    </template>

    <template #sider>
      <div>自定义侧边栏内容</div>
    </template>

    <template #content>
      <div>自定义主体内容区域</div>
    </template>

    <template #footer>
      <div>自定义底部区域</div>
    </template>
  </SeLayout>
</template>

<script setup>
import { ref } from 'vue';
import SeLayout from './SeLayout.vue';

const collapsed = ref(true); // 控制侧边栏收缩状态

const handleCollapsedChange = (newState) => {
  collapsed.value = newState;
};
</script>

样式

  • 侧边栏是固定在页面左侧,具有平滑的收缩动画。
  • 收缩时,主内容区域的 margin-left 会随侧边栏的宽度变化,以保持布局的一致性。
  • 主体内容区域(layout-main)的左右间距会根据侧边栏的展开与收缩自动调整。

组件注意事项

  1. 收缩按钮:当侧边栏处于收缩状态时,收缩按钮会显示在侧边栏的左侧,并允许用户展开侧边栏。当侧边栏展开时,按钮会消失。

  2. 插槽使用:通过插槽可以非常灵活地自定义每个区域的内容,例如顶部导航栏、主体内容、底部区域等。

  3. 响应式设计:该组件提供的布局可以适应不同的屏幕大小,通过调整侧边栏的宽度和主内容区域的布局,适合不同的业务场景。

总结

seLayout 是一个灵活且功能强大的布局组件,可以帮助开发人员快速实现具有侧边栏收缩功能的页面。其可插拔的设计和动态样式控制,使得它可以轻松适配各种需求,适合用于后台管理系统、仪表盘以及其他需要侧边栏交互的应用场景。

Released under the MIT License.