vue中前端弹窗队列展示

在前端写一个弹窗可能很简单,那如果同时有多个弹窗呢

这样的话就要考虑弹窗的展示问题,肯定是不能叠加在一起的,这时候就要通过队列(先进先出)来展示

思路就是根据队列来实现,至于具体的实现方式,可以在项目中灵活运用

在vue中可以通过vuex存储队列,用watch方法来监听队列的变化

举个🌰

1. 在mutations里写弹窗展示和隐藏的同步操作方法

复制代码
[Types.M_SERVICE_CHAT_SET_ACCEPT] (state, payload) { // 在接收到转接请求的时候,启用队列
    state.acceptSession.show = true // 弹窗展示
    state.acceptSession.data = { ...payload}
  },
[Types.M_SERVICE_CHAT_RESET_ACCEPT] (state, payload) {
    state.acceptSession.show = false // 弹窗隐藏
    if(state.dialogQueue.length) { // 队列不为空,弹窗关闭出队
      state.dialogQueue.shift()
    }
复制代码

 

2. 在state里存储弹窗队列

state = {
   dialogQueue: []
}

 

3. 弹窗陆续入队

 state.dialogQueue.push(results) // 入队

 

4. 监听队列的变化,出队依次展示弹窗

复制代码
// 页面获取队列
computed: {
    ...mapState({
      dialogQueue: state => state.dialogQueue,
    }),
},
watch: { // 页面监听队列
    'dialogQueue':{// 监测队列的变化
      handler:function(val){
        if(val.length){
          console.log(val,val.length,val[0].doctor_name)
          this.showDialog({...val[0]}) // 有变化就出队
        }
      },
      deep: true
    }
  },
复制代码

 

总的来说,这种情况都是通过队列来实现的,具体操作可以根据实际情况,封装一些工具函数或方法等

posted @   c-137Summer  阅读(1803)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2018-11-09 vue里监听安卓的物理返回键
2017-11-09 不固定宽度的div居中显示
点击右上角即可分享
微信分享提示