这是一个提示框和对话框,例:

 

这是一个组件 eject.vue

<template>
<div class='kz-cont' v-show='showstate'>
<div class='kz-wrapper' >
<div class='kz-text'>
<strong><slot name='text' ></slot></strong>
</div>
<div class='footer'>
<div @click='tocancel' class='kz-btn'>取消</div>
<div class='kz-btn' @click='took'>确定</div>
</div>
</div>
</div>
</template>
<script>
export default{
name:'eject',
props:['type','showstate'],
methods:{
tocancel:function(){
this.$emit('tocancel');
},
took:function(){
this.$emit('took');
}
}
}
</script>
<style scoped>
.kz-cont{position:fixed;left:0;right: 0;top:0;bottom: 0;z-index: 500;background:rgba(0,0,0,0.3);text-align:center;overflow: hidden;white-space:nowrap;}
.kz-cont:after{content:"";display:inline-block;width:0;height:100%;visibility: hidden;vertical-align:middle;}
.kz-wrapper{display:inline-block;vertical-align:middle;background:#fff;color:#333333;border-radius: 5px;max-width:100%;}
.kz-text{text-align:center;padding:20px 75px;}
.footer{display:flex;border-top:1px solid #E5E5E5;color:#488BF1;}
.kz-btn{flex:1;padding: 12px;}
.kz-btn +.kz-btn{border-left:1px solid #E5E5E5;}
</style>

在子组件调用使用

<script>
import Eject from './eject'
export default{
name:'demo',
components:{
Eject
},
data(){
return {
showa:false,
showc:false,
msg:""
}
},
methods:{
alerts(){
this.showa=true;
},
confirms(){
this.showc=true;
this.msg="这是一个对话的弹窗";
},
okfall(){
this.showa=false;
},
cancelfall(){
this.showc=false;
},
okfall2(){
this.showc=false;
}
}
}
</script>

html代码

<template>
<div class='zk-box'>
<div class='zk-flex zk-pd'>
<div class='zk-btn' @click='alerts'>提示框</div>
<Eject type='alert' @took='okfall' :showstate='showa'>
<span slot='tlt'>提示</span>
<div slot='text'>这是一个提示弹窗</div>
</Eject>
</div>
<div class='zk-flex zk-pd'>
<div class='zk-btn zk-blue' @click='confirms'>对话框</div>
<Eject type='confirm' @took='okfall2' @tocancel='cancelfall' :showstate='showc'>
<span slot='tlt'>确认</span>
<div slot='text'>{{msg}}</div>
</Eject>
</div>
</div>
</template>

整体代码

<template>
<div class='zk-box'>
<div class='zk-flex zk-pd'>
<div class='zk-btn' @click='alerts'>提示框</div>
<Eject type='alert' @took='okfall' :showstate='showa'>
<span slot='tlt'>提示</span>
<div slot='text'>这是一个提示弹窗</div>
</Eject>
</div>
<div class='zk-flex zk-pd'>
<div class='zk-btn zk-blue' @click='confirms'>对话框</div>
<Eject type='confirm' @took='okfall2' @tocancel='cancelfall' :showstate='showc'>
<span slot='tlt'>确认</span>
<div slot='text'>{{msg}}</div>
</Eject>
</div>
</div>
</template>
<script>
import Eject from './eject'
export default{
name:'demo',
components:{
Eject
},
data(){
return {
showa:false,
showc:false,
msg:""
}
},
methods:{
alerts(){
this.showa=true;
},
confirms(){
this.showc=true;
this.msg="这是一个对话的弹窗";
},
okfall(){
this.showa=false;
},
cancelfall(){
this.showc=false;
},
okfall2(){
this.showc=false;
}
}
}
</script>
<style>
.zk-box{display:flex;line-height:0.65rem;font-size:0.26rem;color:#333;padding:4.5rem 0;}
.zk-flex{flex:1;}
.zk-pd{padding:0.5rem 0.1rem;}
.zk-btn{display:block;line-height:0.88rem;text-align:Center;color:#fff;border-radius: 0.12rem;background:#488BF1 ;}
.zk-blue{background:#488BF1;}
</style>

这就是封装好了的组件和使用方法,哪里需要弹窗直接调用就可以了

这是一个提示框和对话框,例:     
这是一个组件 eject.vue<template>  <div class='kz-cont' v-show='showstate'>    <div class='kz-wrapper' >      <div class='kz-text'>        <strong><slot name='text' ></slot></strong>      </div>      <div class='footer'>        <div @click='tocancel' class='kz-btn'>取消</div>        <div class='kz-btn' @click='took'>确定</div>      </div>    </div>  </div></template><script>  export default{    name:'eject',    props:['type','showstate'],    methods:{      tocancel:function(){        this.$emit('tocancel');      },      took:function(){        this.$emit('took');      }    }  }</script><style scoped>  .kz-cont{position:fixed;left:0;right: 0;top:0;bottom: 0;z-index: 500;background:rgba(0,0,0,0.3);text-align:center;overflow: hidden;white-space:nowrap;}  .kz-cont:after{content:"";display:inline-block;width:0;height:100%;visibility: hidden;vertical-align:middle;}  .kz-wrapper{display:inline-block;vertical-align:middle;background:#fff;color:#333333;border-radius: 5px;max-width:100%;}  .kz-text{text-align:center;padding:20px 75px;}  .footer{display:flex;border-top:1px solid #E5E5E5;color:#488BF1;}  .kz-btn{flex:1;padding: 12px;}  .kz-btn +.kz-btn{border-left:1px solid #E5E5E5;}</style>12345678910111213141516171819202122232425262728293031323334353637在子组件调用使用<script>  import Eject from './eject'  export default{    name:'demo',    components:{      Eject    },    data(){      return {        showa:false,        showc:false,        msg:""      }    },    methods:{      alerts(){        this.showa=true;      },      confirms(){        this.showc=true;        this.msg="这是一个对话的弹窗";      },      okfall(){        this.showa=false;      },      cancelfall(){        this.showc=false;      },      okfall2(){        this.showc=false;      }    }  }</script>12345678910111213141516171819202122232425262728293031323334html代码<template>    <div class='zk-box'>      <div class='zk-flex zk-pd'>        <div class='zk-btn' @click='alerts'>提示框</div>        <Eject  type='alert' @took='okfall' :showstate='showa'>          <span slot='tlt'>提示</span>          <div slot='text'>这是一个提示弹窗</div>        </Eject>      </div>      <div class='zk-flex zk-pd'>        <div class='zk-btn zk-blue' @click='confirms'>对话框</div>        <Eject  type='confirm' @took='okfall2' @tocancel='cancelfall' :showstate='showc'>          <span slot='tlt'>确认</span>          <div slot='text'>{{msg}}</div>        </Eject>      </div>    </div></template>123456789101112131415161718整体代码<template>    <div class='zk-box'>      <div class='zk-flex zk-pd'>        <div class='zk-btn' @click='alerts'>提示框</div>        <Eject  type='alert' @took='okfall' :showstate='showa'>          <span slot='tlt'>提示</span>          <div slot='text'>这是一个提示弹窗</div>        </Eject>      </div>      <div class='zk-flex zk-pd'>        <div class='zk-btn zk-blue' @click='confirms'>对话框</div>        <Eject  type='confirm' @took='okfall2' @tocancel='cancelfall' :showstate='showc'>          <span slot='tlt'>确认</span>          <div slot='text'>{{msg}}</div>        </Eject>      </div>    </div></template><script>  import Eject from './eject'  export default{    name:'demo',    components:{      Eject    },    data(){      return {        showa:false,        showc:false,        msg:""      }    },    methods:{      alerts(){        this.showa=true;      },      confirms(){        this.showc=true;        this.msg="这是一个对话的弹窗";      },      okfall(){        this.showa=false;      },      cancelfall(){        this.showc=false;      },      okfall2(){        this.showc=false;      }    }  }</script><style>  .zk-box{display:flex;line-height:0.65rem;font-size:0.26rem;color:#333;padding:4.5rem 0;}  .zk-flex{flex:1;}  .zk-pd{padding:0.5rem 0.1rem;}  .zk-btn{display:block;line-height:0.88rem;text-align:Center;color:#fff;border-radius: 0.12rem;background:#488BF1 ;}  .zk-blue{background:#488BF1;}</style>123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960这就是封装好了的组件和使用方法,哪里需要弹窗直接调用就可以了————————————————版权声明:本文为CSDN博主「zeke_x」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/weixin_41997724/article/details/82687005

vue封装一个弹框组件的更多相关文章

  1. vue移动端弹框组件,vue-layer-mobile

    最近做一个移动端项目,弹框写的比较麻烦,查找资料,找到了这个组件,但是说明文档比较少,自己研究了下,把我碰到的错,和详细用法分享给大家!有疑问可以打开组件看一看,这个组件是仿layer-mobile的 ...

  2. vue移动端弹框组件

    最近做一个移动端项目,弹框写的比较麻烦,查找资料,找到了这个组件,但是说明文档比较少,自己研究了下,把我碰到的错,和详细用法分享给大家!有疑问可以打开组件看一看,这个组件是仿layer-mobile的 ...

  3. vue封装公用弹出框方法,实现点击出现操作弹出框

    vue封装公用弹出框方法,实现点击出现操作弹出框 如上图所示,这次要实现一个点击出现操作弹框的效果:并将这个功能封装成一个函数,便于在项目的多个地方使用. 具体思路是: 封装一个组件,组件保护一个插槽 ...

  4. 移动端(H5)弹框组件--简单--实用--不依赖jQuery

    俗话说的好,框架是服务与大家的,包含的功能比较多,代码多.在现在追求速度的年代.应该根据自己的需求去封装自己所需要的组件. 下边就给大家介绍一下自己封装的一个小弹框组件,不依赖与jQuery,代码少, ...

  5. VUE2.0增删改查附编辑添加model(弹框)组件共用

    Vue实战篇(增删改查附编辑添加model(弹框)组件共用) 前言 最近一直在学习Vue,发现一份crud不错的源码 预览链接 https://taylorchen709.github.io/vue- ...

  6. vue实现一个简易Popover组件

    概述 之前写vue的时候,对于下拉框,我是通过在组件内设置标记来控制是否弹出的,但是这样有一个问题,就是点击组件外部的时候,怎么也控制不了下拉框的关闭,用户体验非常差. 当时想到的解决方法是:给根实例 ...

  7. Vue 自定义全局消息框组件

    消息弹框组件,默认3秒后自动关闭,可设置info/success/warning/error类型 效果图: 文件目录: Message.vue <template> <transit ...

  8. vue3系列:vue3.0自定义弹框组件V3Popup|vue3.x手机端弹框组件

    基于Vue3.0开发的轻量级手机端弹框组件V3Popup. 之前有分享一个vue2.x移动端弹框组件,今天给大家带来的是Vue3实现自定义弹框组件. V3Popup 基于vue3.x实现的移动端弹出框 ...

  9. 基于uni-app全端弹框组件uaPopup「兼容h5+小程序+app端|nvue」

    uniapp兼容多端自定义模态弹框组件UAPopup ua-popup 一款轻量级的uniapp自定义弹窗组件.汇集了android.ios和微信弹窗效果(msg消息.alert提示框.dialog对 ...

随机推荐

  1. hdu 6832 A Very Easy Graph Problem 构造树+dfs

    题意: 给你一个n个点m条边的图,对于第i条边,它的长度是2i,对于每一个顶点,它不是0类型,就是1类型.你需要找出来对于所有的"两个不同类型的点之间最短距离"的和 题解(参考:h ...

  2. P1541 乌龟棋(DP)

    题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行NNN个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第NNN格是终点,游戏要求玩家控制一个乌龟 ...

  3. JavaScript——六

    magin和padding的区别:https://www.cnblogs.com/zxnn/p/8186225.html magin:兄弟之间的 padding:父子关系 body和网页边框左右距离上 ...

  4. JavaScript函数console、this关键字

    console.dir()打印出来的东西不加任何操作 console.log()打印出来东西实现进行了操作,打印出来的东西可能不是原型 具体对象的类型可以在"_proto_"中看, ...

  5. CF1463-B. Find The Array

    题意: 给出一个由n个数组成的数组a,这个数组的元素和为S,要求你找出一个由n个数字组成数组b,这个数组满足: 数组中的每个数可以将他两边的数字整除或者被他两边的数字整除 数组b中每个位置的数字减去数 ...

  6. kubernetes实战-交付dubbo服务到k8s集群(一)准备工作

    本次交付的服务架构图:因为zookeeper属于有状态服务,不建议将有状态服务,交付到k8s,如mysql,zk等. 首先部署zk集群:zk是java服务,需要依赖jdk,jdk请自行下载: 集群分布 ...

  7. Gitlab 快速部署及日常维护 (二)

    一.概述 上一篇我们将Gitlab的安装部署和初始化设置部分全部讲解完成了,接下来我们介绍Gitlab在日常工作中常遇见的问题进行梳理说明. 二.Gitlab的安装和维护过程中常见问题 1.Gitla ...

  8. C++ 结构体 segment fault

    形如 struct node { int key; int height; int size; //tree node 个数 node *left, *right; node(int x) : key ...

  9. 脚本化CSS(通过JS来间接操作CSS)

    (一)通过.style.形式,获取的是行间样式,可读可写 1.行间样式语法 1 <div style="width:100px;border:5px solid red;height: ...

  10. HDU 6395 Sequence(分段矩阵快速幂)题解

    题意: 已知\(A,B,C,D,P,n\)以及 \[\left\{ \begin{aligned} & F_1 = A \\ & F_2 = B\\ & F_n = C*F_{ ...