用vue3封装一个符合思维且简单实用的弹出层

简介: 用vue3封装一个符合思维且简单实用的弹出层

最近新项目中需要一个弹窗组件,所以我就做了一个,下面这篇文章主要给大家介绍了关于如何利用vue3封装一个符合思维且简单实用的弹出层,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

在平常开发中,弹出层算是一个最常用的组件了,尤其是后台的表单页,详情页,用户端的各种确认都很适合使用弹出层组件展示,但是一般组件库提供给我们的一般还是组件的形式,或者是一个简单的服务。

组件形式的弹出层,在我看来应该是组件库提供给我们二次封装用的,如果直接其实很不符合直觉

写在页面结构里,但是却不是在页面结构中展示,放在那个位置都不合适只能放在最下边

一个页面如果只有一个弹出层还好维护,多几个先不说放在那里,光维护弹出层的展示隐藏变量都是件头大的事情

弹出层中间展示的如果是一个表单或者一个业务很重的页面,逻辑就会跟页面混在一起不好维护,如果抽离成组件,在后台这种全是表格表单的时候,都抽离成组件太过麻烦

那么有没有更符合思维的方式使用弹窗呢,嘿嘿还真有,那就是服务创建弹出层

<template> 
    <a-button @click="showConfirm">Confirm</a-button>
</template>
<script lang="ts">
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import { createVNode, defineComponent } from 'vue';
import { Modal } from 'ant-design-vue';
export default defineComponent({ 
    setup() {
     const showConfirm = () => { 
       Modal.confirm({ 
          title: 'Do you want to delete these items?',
          icon: createVNode(ExclamationCircleOutlined),
          content: 'When clicked the OK button, this dialog will be closed after 1 second', 
          onOk() { 
            return new Promise((resolve, reject) => { 
              setTimeout(Math.random() > 0.5 ? resolve : reject, 1000); 
             }).catch(() => console.log('Oops errors!')); }, 
              // eslint-disable-next-line @typescript-eslint/no-empty-function 
          onCancel() {},
        });
       }; 
     return { showConfirm, };
     },
    }); 
</script>
相关文章
|
3天前
|
前端开发 JavaScript 安全
【亮剑】探讨了在React TypeScript应用中如何通过道具(props)传递CSS样式,以实现模块化、主题化和动态样式
【4月更文挑战第30天】本文探讨了在React TypeScript应用中如何通过道具(props)传递CSS样式,以实现模块化、主题化和动态样式。文章分为三部分:首先解释了样式传递的必要性,包括模块化、主题化和动态样式以及TypeScript集成。接着介绍了内联样式的基本用法和最佳实践,展示了一个使用内联样式自定义按钮颜色的例子。最后,讨论了使用CSS模块和TypeScript接口处理复杂样式的方案,强调了它们在组织和重用样式方面的优势。结合TypeScript,确保了样式的正确性和可维护性,为开发者提供了灵活的样式管理策略。
|
9月前
|
JavaScript 算法 前端开发
Vue.js 2.0源码透析: 数据绑定与渲染机制的实现方式
Vue.js 2.0源码透析: 数据绑定与渲染机制的实现方式
50 0
|
5月前
|
缓存
【Vue2.0学习】—计算属性(三十四)
【Vue2.0学习】—计算属性(三十四)
|
5月前
|
JavaScript
vue模板语法下集->事件处理器,表单的综合案例,组件通信
vue模板语法下集->事件处理器,表单的综合案例,组件通信
37 0
|
7月前
|
JavaScript 前端开发
Vue系列(三)之 基础语法下篇【事件处理,表单综合案例,组件通信】
Vue系列(三)之 基础语法下篇【事件处理,表单综合案例,组件通信】
|
8月前
|
JavaScript
【Vue】模板语法,事件处理器及综合案例、自定义组件、组件通信
组件(Component)是Vue最强大的功能之一组件可以扩展HTML元素,封装可重用的代码组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树。
|
10月前
用vue3封装一个符合思维且简单实用的弹出层
用vue3封装一个符合思维且简单实用的弹出层
86 0
|
11月前
|
数据格式
#yyds干货盘点 React+antDesign封装一个tab组件(类组件) (2)
#yyds干货盘点 React+antDesign封装一个tab组件(类组件)
114 0
|
11月前
|
前端开发 数据格式
#yyds干货盘点 React+antDesign封装一个tab组件(类组件) (3)
#yyds干货盘点 React+antDesign封装一个tab组件(类组件)
79 0
|
11月前
|
前端开发 数据格式
#yyds干货盘点 React+antDesign封装一个tab组件(类组件) (1)
#yyds干货盘点 React+antDesign封装一个tab组件(类组件)
101 0