Skip to content

Popup 弹出层

作为所有弹出类组件的底层容器,提供统一的弹出/关闭动画、遮罩管理、层级管理。

平台差异说明

App(vue)App(nvue)H5小程序

基本使用

  • 通过 show 控制弹出层显示/隐藏,支持 v-model 双向绑定。
html
<see-popup v-model:show="showPopup">
  <view style="padding: 40rpx;">弹出层内容</view>
</see-popup>

弹出位置

  • 通过 position 设置弹出位置,支持 topbottomleftrightcenter
html
<see-popup v-model:show="show" position="bottom">底部弹出</see-popup>
<see-popup v-model:show="show" position="top">顶部弹出</see-popup>
<see-popup v-model:show="show" position="center">居中弹出</see-popup>

标题栏与关闭按钮

  • 设置 isShowHeader 显示标题栏,title 设置标题文字。
  • 设置 isShowCloseBtn 显示关闭按钮。
html
<see-popup v-model:show="show" isShowHeader title="标题" isShowCloseBtn>
  <view style="padding: 40rpx;">带标题和关闭按钮</view>
</see-popup>

关闭前钩子

  • 通过 beforeClose 在关闭前执行异步校验,返回 false 阻止关闭。
html
<see-popup v-model:show="show" :beforeClose="onBeforeClose">
  <view>内容</view>
</see-popup>

<script setup>
const onBeforeClose = () => {
  // 返回 false 阻止关闭,返回 Promise<boolean> 支持异步
  return new Promise((resolve) => {
    uni.showModal({
      title: '确认关闭?',
      success: (res) => resolve(!res.cancel)
    })
  })
}
</script>

API

Props

参数名说明类型默认值
show是否显示(v-model)Booleanfalse
position弹出位置'top' | 'bottom' | 'left' | 'right' | 'center''bottom'
zIndexz-index 层级Number1000
duration动画时长(ms)Number300
isOverlay是否显示遮罩Booleantrue
overlayBackground遮罩背景色String'var(--see-overlay-bg)'
overlayOpacity遮罩透明度Number1
isCloseOnClickOverlay点击遮罩是否关闭Booleantrue
isLockScroll是否锁定背景滚动Booleantrue
isShowCloseBtn是否显示关闭按钮Booleanfalse
closeBtnPosition关闭按钮位置String'top-right'
isRound是否圆角Booleantrue
borderRadius自定义圆角值String'32rpx 32rpx 0 0'
isSafeArea是否适配安全区Booleantrue
isShowHeader是否显示标题栏Booleanfalse
title标题文字String''
transitionName过渡动画名称String'see-popup'
isCloseOnPressBack是否响应返回键Booleantrue
beforeClose关闭前钩子,返回 false 阻止关闭(() => boolean | Promise<boolean>) | nullnull

Events

属性名说明回调参数
onOpen弹出层打开时触发-
onOpened打开动画结束时触发-
onClose弹出层关闭时触发-
onClosed关闭动画结束时触发-
onClickOverlay点击遮罩时触发-
update:showv-model 更新value: boolean

Slots

插槽名说明
default弹出层内容
header标题栏内容
close-btn关闭按钮内容

Expose 方法

方法名说明参数
open打开弹出层-
close关闭弹出层-
toggle切换弹出层状态-

辽 ICP 备 2025070134 号