vue2项目Vant组件Dialog 弹出框异步关闭的坑

news2024/12/24 8:07:34

vue2项目使用vant,我这边是全局引入的,引入插件官方文档中有,这边就不介绍了。

安装:Vant 2 - Mobile UI Components built on Vue

话不多说直接说坑,当时写这个的时候真的给我气到了~~~

先看一下官方文档:

Dialog弹出框的使用方式有两种

函数调用

Dialog 是一个函数,调用后会直接在页面中弹出相应的模态框。

import { Dialog } from 'vant';

Dialog({ message: '提示' });

组件调用

如果需要在弹窗内嵌入组件或其他自定义内容,可以使用组件调用的方式。

<van-dialog v-model="show" title="标题" show-cancel-button>
  <img src="https://img01.yzcdn.cn/vant/apple-3.jpg" />
</van-dialog>
export default {
  data() {
    return {
      show: false,
    };
  },
};

官方文档 vant2版本中 有一个异步关闭 发现是函数调用方式,但是根据设计稿 有自己定义的内容以及样式,很明显得使用组件方式

下面是官方文档中的示例

异步关闭
通过 beforeClose 属性可以传入一个回调函数,在弹窗关闭前进行特定操作。

function beforeClose(action, done) {
  if (action === 'confirm') {
    setTimeout(done, 1000);
  } else {
    done();
  }
}

Dialog.confirm({
  title: '标题',
  message: '弹窗内容',
  beforeClose,
});

 

先给出正确的我自己尝试多次的正确结果吧

<van-dialog
        v-model="bindModalState"
        title="标题"
        @confirm="confirmFn"
        @cancel="cancelFn"
        :beforeClose="beforeCloseFn"
        confirmButtonText="确认"
        show-cancel-button
      >
        <div class="content">xxx</div>
      </van-dialog>

此处使用的方式是:beforeClose="beforeCloseFn"

methods中:

 beforeCloseFn(action, done) {
      // console.log(action, done)
      // 执行一些校验或处理逻辑
      if (action === 'confirm') {
        // 如果点击了确认按钮,则继续关闭对话框
        setTimeout(done, 1000)
      } else {
        // 如果点击了取消按钮,则阻止对话框关闭
        done(false)
      }
    },

上面是正确的使用结果:我们来看一下官方文档中标出的使用方式:

 

下面是我尝试的使用的是:
before-close=“beforeCloseFn”

:before-close=“beforeCloseFn()”

@before-close=“beforeCloseFn”

@before-close=“beforeCloseFn()”

@beforeClose=“beforeCloseFn”

我尝试很多次 想要自定义按钮时发现slot只有个内容和标题

 最后尝试到:beforeClose="beforeCloseFn"这个时终于是可以了

总之这次尝试真的很耽误时间,我认为官方文档的示例应该全面一些。错误的解释真的很搞人心态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/695130.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VS2019 Python连接Sql server2008

安好后&#xff1a; 测试代码&#xff1a; import pymssqltry:conn pymssql.connect(host127.0.0.1,usersa,password123456,databasehotel,charsetutf8)# 连接并执行Sql语句cursor conn.cursor()sql select * from odercursor.execute(sql)# 获取数据集rs cursor.fetchal…

【UCOS-III】自我学习笔记→第37讲→内存管理实验

文章目录 前言实验步骤1.复制消息队列工程&#xff0c;并创建OS内存区句柄和内存地址&#xff0c;并删除task2\task3及其相关内容2.修改task1任务函数3.查看串口现象 测试代码工程文件总结 前言 无&#xff0c;仅作记录&#xff0c;不具有参考价值&#xff0c;所用开发板为STM…

记一次docker-compose的坎坷安装经历

最近公司在做一个kafka项目&#xff0c;所以想用docker来安装kafka集群&#xff0c;所以安装完docker后就准备安装docker-compose&#xff0c;但在安装过程中确碰到了各种问题&#xff0c;搞了两个半天再通过翻墙工具才终于搞定。 首先看了篇文章显示安装前要对应docker版本。 …

Spring Boot 中的 @Transactional 注解是什么,原理,如何使用

Spring Boot 中的 Transactional 注解是什么&#xff0c;原理&#xff0c;如何使用 简介 在 Spring Boot 中&#xff0c;Transactional 注解是非常重要的一个注解&#xff0c;用于实现数据库事务的管理。通过使用 Transactional 注解&#xff0c;我们可以很方便地对事务进行控…

用Docker部署Nginx

部署步骤&#xff1a; 1.拉取镜像 docker pull nginx 2.创建并进入容器 docker run -d --name nginx01 -p 3344:80 nginx #注意nginx01是起的名字&#xff0c;3344是公网访问的端口&#xff0c;80是Nginx的默认端口 3.启动Nginx curl localhost:3344 4.在我的windows系统访…

OAuth2:使用Gitee第三方授权

gitee OAuth2文档 1. 配置授权页url 传入client_id&#xff08;创建应用获得&#xff09;、redirect_uri&#xff08;需要通过第三方授权跳转的url&#xff09; https://gitee.com/oauth/authorize?client_id{client_id}&redirect_uri{redirect_uri}&response_type…

ACSNet分割模型搭建

原论文&#xff1a;Adaptive Context Selection for Polyp Segmentation源码&#xff1a;https://github.com/ReaFly/ACSNet. 直接步入正题~~~ 一、基础模块 class ConvBlock(nn.Module):def __init__(self, in_channels, out_channels, kernel_size, stride, padding):supe…

linux下卸载vmware

linux下卸载vmware 一、卸载二、vmware安装及使用 &emps;如果linux下安装了vmware系列产品&#xff0c;需要卸载或重装的&#xff0c;本文介绍了详细的卸载方法&#xff1a; 一、卸载 一般的发行版都不会带有vmware&#xff0c;所以通常是下载安装包来安装。这里主要说的就…

谷歌chrome浏览器所有历史版本下载及selenium自动化控制插件资源分享

使用python selenium做网页自动化开发的小伙伴经常需要用到google chrome浏览器以及chromedriver插件。 谷歌浏览器所有历史版本下载链接&#xff1a; chrome历史版本&#xff0c;点击下载 chromedriver插件下载地址&#xff1a;下载链接1&#xff1a;点击下载下载链接2…

一文了解python中pip的使用

目录 &#x1f352;pip的作用 &#x1f352;pip的使用 &#x1f352;运行python &#x1f353;1.终端运行 &#x1f353;2.运行python文件 &#x1f353;3.pycharm &#x1f352;IDE的概念 &#x1f990;博客主页&#xff1a;大虾好吃吗的博客 &#x1f990;专栏地址&#xff1…

scGen perturbation response prediction

如何利用scGen进行扰动响应预测 scGen是什么 scGen is a generative model to predict single-cell perturbation response across cell types, studies and species (Nature Methods, 2019). scGen is implemented using the scvi-tools framework. 文章传送门 Original tut…

Axure教程——100内的随机加减

本文介绍用Axure制作随机加减数效果 效果 预览地址https://ik31ey.axshare.com 制作 一、需要的元件&#xff1a; 2个动态面板&#xff0c;2个文本框&#xff0c;4个矩形&#xff0c;1个图片 二、制作过程 1、随机加 拖入一个矩形元件&#xff0c;命名为“被加数”&#xff…

MQ选手终极对决:比较几个主流MQ实现分布式事务的方案

1、MQ实现分布式事务 在分布式事务的实现中&#xff0c;ACK消息和半消息是两种实现分布式事务的两种不同机制&#xff0c;它们的共同点是都使用了两阶段提交的机制&#xff0c;但是它们的实现细节和适用场景有所不同。具有一些区别和特点。下面是ACK消息和半消息在实现分布式事…

暑期旅游市场火热,旅游行业如何做好邮件营销

随着2023年全国高考结束&#xff0c;以及各大高校毕业生也将陆续告别校园&#xff0c;许多学生都会用一场具有庆贺、欢聚意义的毕业旅游来为自己的高中生涯或大学生涯画上完美句号。携程数据显示&#xff0c;6月9日至8月底&#xff0c;高中和大学毕业生的旅游订单逐渐增多&…

QT 5.9.9 配置使用 MYSQL5.7 数据库

目录 Mysql下载安装 QT 下载安装 编译MYSQL mingw构建方式 msvc构建方式 QT中MYSQL测试使用 因为版权问题&#xff0c;Qt本身不自带Mysql数据库的驱动&#xff0c;因此如果想要借用Qt操作Mysql数据库&#xff0c;需要手动进行编译。 Mysql下载安装 【Qt】 Mysql服务端安装…

抖音seo账号矩阵系统源码搭建服务器内耗量?

一、短视频账号矩阵系统视频库存量技术云端如何处理&#xff1f; 1.抖音SEO账号矩阵系统源码搭建服务器内耗量怎么后端处理 非常低&#xff0c;可以轻松应对大量用户使用。通过服务器的高效运行&#xff0c;系统可以提供稳定的服务&#xff0c;并且快速响应用户的操作。源码搭…

2023年软件测试这个行业怎么样?

今天我要从一个新的角度来论述软件测试行业怎么样。 最近热搜新闻是张雪峰最近抨击的“新闻专业不要报&#xff0c;建议把孩子打晕后&#xff0c;随便选个专业都比新闻好”&#xff0c;重庆大学新闻学教授发文抨击张雪峰偏激言论&#xff0c;眼睛雪亮的人民群众却纷纷站队张雪…

C#复制构造函数学习

通过从另一个对象复制变量或将一个对象的数据复制到另一个对象来创建对象的构造函数称为复制构造函数。 复制构造函数是一个参数化构造函数&#xff0c;包含相同类类型的参数。它的主要用途是将新实例初始化为现有实例的值。 using System;namespace Mytest{class User {publi…

非凸科技金牌赞助“第三届中国Rust开发者大会”

6月17-18日&#xff0c;由Rust中文社区主办的“第三届中国Rust开发者大会”在上海圆满举行。非凸科技作为金牌赞助商&#xff0c;全力协助大会顺利开展&#xff0c;共同为中国 Rustaceans带来一场技术交流盛宴。 本次大会演讲主题内容广泛&#xff0c;涉及编程语言、量化金融、…

springboot mybatis-plus慢sql输出日志,log4jdbc使用

前言 无论使用原生JDBC、mybatis还是hibernate&#xff0c;使用log4j等日志框架可以看到生成的SQL&#xff0c;但是占位符和参数总是分开打印的&#xff0c;不便于分析&#xff0c;显示如下的效果: Log4jdbc 是一个开源 SQL 日志框架&#xff0c;它使用代理模式实现对常用的…