Vue关闭当前弹窗页面的两种方式

 更新时间:2023年07月04日 11:16:53   作者:李工是个程序员  
这篇文章主要给大家介绍了关于Vue关闭当前弹窗页面的两种方式,这是最近项目中遇到的一个需求,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

在 Vue 中关闭当前弹窗页面可以通过以下两种方式实现:

1、使用关闭按钮触发关闭事件

在弹窗组件中添加一个关闭按钮,并在点击事件中调用关闭弹窗的方法。例如:

<template>
  <div class="modal">
    <div class="modal-content">
      <span class="close" @click="closeModal">&times;</span>
      <p>弹窗内容</p>
    </div>
  </div>
</template>
<script>
export default {
  methods: {
    closeModal() {
      this.$emit('close');
    }
  }
}
</script>

在父组件中监听关闭事件,并将弹窗的显示状态设置为 false。例如:

<template>
  <div>
    <button @click="showModal = true">打开弹窗</button>
    <modal v-if="showModal" @close="showModal = false"></modal>
  </div>
</template>
<script>
import Modal from './Modal.vue';
export default {
  components: {
    Modal
  },
  data() {
    return {
      showModal: false
    }
  }
}
</script>

2、使用路由守卫关闭弹窗

在打开弹窗的路由中添加一个 beforeRouteLeave 路由守卫,当离开该路由时关闭弹窗。例如:

const router = new VueRouter({
  routes: [
    {
      path: '/modal',
      component: Modal,
      beforeRouteLeave(to, from, next) {
        this.$emit('close');
        next();
      }
    }
  ]
});

在父组件中监听关闭事件,并在关闭事件中调用关闭弹窗的方法。例如:

<template>
  <div>
    <button @click="showModal = true">打开弹窗</button>
    <modal v-if="showModal" @close="showModal = false"></modal>
  </div>
</template>
<script>
import Modal from './Modal.vue';
export default {
  components: {
    Modal
  },
  data() {
    return {
      showModal: false
    }
  }
}
</script>

以上两种方式都可以实现关闭当前弹窗页面的功能,具体使用哪种方式取决于项目需求和个人习惯。

总结

到此这篇关于Vue关闭当前弹窗页面的两种方式的文章就介绍到这了,更多相关Vue关闭当前弹窗页面内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue项目配置 webpack-obfuscator 进行代码加密混淆的实现

    vue项目配置 webpack-obfuscator 进行代码加密混淆的实现

    这篇文章主要介绍了vue项目配置 webpack-obfuscator 进行代码加密混淆,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • vue的虚拟DOM使用方式

    vue的虚拟DOM使用方式

    这篇文章主要介绍了vue的虚拟DOM使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-09-09
  • 基于vue实现分页组件的示例代码

    基于vue实现分页组件的示例代码

    分页组件是一种用户界面元素,用于在长列表或数据集中分割内容,分页组件是每个开发人员必须掌握的一个组件,广泛应用在各个场所,用以用户方便阅读等,本文就给大家介绍一下如何基于vue写出的分页组件,需要的朋友可以参考下
    2023-08-08
  • Vue3 Ref获取真实DOM学习实战

    Vue3 Ref获取真实DOM学习实战

    这篇文章主要为大家介绍了Vue3 Ref获取真实DOM学习实战示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • vue mounted 调用两次的完美解决办法

    vue mounted 调用两次的完美解决办法

    在开发中发现其中一个页面moutned调用了两次,而其他页面正常,表示很懵逼,然后查找原因,终于找到了,其实归根到底是要知道mounted的调用机制问题。这篇文章主要介绍了vue mounted 调用两次的解决办法,需要的朋友可以参考下
    2018-10-10
  • vue页面切换抖动的问题及解决过程

    vue页面切换抖动的问题及解决过程

    这篇文章主要介绍了vue页面切换抖动的问题及解决过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2026-03-03
  • Vue3.5 新特性useTemplateRe的使用小结

    Vue3.5 新特性useTemplateRe的使用小结

    Vue3.5的useTemplateRef革新了模板引用方式,解决了传统ref在类型安全、拼写检查和动态绑定上的痛点,这一组合式函数允许直接声明ref变量并自动与模板绑定,下面就来详细的介绍一下如何使用
    2026-01-01
  • 解决vue-router 嵌套路由没反应的问题

    解决vue-router 嵌套路由没反应的问题

    这篇文章主要介绍了解决vue-router 嵌套路由没反应的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • 详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css

    详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css

    这篇文章主要介绍了详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • vue项目中做编辑功能传递数据时遇到问题的解决方法

    vue项目中做编辑功能传递数据时遇到问题的解决方法

    这篇文章主要介绍了vue项目中做编辑功能传递数据时遇到问题的解决方法,vue父组件向子组件传递数据的问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12

最新评论