Overlay 浮层管理

Overlay 浮层管理

何时使用

  • 需要浮层层级管理或遮罩时。

OverlayProvider 统一管理应用内弹层(Modal/Dialog/Drawer 等)的 z-index 层级与显示状态。

已包裹 OverlayProvider,弹层层级已统一管理

基础用法

在应用根组件包裹一次 OverlayProvider

<script setup lang="ts">
import { OverlayProvider } from "@reglow/reui";
</script>

<template>
  <OverlayProvider>
    <App />
  </OverlayProvider>
</template>

导入

import { OverlayProvider, useOverlayLayer } from "@reglow/reui";

更多示例

在自定义弹层中使用

使用 useOverlayLayer() composable 获取层级,在自定义弹层组件中管理 z-index。

import { useOverlayLayer } from "@reglow/reui";

const overlay = useOverlayLayer();

// 进入模态层(Dialog/Modal/Drawer 等)
const { overlay: overlayZ, content: contentZ } = overlay.enter();
// overlayZ -> 遮罩层 z-index
// contentZ -> 内容层 z-index(比遮罩 +1)

// 离开时释放
overlay.leave();

// flyout 类组件(Popover/DropdownMenu 等)
const flyoutZ = overlay.getFlyoutZIndex();

// 消息类组件(Toast/Notification 等)
const messageZ = overlay.getMessageZIndex();

API

OverlayProvider

无 props,在根组件包裹一次即可。通过 provide 注入层级管理上下文。

useOverlayLayer()

返回以下方法:

方法说明返回值
enter()进入一个模态层,返回遮罩和内容的 z-index{ overlay: number, content: number }
leave()离开当前模态层,释放层级void
getFlyoutZIndex()获取 flyout 层级(Popover/Dropdown 等)number
getMessageZIndex()获取消息层级(Toast/Notification,始终置顶)number

层级体系

层级z-index 基准用途
overlay-base1000模态遮罩基线
flyoutbase + 2浮层(Popover、DropdownMenu 等)
messagebase + 9000消息提示(Toast、Notification)