vue3 + quasar 弹窗的几种方式

1. 鼠标悬浮时的提示(Quasar Tooltip组件)2. 点击某按钮后出现自定义的弹窗2.1 点击某按钮后出现自定义的弹窗(vue方法)2.2 点击某按钮后出现自定义的弹窗(quasar QDialog组件)3. 弹出操作列表/菜单列表(quasar Qmenu组件)4. 弹出一个操作确认框(Quasar Dialog插件)5. 弹出一个提示框(Quasar Notify插件)......
摘要由CSDN通过智能技术生成

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=
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Vue3 中使用 TypeScript 关闭弹窗,可以采用以下步骤: 1. 创建弹窗的组件,例如: ```vue <template> <div v-if="visible"> <h2>{{title}}</h2> <p>{{content}}</p> <button @click="close">关闭</button> </div> </template> <script lang="ts"> import { defineComponent, PropType } from "vue"; export default defineComponent({ props: { title: String, content: String, visible: Boolean, onClose: Function as PropType<() => void>, }, methods: { close() { this.onClose?.(); }, }, }); </script> ``` 2. 在父组件中引入弹窗组件并使用它,例如: ```vue <template> <div> <button @click="showModal">打开弹窗</button> <my-modal title="这是弹窗标题" content="这是弹窗内容" :visible="visible" @onClose="closeModal" /> </div> </template> <script lang="ts"> import { defineComponent, ref } from "vue"; import MyModal from "./MyModal.vue"; export default defineComponent({ components: { MyModal, }, setup() { const visible = ref(false); function showModal() { visible.value = true; } function closeModal() { visible.value = false; } return { visible, showModal, closeModal, }; }, }); </script> ``` 在上述代码中,我们使用了 `ref` 创建一个响应式变量 `visible`,用于控制弹窗的显示和隐藏。当点击“打开弹窗”按钮时,调用 `showModal` 函数将 `visible` 设置为 `true`,从而显示弹窗。当弹窗中的“关闭”按钮被点击时,调用 `closeModal` 函数将 `visible` 设置为 `false`,从而关闭弹窗。 注意,在弹窗组件中,我们使用了可选链操作符 `?.` 来调用 `onClose` 函数,这是为了避免在未传递 `onClose` 属性时出现的类型错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不知-_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值