Modal 模态框
使用指南
模态框组件,可用于实现自定义的蒙层弹窗,也可以用于alert, confirm, prompt等快速交互;
TIP
此组件属于Popup家族组件,查看这篇blogPopup家族, 了解更多
代码演示
与h3-mobile-vue组件的区别以及迁移
旧版弹窗同时集成了侧滑弹窗,以及login、prompt等多种业务场景;而新的Modal弹窗组件,专注于 实现纯粹的强交互的弹窗 ;内部的代码实现也完全重写;总的来说,已经是完全不同的两个组件,如果要做迁移,请参考:
- 已废弃的props:
type、popupDirection、propmtType、popupScale、placeHolders、defaultValue、maskTop、maskStyle、shouldPreventScroll、appendToBody
; - props中的type,之前的
type="popup"
, 如果想实现侧滑弹窗,请使用新的 h3-popup 组件; - props中的
show
更名为visible
; - 旧版需要设置
appendToBody
才会在body下创建元素,现在默认就是创建在document.body
下,可以通过getRenderContainer
来更改父节点; - 现在新版
Modal
, 作为插件可以直接调用到 this.$modal
;
API
常规使用
Prop
属性 | 说明 | 类型 | 默认值 |
visible | 是否显示,v-model 绑定值 | boolean | false |
maskClosable | 点击蒙层是否可触发关闭 | boolean | false |
maskCls | mask蒙层自定义class | string | 无 |
mask | 是否显示透明蒙层,防止触摸穿透 | boolean | true |
round | 是否圆角 | boolean | true |
wrapCls | wrap弹窗内容区域的自定义class | string | 无 |
getRenderContainer | 把组件挂载某个地方,函数请返回节点,字符串默认通过document.querySelector 查找 | Function=> Node / String | document.body |
title | 弹窗标题 | string|slot | - |
content | 弹窗内容 | string|slot|VNode | - |
actions | 自定义底部按钮功能 | Array | - |
confirmText | 确认按钮显示文本 | string | '确定' |
cancelText | 取消按钮显示文本 | string | '取消' |
showCancel | 是否显示取消按钮 | boolean | true |
属性 | 说明 | 类型 |
text | 按钮名称 | string |
btnProps | 按钮Props { type: 'primary',ghost: true } | object |
onAction | 点击按钮后触发 | function |
Slot
属性 | 说明 | 参数 |
header | 弹窗头部插槽 | - |
default | 默认插槽,弹窗内容 | - |
footer | 弹窗底部插槽 | - |
Event
事件名 | 说明 | 参数 |
toggle | 切换显示时触发,v-model 绑定事件 | value |
show | 显示时回调 | - |
hide | 关闭时回调 | - |
confirm | 当点击确认按钮时的回调 | - |
cancel | 当点击取消按钮及蒙层回调 | - |
函数式调用
引用
方法
方法名 | 说明 | 参数 |
show | 显示modal | value: 传入 prop 对象 |
hide | 隐藏modal | - |
visible | 是否显示 | - |
alert | 内置的alert弹窗 | value: 传入 prop 对象 |
confirm | 内置的confirm弹窗 | value: 传入 prop 对象 |