使用vue实现各类弹出框组件

使用vue实现各类弹出框组件需要遵循以下步骤:

步骤一:创建全局的Vue组件

首先,我们需要创建一个全局的Vue组件,该组件用于渲染弹出框,并设置如下属性:

  • v-show: 用于控制组件的显隐状态
  • title: 弹出框的标题
  • width: 弹出框的宽度
  • height: 弹出框的高度
  • ok: 点击“确认”按钮时的回调函数
  • cancel: 点击“取消”按钮时的回调函数

示例代码如下:

<template>
  <div class="popup" v-show="visible">
    <div class="popup-header">{{ title }}</div>
    <div class="popup-body">
      <slot></slot>
    </div>
    <div class="popup-footer">
      <button @click="ok()">确认</button>
      <button @click="cancel()">取消</button>
    </div>
  </div>
</template>

<script>
export default {
  props: {
    visible: Boolean,
    title: String,
    width: String,
    height: String,
    ok: Function,
    cancel: Function,
  },
};
</script>

<style>
.popup {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 999;
  background-color: rgba(0, 0, 0, 0.6);
  display: flex;
  justify-content: center;
  align-items: center;
}

.popup-header {
  background-color: #fff;
  padding: 20px;
  font-size: 18px;
  font-weight: bold;
}

.popup-body {
  background-color: #fff;
  padding: 20px;
  width: 80%;
  max-height: 80%;
  overflow: auto;
}

.popup-footer {
  background-color: #fff;
  padding: 20px;
  display: flex;
  justify-content: flex-end;
}
</style>

步骤二:创建各类弹出框组件

接下来,我们可以根据实际需求,创建各类不同类型的弹出框组件,例如提示框、确认框、输入框等。这些组件需要继承并扩展全局组件,实现具体的功能。

示例一:实现提示框组件

提示框组件只需要在全局组件的基础上,传入相应的数据即可实现。示例代码如下:

<template>
  <popup
    :visible="visible"
    :title="title"
    :width="width"
    :height="height"
    :ok="onOk"
    :cancel="onCancel"
  >
    <p>{{ message }}</p>
  </popup>
</template>

<script>
import Popup from '@/components/Popup.vue';

export default {
  extends: Popup,
  props: {
    message: String,
  },
  data() {
    return {
      title: '提示框',
      width: '400px',
      height: '200px',
      visible: true,
    };
  },
  methods: {
    onOk() {
      this.visible = false;
    },
    onCancel() {
      this.visible = false;
    },
  },
};
</script>

示例二:实现确认框组件

确认框组件需要额外传入一个确认信息的文本,以及确认框的文案。示例代码如下:

<template>
  <popup
    :visible="visible"
    :title="title"
    :width="width"
    :height="height"
    :ok="onOk"
    :cancel="onCancel"
  >
    <p>{{ message }}</p>
  </popup>
</template>

<script>
import Popup from '@/components/Popup.vue';

export default {
  extends: Popup,
  props: {
    message: String,
    confirmText: {
      type: String,
      default: '确定',
    },
  },
  data() {
    return {
      title: '确认框',
      width: '400px',
      height: '200px',
      visible: true,
    };
  },
  methods: {
    onOk() {
      this.visible = false;
      this.$emit('confirm');
    },
    onCancel() {
      this.visible = false;
      this.$emit('cancel');
    },
  },
};
</script>

步骤三:在组件中使用弹出框

最后,我们可以在其他组件中引入这些弹出框组件,并使用v-show指令控制它们的显隐状态。例如,在一个按钮上绑定click事件,点击后弹出提示框:

<template>
  <div>
    <button @click="showMessage">显示提示框</button>
    <message-popup ref="message" :message="message"></message-popup>
  </div>
</template>

<script>
import MessagePopup from '@/components/MessagePopup.vue';

export default {
  components: {
    'message-popup': MessagePopup,
  },
  data() {
    return {
      message: 'Hello, world!',
    };
  },
  methods: {
    showMessage() {
      this.$refs.message.visible = true;
    },
  },
};
</script>

