vue封装自己的组件库 02.封装dialog组件

2023-11-04


link: https://blog.csdn.net/weixiaowei_2016/article/details/104702793


四、封装一个element-ui风格的dialog组件

前置知识:

  1. vue过渡动画
  2. sync修饰符
  3. 具名插槽与v-slot指令

参数支持:

参数名

参数描述

参数类型

默认值

title

对话框标题

string

提示

width

宽度

string

50%

top

与顶部的距离

string

15vh

visible

是否显示dialog(支持sync修饰符)

boolean

false

事件支持:

事件名

事件描述

opened

模态框显示事件

closed

模态框关闭事件

插槽说明:

插槽名称

插槽描述

default

dialog的内容

title

dialog的标题

footer

dialog的底部操作区

4.1dialog组件的基本框架和样式

首先搭建起来dialog组件的框架,暂时不加入插槽,只构建出基本的框架和样式。

框架分为三个部分,头部(header)、内容(body)、底部(footer),基本框架如下:

<template>
 <div class="one-dialog_wrapper">
   <div class="one-dialog">
     <div class="one-dialog_header">
       <span class="one-dialog_title">提示</span>
       <button class="one-dialog_headerbtn">
         <i class="one-icon-close"></i>
       </button>
     </div>
     <div class="one-dialog_body">
       <span>这是一段信息</span>
     </div>
     <div class="one-dialog_footer">
       <one-button>取消</one-button>
       <one-button type="primary">确定</one-button>
     </div>
   </div>
 </div>
</template>

样式如下:

<style lang="scss" scoped>
.one-dialog_wrapper{
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: auto;
  margin: 0;
  z-index: 2001;
  background-color: rgba(0,0,0,0.5);
  .one-dialog{
    position: relative;
    margin: 15vh auto 50px;
    background: #fff;
    border-radius: 2px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
    box-sizing: border-box;
    width: 30%;
    &_header{
      padding: 20px 20px 10px;
      .one-dialog_title{
        line-height: 24px;
        font-size: 18px;
        color: #303133;
      }
      .one-dialog_headerbtn{
        position: absolute;
        top: 20px;
        right: 20px;
        padding: 0;
        background: transparent;
        border: none;
        outline: none;
        cursor: pointer;
        font-size: 16px;
        .one-icon-close{
          color:909399
        }
      }
    }
    &_body{
      padding: 30px 20px;
      color: #606266;
      font-size: 14px;
      word-break: break-all;
    }
    &_footer{
      padding: 10px 20px 20px;
      text-align: right;
      box-sizing: border-box;
      ::v-deep .one-button:first-child{
        margin-right: 20px;
      }
    }
  }
}
</style>
  • 这里按钮样式的修改用到了深度穿透 https://www.jianshu.com/p/2c6ce46d8ed1 因为在dialog组件内部
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue封装自己的组件库 02.封装dialog组件 的相关文章

