Skip to content

YueDialog 对话框 ​

YueDialog 是一个阻塞式的模态表面,用于在继续之前要求用户完成或确认一件事。它处理焦点陷阱、按模态链计算的背景 inert、滚动锁定、aria-modal、条件回焦、Esc 顶层仲裁与关闭守卫;菜单、tooltip 和非模态浮层由专用组件负责。

基础确认真实模态:Tab 在卡片内环回,背景 inert,Esc 或遮罩关闭并回报原因。
最近一次关闭:尚未关闭

危险确认 ​

variant="danger" 把 role 提升为 alertdialog,并默认关闭 Esc 与遮罩两条渠道,用户必须通过按钮回答。

删除确认危险变体只允许按钮关闭,确认文案可通过 confirm-text 覆盖 locale 键。

长内容滚动 ​

scrollable 固定 header 与 footer,仅正文滚动;省略时整张卡片滚动。

条款正文滚动归属由 scrollable 切换,背景滚动始终被锁死且不产生布局跳动。

关闭守卫 ​

任何关闭都先经过 before-close(reason),返回 false 或一个 reject 的 Promise 会中止关闭,受控状态保持不变。

拦截遮罩关闭守卫按 reason 决策:这里拒绝 scrim 关闭,其他渠道放行。

典型用法 ​

vue
<YueDialog v-model="open" title="Title" variant="danger" @confirm="remove">
  <p>Body content goes in the default slot.</p>
</YueDialog>

组件默认 Teleport 到 body,可用 teleport 指定其他目标或设为 false 保持原位;入场动画从 trigger 中心飞入到视口中心(无 trigger 时原地生长)。

详见 API 和 指南。