以上为使用Vue实现各类弹出框组件的完整攻略,其中包含了两个示例,分别实现了提示框和确认框组件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用vue实现各类弹出框组件 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Vite开发环境搭建详解

    Vite开发环境搭建详解 Vite是一款现代化的前端开发工具,它可以快速创建和启动本地开发服务器,具有快速冷重载、简单的配置和高效的构建等特点。本篇文章将详细讲解如何搭建Vite开发环境。 环境安装与配置 安装Node.js Vite依赖Node.js运行环境,首先需要在官网(https://nodejs.org/)下载Node.js安装包进行安装。安装完成…

    Vue 2023年5月27日
    00
  • vue 如何添加全局函数或全局变量以及单页面的title设置总结

    根据您的需求,我会详细讲解“Vue 如何添加全局函数或全局变量以及单页面的 title 设置总结”的完整攻略,包含两个示例用于进一步说明。 一、Vue 如何添加全局函数或全局变量 在 Vue 中,我们可以方便地在全局使用自定义函数和变量,这样可以简化业务逻辑,提高开发效率。以下是实现此功能的方法: 1.1 添加全局函数 在 Vue 中添加全局函数的方式是通过…

    Vue 2023年5月28日
    00
  • Vue页面堆栈管理器详情

    Vue页面堆栈管理器详情 本文介绍了Vue页面堆栈管理器,并提供使用指南来帮助开发者更好地管理页面堆栈。 什么是Vue页面堆栈管理器? Vue页面堆栈管理器通过维护页面堆栈来管理Vue.js单页应用程序中的页面历史。它可以帮助开发者快速获得页面历史,以便更轻松地导航和管理应用程序状态。使用Vue页面堆栈管理器,开发者可以实现以下目标: 管理页面历史 构建多级…

    Vue 2023年5月27日
    00
  • 浅谈在vue项目中如何定义全局变量和全局函数

    在Vue项目中定义全局变量和全局函数有很多种方法,以下是其中两种常用的方法: 方法一:Vue.prototype Vue.prototype可以在Vue的实例中定义公共的实例属性和方法,这样在整个项目中都可以使用。 定义全局变量 在main.js中定义全局变量例如baseUrl: import Vue from ‘vue’ import App from ‘…

    Vue 2023年5月27日
    00
  • spring boot实现图片上传和下载功能

    下面我将针对“spring boot实现图片上传和下载功能”的完整操作过程进行详细讲解,并提供两个示例以供参考。 准备工作 在开始实现图片上传和下载功能之前,我们需要先准备好开发环境和所需要的依赖。具体流程如下: 环境搭建 JDK 1.8及以上版本 Maven 3.2及以上版本 IDE开发工具(如Eclipse、IntelliJ IDEA等) 需要依赖 在M…

    Vue 2023年5月28日
    00
  • Vue手写防抖和节流函数代码详解

    针对你提出的主题 “Vue手写防抖和节流函数代码详解”,我来进行详细讲解。 一、什么是防抖和节流函数 在前端开发中,很多时候会遇到一些需要节流或防抖的场景,例如在频繁进行搜索时,可以使用节流函数,减少无意义的请求;在监听窗口 resize 或滚动事件等操作时,可以使用防抖函数避免频繁执行代码。两种函数的作用如下: 防抖函数:多次触发事件后,函数只会执行一次,…

    Vue 2023年5月28日
    00
  • Vue分页组件实现过程详解

    下面是详细讲解“Vue分页组件实现过程详解”的完整攻略。 1. 分页组件概述 分页组件是网页中常用的组件之一。它用于在一页内容过多的情况下,将内容分为多页展示,便于用户浏览和操作。Vue.js在处理分页组件时,提供了一种简单且高度可定制的方式。 2. 分页组件实现的基本步骤 2.1 设计组件结构:包括需求分析,页面布局设计,功能需求设计。 2.2 实现组件结…

    Vue 2023年5月27日
    00
  • Vue.js每天必学之内部响应式原理探究

    Vue.js每天必学之内部响应式原理探究 前言 Vue.js是一款前端框架,拥有许多优秀的特性,如组件化、响应式等,其中响应式即是Vue.js最为核心的部分之一。本文主要讲解Vue.js的响应式原理、数据双向绑定、getter与setter等内容。 Vue.js响应式原理 Vue.js的响应式原理包含以下步骤:1. 创建一个Vue实例。2. 在Vue实例中设…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部