随机推荐

  • C++——指针作为参数传递

    C 指针作为参数传递 在写这一篇之前 受到了两个博主两篇博文 博文1 博文2 的启发 对指针作为参数传递时 有了很大的启发 所以在看完之后并把自己的感悟写出来 对于指针的变化作了更详细的讲解 1 指针作为参数传递时 是值传递不是引用传递 2
  • 设置ipv4固定ip

    选择 打开 网络和Intemet 设置 点击进入之后 选择 更改适配器选项 选择需要设置的网络 右击选择 属性 选择 Interent协议版本4 TCP IPv4 选择 属性 cmd输入ipconfig查看当前的IP信息 选择 使用下面IP
  • shinblink HX711称重/形变/压力测量

    HX711称重 形变 压力测量 一 本例程实现功能 二 基本概念 三 接线图 五 完整代码 六 代码运行结果 一 本例程实现功能 Core通过HX711差分电压采集模块测量电桥式传感器输出的差分电压AD值 并通过print 函数在电脑串口调
  • SQLi LABS Less 26a 联合注入+布尔盲注

    第26a关是单引号 括号的字符型注入 后台过滤了关键字 and or 注释 空格 这篇文章提供联合注入 布尔盲注 两种解题方式 SQLi LABS其他关卡可以参考 SQLi LABS 靶场通关教程 一 功能分析 这关是一个查询功能 地址栏输
  • 多播路由技术

    什么是多播转发树 用图论术语描述从特定源节点到多播组的所有成员的一组路径 这些路径定义了图论中的树 tree 是不含任何回路的图 即一个路由器不会在一条路径上出现两次或两次以上 有时也称为转发树 每个多播路由器对应于树中的一个结点 连接两个
  • LeetCode 1603. 设计停车系统

    题目链接 1603 设计停车系统 class ParkingSystem public vector
  • 九、UI系统

    目录 血条 Health Bar 的预制设计 设计过程 1 使用 IMGUI 2 使用 UGUI 两种实现的优缺点 IMGUI UGUI 效果展示 血条 Health Bar 的预制设计 血条 Health Bar 的预制设计 具体要求如下
  • Azure RTOS定价(ThreadX 等)

    Azure RTOS定价 Azure RTOS定价 https azure microsoft com zh cn pricing details rtos 使嵌入式 IoT 开发和连接变得轻松 Azure RTOS 是一种易于使用 经过市
  • 史上最简单详细的Hadoop完全分布式集群搭建

    一 安装虚拟机环境 Vmware12中文官方版 链接 https pan baidu com s 1IGKVfaOtcFMFXNLHUQp41w 提取码 6rep 激活秘钥 MA491 6NL5Q AZAM0 ZH0N2 AAJ5A 这个安
  • Kettle实例-数据检验-数据规范化处理

    1 使用Kettle工具 创建一个转换data validation 并添加 自定义常量数据 控件 计算器 控件 数据检验 控件 空操作 控件以及Hop跳连接线 2 双击 自定义常量数据 控件 进入 自定义常量数据 界面配置实验用数据 单击
  • Ubuntu-安装JDK

    1 检查安装JDK没有 java version 如果你看到像下面的输出 这就意味着你并没有安装过Java The program java can be found in the following packages default jr
  • centos7开启ssh 22端口

    查看是否安装ssh rpm qa grep ssh yum install openssh server 安装ssh 开启ssh service sshd start netstat ntpl grep 22 查看端口是否打开 设置自动开启
  • CSS样式--盒模型(四)

    CSS样式 盒模型 四 前言 css盒模型是创建css布局基础 其中最主要的就是padding和margin了 盒模型图解如下 可通过谷歌浏览器的调试工具查看元素的盒模型 鼠标悬浮上去可查看对应的padding border等值 框属性 1
  • 质数判断程序

    include
  • Spring Framework研究(一)RESTFUL

    前言 参考文档 Spring Framework Reference Documentation http docs spring io spring docs 3 2 x spring framework reference html s
  • 【漏洞复现】通达OA前台任意用户登录漏洞

    漏洞简介 通达OA Office Anywhere网络智能办公系统 是中国通达公司的一套协同办公自动化软件 通达OA lt 11 5 200417存在一个认证绕过漏洞 利用该漏洞可以实现任意用户登录 攻击者可以通过构造恶意攻击代码 成功登录
  • vs2017无法打开“stdio.h”等源文件!

    因为系统重装了 vs不得不重新安装 不得不说简直就是残忍啊 最后差点砸电脑 心态都崩了 一个简单的helloworld 保留四百多个错误 简直就是残忍 网上找了很多教程 都是单独下载 然后配置环境什么的 越看越懵越看越不知道问题出在哪里 先
  • 进公司能不能转正,简单,就看能不能做事

    前几天听同事 他是应用组领导 讲到看一个人在工作上行不行 很简单 就看他能不能做事 感受 在换工作后 进入新公司 领导会给你任务 当然这得碰运气 运气好或许遇到的任务简单 或许是你以前做过的 很快就做完了 这样 你在3个月内也做不少事 而且
  • 面向对象的封装和继承

    封装 封装的概念 将类的某些信息隐藏在类内部 不允许外部程序直接访问 而是通过该类提供的方法来实现对隐藏信息的操作和访问 把尽可能多的东西藏起来 对外提供便捷的接口 封装的作用 便于使用者正确使用系统 防止错误修改属性 有助于系统之间的松耦
  • vue封装自己的组件库 02.封装dialog组件

    link https blog csdn net weixiaowei 2016 article details 104702793 四 封装一个element ui风格的dialog组件 前置知识 vue过渡动画 sync修饰符 具名插槽