Skip to content

Popover 弹出框

用于在触发元素附近展示浮层内容,支持 hover、click、manual 触发和 Popper 定位能力。

示例

基础用法

触发方式

内容渲染

虚拟触发

暴露方法

API

Props

属性名说明类型默认值示例
trigger触发方式'hover' | 'click' | 'manual''hover'trigger="click"
content显示内容string''content="提示内容"
width内容宽度number | string100width="240px"
placement出现位置Placement'bottom'placement="top-start"
disabled是否禁用booleanfalsedisabled
offset内容偏移量number-:offset="16"
visible手动控制显隐boolean | nullnullv-model:visible="visible"
show-arrow是否显示箭头booleantrue:show-arrow="false"
popper-optionsPopper 配置Partial<Options>{}:popper-options="{ strategy: 'fixed' }"
strategy定位策略'absolute' | 'fixed''absolute'strategy="fixed"
fallback-placements回退位置Placement[]-:fallback-placements="['top', 'right']"
gpu-acceleration是否开启 GPU 加速booleantrue:gpu-acceleration="false"
popper-class浮层类名string | object | array''popper-class="custom-popper"
show-after延迟显示时间,单位 msnumber0:show-after="200"
hide-after延迟关闭时间,单位 msnumber250:hide-after="100"
auto-close是否自动关闭booleantrue:auto-close="false"
popper-style浮层样式StyleValue{}:popper-style="{ padding: '12px' }"
append-to内容挂载目标string | HTMLElement'body'append-to="#app"
effect主题'light' | 'dark''light'effect="dark"
raw-content是否将 content 作为 HTML 字符串booleanfalseraw-content
virtual-triggering是否虚拟触发booleanfalsevirtual-triggering
virtual-ref虚拟触发元素Ref<HTMLElement | null>null:virtual-ref="triggerRef"
z-index浮层层级number-:z-index="3000"
enterable鼠标是否可进入浮层booleantrue:enterable="false"
teleported是否启用 teleportbooleantrue:teleported="false"

Events

事件名说明回调参数示例
update:visible显隐状态变化时触发(visible: boolean)@update:visible="onUpdate"
show显示时触发-@show="onShow"
hide隐藏时触发-@hide="onHide"
before-enter进入前触发-@before-enter="onBeforeEnter"
before-leave离开前触发-@before-leave="onBeforeLeave"

Slots

插槽名说明作用域参数示例
reference触发元素-<template #reference>
default浮层内容;未提供 content 插槽时使用-<template #default>
content自定义浮层内容;优先级高于 default 插槽-<template #content>

Exposes

方法名说明类型示例
show显示浮层() => voidpopoverRef.value?.show()
hide隐藏浮层() => voidpopoverRef.value?.hide()

注意事项

  • 使用 trigger="manual" 时,应通过 visible 或暴露方法控制显隐。
  • auto-close 当前仅支持 boolean,不提供按时间自动关闭的能力。
  • raw-content 会渲染 HTML 字符串,请仅用于可信内容。
  • 使用 virtual-triggering 时,virtual-ref 需要指向一个真实 DOM 元素或组件根元素。