vue3 + quasar 弹窗的几种方式

用Quasar开发Vue3+Electron跨平台应用的简单指南 Quasar是一个开源的vue.js基础框架,简单配置即可在其基础上进行SPA, SSR, PWA, 手机网站以及跨平台应用程序的开发,本文将简述如何基于进行桌面应用开发。Quasar挺好用的,目前基于这套框架开发了几个桌面APP,也没碰到什么bug,他们前端组件升级更新啥的也很快。唯一不足就是中文文档和技术文章相对较少,碰到问题基本上要去看官网上的英文文档,不过还好英文文档还是挺 完善的。 阅读详情

1. 鼠标悬浮时的提示(Quasar Tooltip组件)

quasar tooltip组件
当希望将鼠标悬停在目标元素上会显示提示消息时,可以使用html中的title属性,但使用title属性出现的提示框样式可能并不是我们想要的,这时候可以使用quasar提供的tooltip组件。
在这里插入图片描述
可以看到,target默认为true,则会默认将 tooltip 的父元素作为触发tooltip的目标,即鼠标经过tooltip的父元素时,tooltip就会显示。

<q-btn color="primary" label="tooltip的父元素" size="24px">
    <q-tooltip>我在这</q-tooltip>
</q-btn>

在这里插入图片描述

也可以用String类型指定触发 tooltip的目标元素。

 <q-btn color="primary" label="tooltip的父元素" size="24px">
        <q-tooltip target=".hover-me">我在这</q-tooltip>
  </q-btn>

  <q-btn class="hover-me" label="tooltip指定的target元素"></q-btn>

在这里插入图片描述
其他详见官方文档。



2. 点击某按钮后出现自定义的弹窗

2.1 点击某按钮后出现自定义的弹窗(vue方法)

效果图:
点击“+”按钮后弹出选项列表Member子组件,
点击Member子组件上的按钮时关闭弹窗。
在这里插入图片描述


子组件:
在这里插入图片描述


父组件
在这里插入图片描述
注意:有需要时可以给子组件Member设置一个z-index的样式。


知识点
vue 组件 官方文档:https://staging-cn.vuejs.org/guide/components/registration.html
1、父组件可以使用 props 把数据传给子组件。
2、子组件可以使用 $emit 触发父组件的自定义事件。

在这里插入图片描述

2.2 点击某按钮后出现自定义的弹窗(quasar QDialog组件)

quasar dialog组件通过绑定的值来决定是否显示该弹窗,值可以使用model-value进行绑定,也可以使用v-model进行绑定。

在这里插入图片描述
使用model-value进行绑定时,需要使用:。

<q-dialog :model-value="showFlag" persistent>
   ...
</q-dialog>

//or
<q-dialog v-model="showFlag" persistent>
   ...
</q-dialog>

上述同样的效果也可用以下代码实现:

父组件:

<template>
  <div>
     <q-btn round unelevated outline text-color="grey-8" icon="add" class="bg-white" @click="openMember"/>
     <q-dialog :model-value="showFlag" persistent>
          <Member  @close="closeMember"></Member>
     </q-dialog>
   </div>
</template>

<script setup>
import {ref, reactive, watch} from 'vue'
import Member from '../components/Member.vue'

let showFlag = ref(false);

function openMember() {
  showFlag.value = true;
}

function closeMember(list) {
  showFlag.value = false;
  taskInfo.receiverList = list;
}
</script>

<style></style>

子组件Member.vue

<template>
    <div class="q-pa-sm member-list bg-white shadow-1">
      <q-option-group v-model="group" :options="options" color="green" type="checkbox" class="list"/>
      <div class="q-mt-md q-pl-sm row">
        <q-btn class="bg-white q-mr-lg" unelevated outline  text-color="grey-8" label="取消"
               @click="$emit('close')"/>
        <q-btn class="btn-sure" unelevated filled text-color="white" label="确定"
               @click="$emit('close', group)"/>
      </div>
    </div>
</template>

