vue弹窗组件使用方法


Posted in Javascript onApril 28, 2018

本文实例为大家分享了vue弹窗组件的具体代码,供大家参考,具体内容如下

弹窗是一个项目必备的复用利器,所以封装起来,保证项目ui一致,是很有必要的。学了一段时间vue,想想还是用vue写一下吧。用的很小白,但是会写出来了,说明我也有进步一丢丢了。继续加油….

代码贴图如下,样式比较丑,不要介意…

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>ys-vue-modal-component</title>
  <style>
    p,h4{
      margin:0;
    }
    .modal{
      width: 480px;
      background-color: #fff;
      border: 1px solid rgba(0, 0, 0, .3);
      border-radius: 6px;
      box-shadow: 0 4px 12px rgba(0, 0, 0, .5);
      margin: 50px;
    }
    .modal-header {
      color: #fff;
      background: cadetblue;
      border-radius: 6px 6px 0 0;
      padding: 15px;
      border-bottom: 1px solid #5e9fa1;
    }
    .modal-content div {
      padding: 15px 10px;
    }
    .modal-footer {
      padding: 15px;
      text-align: right;
      border-top: 1px solid #e5e5e5;
    }
    .btn {
      border: 1px solid #d1d1d1;
      border-radius: 3px;
      background-color: #f7f7f7;
      background: -webkit-gradient(linear, 0 0, 0 100%, from(#f7f7f7),
     to(#f2f2f2));
      background: -moz-gradient(linear, 0 0, 0 100%, from(#f7f7f7),
     to(#f2f2f2));
      background: -o-gradient(linear, 0 0, 0 100%, from(#f7f7f7), to(#f2f2f2));
      background: -ms-gradient(linear, 0 0, 0 100%, from(#f7f7f7), to(#f2f2f2));
      height: 28px;
      padding: 0 20px;
      cursor: pointer;
      line-height: 28px;
      display: inline-block;
      color: #666666;
      margin-right: 5px;
      outline: none;
    }
    .blue {
       border: 1px solid #5e9fa1;
      background-color: #5e9fa1;
      background: -webkit-gradient(linear, 0 0, 0 100%, from(#74c4c6),
     to(#5e9fa1));
      background: -moz-gradient(linear, 0 0, 0 100%, from(#74c4c6),
     to(#5e9fa1));
      background: -o-gradient(linear, 0 0, 0 100%, from(#74c4c6), to(#5e9fa1));
      background: -ms-gradient(linear, 0 0, 0 100%, from(#74c4c6), to(#5e9fa1));
      color: #FFFFFF;
    }    
  </style>
  <script src="https://unpkg.com/vue/dist/vue.js"></script>
</head>
<body>
  <div id="app"> 
    <input type="button" class="btn blue" value="点击我,呼唤弹窗,再来一遍" v-if="isHide" @click="isHide=!isHide">
    <ys-modal-component 
       v-if="!isHide"
       modal-title="温馨提示" 
       ok-btn="确认购买" 
       cancel-btn="去意已决"
       @on-ok="ok"
       @on-cancel="cancel"
     >
      <div slot="modal-content">
        尊敬的用户,您购买的商品将于支付成功后3-7个工作日内发货,敬请周知。祝您购物愉快!
      </div>
    </ys-modal-component>
  </div>
  <script>
    /*
      props:
        modalTitle: 弹窗标题
        okBtn: 确认按钮
        cancelBtn: 取消按钮
        注意事项:传参时候使用烤串的书写方式xx-xxx
      slot:
        modal-content: 内容区域
        modal-footer: 页脚按钮区域
      methods: 
        okHandle: 触发确认on-ok自定义事件
        cancelHandle: 触发取消on-cancel自定义事件
     */
    Vue.component('ys-modal-component', {
      props: {
        modalTitle: {
          type: String,
          default: '标题区域'
        },
        okBtn: {
          type: String,
          default: '确认'
        },
        cancelBtn: {
          type: String,
          default: '取消'
        }
      },
      template: `
        <div class="modal">
          <div class="modal-header">
            <h4>{{ modalTitle }}</h4>
          </div>
          <div class="modal-content">
            <div>
              <slot name="modal-content">内容区域</slot>
            </div>
          </div>
          <div class="modal-footer">
              <input class="btn blue" type="button" v-model="okBtn" @click="okHandle" />
              <input class="btn" type="button" v-model="cancelBtn" @click="cancelHandle" />
          </div>
        </div>
      `,
      methods: {
        okHandle () {
          console.log("点击确定");
          this.$emit("on-ok"); 
        },
        cancelHandle () {
          console.log("点击取消");
          this.$emit("on-cancel");
        }
      }
    })


    new Vue({
      el: "#app",
      data: {
        isHide: false
      },
      methods: {
        ok () {
          alert("欢迎您购买本产品");
        },
        cancel () {
          this.isHide = !this.isHide;
        }
      }
    })
  </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript常用运算符(Operators)-javascript基础教程
Dec 14 Javascript
Javascript 各浏览器的 Javascript 效率对比
Jan 23 Javascript
jquery模拟按下回车实现代码
Sep 20 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
Jun 03 Javascript
浅析javascript中函数声明和函数表达式的区别
Feb 15 Javascript
jQuery实现购物车表单自动结算效果实例
Aug 10 Javascript
javascript实现二级级联菜单的简单制作
Nov 19 Javascript
JavaScript 节流函数 Throttle 详解
Jul 04 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
Apr 06 Javascript
Vue组件之极简的地址选择器的实现
May 31 Javascript
javascript实现抢购倒计时程序
Aug 26 Javascript
用JS实现一个简单的打砖块游戏
Dec 11 Javascript
学习Vue组件实例
Apr 28 #Javascript
vue弹窗消息组件的使用方法
Sep 24 #Javascript
layui实现动态和静态分页
Apr 28 #Javascript
js实现二级菜单点击显示当前内容效果
Apr 28 #Javascript
Vue实现点击时间获取时间段查询功能
Aug 21 #Javascript
vue组件实现弹出框点击显示隐藏效果
Oct 26 #Javascript
vue.extend实现alert模态框弹窗组件
Apr 28 #Javascript
You might like
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
老生常谈PHP中的数据结构:DS扩展
2017/07/17 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
一个JavaScript防止表单重复提交的实例
2014/10/21 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
浅析node.js中close事件
2014/11/26 Javascript
jQuery插件kinMaxShow扩展效果用法实例
2015/05/04 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
2015/08/11 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
layui复选框的全选与取消实现方法
2019/09/02 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
js实现贪吃蛇游戏(简易版)
2020/09/29 Javascript
Django中Model的使用方法教程
2018/03/07 Python
python批量修改文件编码格式的方法
2018/05/31 Python
PyCharm设置SSH远程调试的方法
2018/07/17 Python
Windows下安装Scrapy
2018/10/17 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
使用Pyhton 分析酒店针孔摄像头
2020/03/04 Python
基于HTML5 FileSystem API的使用介绍
2013/04/24 HTML / CSS
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
德购商城:德国进口直邮商城
2017/06/13 全球购物
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
成功的餐厅经营创业计划书
2014/01/15 职场文书
《童年》教学反思
2014/02/18 职场文书
如何写自我评价?自我评价写什么好?
2014/03/14 职场文书
市场营销毕业生自荐信范文
2014/04/01 职场文书
《将心比心》教学反思
2014/04/08 职场文书
应用外语系自荐信
2014/06/26 职场文书
暑假安全保证书
2015/02/28 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL