vant-ui组件调用Dialog弹窗异步关闭操作

 更新时间:2020年11月04日 15:28:59   作者:一键写代码  
这篇文章主要介绍了vant-ui组件调用Dialog弹窗异步关闭操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

需求描述:

需求描述:官方文档又是组件调用方式,又是函数调用方式。

我就需要一个很简单的:点击操作弹窗显示后,我填写一个表单,表单校验通过后,再调用API接口,返回成功后,关闭弹窗。

一个很简单的东西,element-ui用的很方便,在这里就懵比了,刚开始做的,弹窗关闭了,才返回异步接口调用的结果。网速慢点,用起来真的很不好。

正确的解决方式一:

  <van-dialog
   v-model="showDialog"
   title="提示"
   show-cancel-button
   :before-close="onBeforeClose"
   @confirm="handleConfirm"
  >
   <van-form ref="myform">
    <van-field
     v-model="attendanceName"
     name="name"
     label="名称"
     placeholder="请输入名称"
     :rules="[
      { required: true, message: '请填写名称' }
     ]"
    />
   </van-form>
  </van-dialog>

关键点,showDialog控制显示隐藏,before-close控制关闭前的回调,confirm 是弹窗点击确认按钮触发的事件,ref拿到form实例。

刚开始我把表单校验放在before-close,实现的结果不对。

  onBeforeClose(action, done) {
   if (action === "confirm") {
    return done(false);
   } else {
    // 重置表单校验
    this.$refs["myform"].resetValidation("name");
    this.name= undefined;
    return done();
   }
  },

我把onBeforeClose中的,点击确认confirm的操作,done(false),阻止弹窗关闭

把表单校验和异步接口请求成功后关闭弹窗的,都放到handleConfirm操作中,

  // 实例弹窗确认
  handleConfirm() {
   this.$refs["myform"]
    .validate()
    .then(() => {
     let para = {
      data: {
       name: this.name,
      },
     };
     ajaxAdd(para).then(() => {
      this.showDialog = false; // 在这里手动的关闭弹窗
      this.$toast.success("新增成功");
      this.name= undefined;
      this.onRefresh();
     });
    })
    .catch(() => {});
  },

这样修改后,点击取消,可以直接关闭。点击确认,需要先表单校验,校验成功后,才会去发送ajax异步请求,请求接口返回成功后,才会关闭弹窗。

补充知识:关于Vant dialog 异步弹出框使用记录

这个是官方文档,啥说明没有就有个解释

这是人干的的事嘛。。。

具体来说下怎么在vue中使用它

以上这篇vant-ui组件调用Dialog弹窗异步关闭操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue 监听某个div垂直滚动条下拉到底部的方法

    vue 监听某个div垂直滚动条下拉到底部的方法

    今天小编就为大家分享一篇vue 监听某个div垂直滚动条下拉到底部的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue SPA 首屏优化方案

    Vue SPA 首屏优化方案

    这篇文章主要介绍了Vue SPA 首屏优化方案的的相关资料,帮助大家更好的理解和学习使用vue,感兴趣的朋友可以了解下
    2021-02-02
  • 如何使用vue过滤器filter

    如何使用vue过滤器filter

    这篇文章主要介绍了如何使用vue过滤器filter,对vue感兴趣的同学,可以参考下
    2021-05-05
  • 在Vue.js中加载字体的正确方法

    在Vue.js中加载字体的正确方法

    这篇文章主要介绍了在Vue.js中加载字体的正确方法,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • 解决vue 单文件组件中样式加载问题

    解决vue 单文件组件中样式加载问题

    这篇文章主要介绍了解决vue 单文件组件中样式加载问题,文章末尾给大家补充介绍了vue单文件组件中样式的问题,需要的朋友可以参考下
    2019-04-04
  • vue-image-crop基于Vue的移动端图片裁剪组件示例

    vue-image-crop基于Vue的移动端图片裁剪组件示例

    这篇文章主要介绍了vue-image-crop基于Vue的移动端图片裁剪组件示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • element Drawer 抽屉无法渲染问题及解决

    element Drawer 抽屉无法渲染问题及解决

    这篇文章主要介绍了element Drawer 抽屉无法渲染问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Vue中跨域及打包部署到nginx跨域设置方法

    Vue中跨域及打包部署到nginx跨域设置方法

    这篇文章主要介绍了Vue中跨域以及打包部署到nginx跨域设置方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • vue的toast弹窗组件实例详解

    vue的toast弹窗组件实例详解

    本文通过实例给大家讲解了vue的toast弹窗组件功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-05-05
  • Vue中的路由配置项meta使用解析

    Vue中的路由配置项meta使用解析

    这篇文章主要介绍了Vue中的路由配置项meta使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10

最新评论