vue3 防止elMessage 弹窗多次弹出
相信很多小伙伴在做项目的时候都会遇到一个问题,那就是我们使用 elment ui 或者 element-plus 的时候,使用里面的弹窗组件,在同一按钮多次点击的时候,会触发很多次这个弹窗,看着很不舒服,哈哈。 所以我就想着能不能找到解决的办法,终于, 功夫不负有心人,让我找到了。下面我就来展示下我找到的解决办法。
1. 首先在utils文件夹里面封装一个 重置弹窗的 js 文件。 名字: resetMessage.js
-
-
import { ElMessage } from 'element-plus' //引入message弹出框
-
-
let messageDom = null
-
const resetMessage = (options) => {
-
if (messageDom) messageDom.close() // 判断弹窗是否已存在,若存在则关闭
-
messageDom = ElMessage(options)
-
}
-
const typeArr = ['success', 'error', 'warning', 'info']
-
typeArr.forEach(type => {
-
resetMessage[type] = options => {
-
if (typeof options === 'string') options = { message: options }
-
options.type = type
-
return resetMessage(options)
-
}
-
})
-
export const message = resetMessage
-
2. 在 main.js 引入,并挂载
-
-
import { message } from '@/utils/resetMessage.js'
-
-
-
const app = createApp(App)
-
app.config.globalProperties.$msg = message; // 挂载
-
3. 在需要使用弹窗的组件进行使用,但是需要引入 getCurrentInstance, 通过proxy.$msg来调用
-
import { getCurrentInstance } from 'vue'
-
-
setup(){
-
-
const { proxy } = getCurrentInstance();// ctx中有问题,建议使用proxy中获取
-
-
// 登录
-
const onSubmit = (formRef) => {
-
formRef.validate(async (valid) => {
-
if (valid) {
-
const { data: res } = await _login(form)
-
if (res.meta.status !== 200) ElMessage.error('账号或密码错误')
-
window.sessionStorage.setItem("active", 'welcome');
-
store.commit("user/setToken",res.data)
-
proxy.$msg.success(res.meta.msg)
-
router.push('/home')
-
} else {
-
return false
-
}
-
})
-
}
-
-
return { onSubmit}
-
-
}
亲测,有效,有帮助到的小伙伴,点点小爱心,加油!
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhihcfgc
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel图片置于文字下方的方法
PHP中文网 06-27 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22