<script setup>
import { ref, watch } from 'vue'
const group = ref([]);
const options = [
  {
    label: '何11',
    value: 'op4'
  },
  {
    label: '何22',
    value: 'op5'
  },
  {
    label: '何33',
    value: 'op6'
  },
  {
    label: '何44',
    value: 'op7'
  },
  {
    label: '何55',
    value: 'op8'
  },
  {
    label: '何66',
    value: 'op9'
  }
];

const emit = defineEmits(['close'])
</script>

<style scoped lang="scss">

.member-list {
  width: 200px;
  border: 1px solid #ffe5e5;
  z-index: 21;
  .list{
    height: 240px;
    overflow: auto;
  }
}

.btn-sure {
  background-color: #9abee8;
}
</style>

使用 dialog 组件还有一个好处就是可以通过transition-show和transition-hide设置弹窗时的动画,详见官方文档。



3. 弹出操作列表/菜单列表(quasar Qmenu组件)

Quasar QMenu组件

<template>
<q-btn label="..." unelevated>
    <q-menu class="bg-grey-10 text-grey-2">
       <q-list>
          <q-item v-close-popup clickable @click="showDate(task.id)">
              <q-item-section>更改截止日期</q-item-section>
          </q-item>
          <q-separator class="bg-grey-5 q-mx-xs"/>
          <q-item v-close-popup clickable @click="deleteConfirm(task.id)">
              <q-item-section>删除任务</q-item-section>
           </q-item>
        </q-list>
     </q-menu>
</q-btn>
</template>

在这里插入图片描述
QMenu同样有target属性,其默认为true,会默认将 menu 的父元素作为触发menu的目标,即点击 menu的父元素时, menu就会显示。



4. 弹出一个操作确认框(Quasar Dialog插件)

quasar Dialog插件能实现类似html的window.confirm()的功能。

在这里插入图片描述


使用前需先安装和引入,具体教程见官网。

以下截图仅展示在Vite/Vue CLI项目中的使用:
在这里插入图片描述使用示例:

<script setup>
import { ref } from "vue"
import { useQuasar } from 'quasar'

const $q = useQuasar()

function deleteUser(index) {
  $q.dialog({
    title: 'Confirm',
    message: '请确认是否删除该用户',
    cancel: "取消",
    ok: "确定",
    persistent: true
  }).onOk(() => {
    console.log('>>>> 删除了用户' + index)
  }).onCancel(() => {
    console.log('>>>> 取消了删除用户操作')
  })
}
</script>


5. 弹出一个提示框(Quasar Notify插件)

如果仅需弹出一个提示消息而不需要用户进行其他操作,则可使用Quasar 的 Notify插件。
在这里插入图片描述


同样需要安装后才能使用:
在这里插入图片描述


使用示例:

<script setup>
import { ref } from "vue"
import { useQuasar } from 'quasar'

const $q = useQuasar()

function doAddUser(newUser) {
  if (newUser.account.trim() && newUser.password.trim()) {
  	
    }
  else {
    $q.notify(
        {
          message: "请输入账号和密码",
          position: "center",
          timeout: 5
        }
    )
  }
}

</script>

6. Quasar QPopupProxy

Quasar QPopupProxy 组件
在这里插入图片描述

<template>
<q-icon name="event" class="cursor-pointer" size="24px">
            <q-popup-proxy
              ref="qDateProxy"
              transition-show="scale"
              transition-hide="scale"
            >
              <q-date v-model="deadline" minimal v-close-popup />
            </q-popup-proxy>
          </q-icon>
</template>

<script setup>
import { reactive, ref } from 'vue'
const deadline = ref('')
</script>
Vue3组件库-消息提示组件 theme: healer-readable 这是我参与8月更文挑战的第5天,活动详情查看:8月更文挑战 Vue3组件库-消息提示组件 简易消息提示 自定义消息提示 函数调用消息提示 简易消息提示 效果预览 先在App.vue 文件里 引入写好的Button组件 新建一个Snackbar.vue作为组件的文件 给button添加click事件,通过show属性控制消息... 阅读详情

相关推荐

Vue 3 弹窗方案对比:Element Plus、Ant Design Vue、Naive UI 等 5 款 UI 库的 $alert/$confirm 实现

本文深入对比了Vue 3生态中五款主流UI库(Element Plus、Ant Design Vue、Naive UI、Vuetify、Quasar)的全局弹窗实现方案,重点分析了this.$alert和this.$confirm的API设计、功能完整性和性能表现。通过详细的评测和实战建议,帮助开发者选择最适合的弹窗解决方案,提升用户体验和开发效率。

weixin_34341117的博客 403

Vue框架(二)------quasar简介及初始化

根目录下:quasar.config.js,存放quasar配置项,里新增第三方组件需要在此文件内的。// 页面侧边栏提取组件。// 页面顶栏提取组件。

chucksun0426的博客 5694

JS教程之使用 Pinia、Electron 和 Quasar 构建 Vue 3 桌面应用程序

Quasar是 MIT 许可的基于 Vue.js 的开源框架,针对 SPA、SSR、PWA、移动应用程序、桌面应用程序和浏览器扩展,所有这些都使用一个代码库。它处理构建设置并提供符合 Material Design 的 UI 组件的完整集合。Quasar的座右铭是:由于以下原因,使用 Quasar 可以大大节省开发时间:它基于 Vue.js。 它提供了许多遵循 Material Design 准则的 UI 组件。 它有一个包含新功能的定期发布周期。 它为每种构建模式(SPA、SSR、PWA、移动应用、桌面应

iCloudEnd的博客 1061

Vue3模态框(Modal)

模态框组件,支持:六种类型的模态框;自定义宽度;自定义图标;自定义样式;自定义按钮;自定义位置;自定义动画出现位置;延迟关闭等;总之,功能丰富,简单易用😁😁

Vue Amazing UI(Vue3 + TypeScript + Vite)组件库唯一开发维护者 6835

探讨 Vue 在移动端开发中的应用,例如 Vue Native、Quasar Framework 或 Capacitor/Cordova。

Quasar Framework 是一个基于 Vue.js 的开源框架,它可以让你用一套代码,构建 Web 应用、移动 App 和桌面应用。Vue Native,顾名思义,就是用Vue的语法来开发原生App。它的核心思想是:用JavaScript写UI,然后通过桥接技术,把这些UI渲染成原生的UI组件。这样,你就可以用熟悉的Vue语法,来开发iOS和Android App了。(取决于你看到这篇文章的时间)今天咱们来聊聊Vue在移动端开发的那些事儿,看看它怎么在手机这块小屏幕上大显身手。

weixin_41455464的博客 1163

Unity XR Interaction Toolkit(二)手柄交互

XR Interaction 手柄事件和抓取设置

qq_36608844的博客 8494

最新Quasar 指南6:9527字带你了解Quasar vue组合式函数核心用法及实战 - Quasar 完全教程:从基础到实战 --Ryan

Quasar框架组合式函数核心总结: useQuasar:获取全局$q对象,访问平台检测、版本信息及插件功能(如$q.notify)。 useDialogPluginComponent:快速创建自定义Dialog组件,提供标准化的关闭/确认逻辑和数据传递机制。 useFormChild:实现父子表单联动,使子表单能接入父表单的统一验证和提交流程。 useMeta:动态管理页面元信息(标题、meta标签),支持响应式更新和SSR兼容。 核心优势: 专为Vue3组合式API设计 简化复杂功能实现(如表单验证、弹

WF_YL的博客 1702

在Cursor中集成Ollama与Qwen2.5‑Coder:零成本本地AI开发环境搭建

本文详细介绍了如何零成本搭建本地AI开发环境,通过将Cursor IDE与本地运行的Ollama及Qwen2.5-Coder模型集成,实现数据不出本地的智能编程辅助。教程涵盖Ollama安装、模型拉取、ngrok内网穿透配置及Cursor设置等核心步骤,并提供了实战测试与常见问题排错指南,为注重隐私与成本的开发者提供安全高效的解决方案。

weixin_29296241的博客 1071

vue3点击出现弹窗后背景变暗且不可操作

vue3,点击后出现弹窗,弹窗后的背景变暗且不可滚动,不可点击

http____的博客 2775

AWR射频仿真基本操作(一)

这里只讲述一个基本的操作: 软件是AWR 14版本

钢丝 2万+

深入Linux网络子系统:STMMAC驱动如何通过MDIO总线与PHY芯片“对话”

本文深入解析了Linux网络子系统中STMMAC驱动通过MDIO总线与PHY芯片的通信机制。详细介绍了MDIO总线的注册流程、PHY设备的绑定机制以及设备树配置,帮助开发者理解MAC控制器与PHY芯片的协作基础,优化网络通信性能。

weixin_26897585的博客 446

常见的 Vue.js 组件库:Element Plus, Vuetify, Quasar

今天我们来聊聊 Vue.js 中一些非常常见的组件库,它们能帮你快速构建出美观、功能强大的应用界面。和。这些组件库提供了丰富的 UI 组件和强大的功能,能够让开发者在项目中高效地实现常见的界面元素,比如按钮、表单、弹窗、导航栏等。我们将逐一了解这三款组件库,看看它们的特点和使用方式。是一个基于 Vue 3 的桌面端组件库,之前的版本是基于 Vue 2 的Element UI,经过重构和更新,推出了,完全支持 Vue 3,具有更强的可扩展性和性能。

轻口味的专栏 2389

《跨界杂谈》华为印象(五):高度集权的矩阵式架构

高度集权的矩阵式架构 “高度集权的矩阵式架构”不是官方术语。是笔者的一位同事非常经典的总结。解释这个句话还是有点困难的,笔者入职华为三年也没彻底搞明白,在这里只能尝试性的解释一下。 矩阵 我们先看一下“矩阵”。华为有两套部门职能体系,华为内部术语,叫实线部门和虚线部门。由实线与虚线部门交叉构成矩阵。大部分(但不是所有)华为员工都由两个部门(两个领导)进行管理。对员工而言,所谓的实线部

《云计算架构技术与实践》 2994

网盘直链下载指南:8 大网盘免客户端一步取直链,IDM、Aria2 直接接住

网盘官方客户端又重又占地方,下载队列还绑在网页里出不来。真实需求其实很直白:把文件的直链拿出来,丢给 IDM、Aria2 自己跑。 LinkSwift(网盘直链下载助手)就是一个油猴脚本,挂在浏览器里、跑在网盘网页端,把下载请求翻译成真实直链,再交给下载器。全程不装网盘客户端。 ## 先看表:8 大网盘的取直链支持范围 八大网盘都覆盖。前六家各有一份独立配置文件,UC 网盘和 123 云盘的

gitblog_00210的博客 864

Polyworks脚本开发学习笔记(十五)-用Python连接Polyworks的COM组件

Polyworks脚本开发学习笔记(十五)-利用Python连接Polyworks的COM组件

qq_43662503的博客 2499

R语言 | 关联规则

关联规则(AssociationRules)是无监督的机器学习方法,用于知识发现,而非预测。 关联规则的学习器(learner)无需事先对训练数据进行打标签,因为无监督学习没有训练这个步骤。缺点是很难对关联规则学习器进行模型评估,一般都可以通过肉眼观测结果是否合理。 关联规则主要用来发现Pattern,最经典的应用是购物篮分析,当然其他类似于购物篮交易数据的案例也可以应用关联规则进行模式发现。

I think so I am 10万+

最新Quasar 指南3.3:18912字带你了解Vue组件【转盘/聊天窗口/标签/进度条/选色器/弹窗/展开项/浮动操作按钮】 - Quasar 完全教程:从基础到实战 --Ryan

本文系统整理了Quasar框架中12个核心UI组件的API特性,重点聚焦各组件的Behavior类属性: 卡片组件(QCard/QCardSection/QCardActions)提供分层化结构,支持阴影、边框等样式控制 轮播组件(QCarousel)包含自动播放、无限循环等交互功能 聊天消息组件(QChatMessage)支持HTML内容渲染和加载状态 标签组件(QChip)具备移除功能和无障碍访问支持 进度条组件(QCircularProgress)提供不确定状态和反向填充特性 颜色选择器(QColor

WF_YL的博客 1077

智能体开发套件(ADK)介绍

city } ---") city_normalized = city . lower() . replace(" " , "") # 模拟天气数据库 mock_weather_db = {

lpfasd123的博客 1401

解决clipboard.js在vue的弹窗组件中无效

    最近有个需求,用户点击按钮会弹出一个弹窗,弹窗内会有一个复制按钮,点击该复制按钮会将url复制到剪贴板。    项目用的是用vue + quasar UI。我用quasar的Modal封装了一个弹窗组件,并在弹窗组件的mounted方法实例化一个clipboard实例。代码如下:import ClipboardJS from 'clipboard' ... mounted(){ le...

qq_36391954的博客 6091

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

dsh-purge 应用前备份清单:改宿主源码前必做的动作与翻车后的恢复入口

dsh-purge 是 DeepSeek Harness 的官方宿主破甲插件,靠给本机 `@deepseek-ai` 包打补丁来替换默认策略与提示词。它最容易被忽视的一条风险是:插件内置备份只覆盖它改过的官方宿主文件,你在 `$DSH_HOME` 里攒的规则集、技能和自定义提示词,只有应用前自己做的那份整目录备份兜得住。本文给出动手前的备份顺序和翻车后的三个恢复入口。 ## dsh-purge

gitblog_00564的博客 258

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

42个状态撑起一整局游戏:smw的GameMode状态机全景解读

**smw** 是一个基于逆向工程的《超级马里奥世界》(Super Mario World)完整重实现项目,它用不到几行核心代码——一个字节变量加一张 42 项的函数指针表——就撑起了从开机动画、标题画面、世界地图到通关的整局游戏流程。本文带你完整解读这套 GameMode 状态机:42 个状态各自负责什么、状态之间如何切换、为什么一个过渡特效能被 15 个状态反复复用。 ## 核心机制:一个字

gitblog_00999的博客 153

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

基于quasar,只选择年度与月份的组件

使用 quasar实现一个只选择年份与月份的控件

flyinmind的专栏 690

Quasar QBanner 组件完全指南:属性、插槽、无障碍与实践用法

QBanner 是 Quasar Framework 内置的横幅(Banner)组件,用于在界面中展示一条醒目的提示消息,并可附带相关操作按钮,典型场景包括支付失败提示、断网提示、需要用户授权的提醒等。本指南以 [QBanner 官方文档](https://link.gitcode.com/i/41d1225264439c4cca51bef027ce2d76) 为主线,结合本仓库中的组件源码、样式

gitblog_00232的博客 686

初识quasar浏览器扩展

quasar是一个vue2(vue3)的框架,支持SPA、SSR、PWA、移动应用程序、桌面应用程序和浏览器扩展的开发.今天尝试下浏览器扩展。

jhs的博客 296

Quasar QPopupEdit 组件深度指南:在 QTable 单元格与任意元素上实现原地编辑弹窗

QPopupEdit 是 Quasar Framework 中用于"就地编辑"(edit in place)的弹窗组件,它把一段文本渲染在页面上,用户点击/触摸后弹出一个可编辑弹窗,输入完成后值直接写回数据模型。本文以官方文档 [docs/src/pages/vue-components/popup-edit.md](https://link.gitcode.com/i/0970998089714

gitblog_00080的博客 16
上一篇: vue3点击出现弹窗后背景变暗且不可操作
下一篇: 前端实现下载文件(处理后端返回的二进制流)
不知-_
博客等级 码龄8年 22粉丝 52原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不知-_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值