vue.extend实现alert模态框弹窗组件


Posted in Javascript onApril 28, 2018

本文通过Vue.extend创建组件构造器的方法写弹窗组件,供大家参考,具体内容如下

alert.js文件代码

import Vue from 'vue'
// 创建组件构造器
const alertHonor = Vue.extend(require('./alert.vue'));

var currentMsg = {callback:function(){
}}

export default function(options){

  var alertComponent = new alertHonor({el: document.createElement('div')});
  alertComponent.title = options.title;
  alertComponent.ranking = options.ranking;
  // 把alertHonor.vue加入body中
  alertComponent.$appendTo(document.body);

  // 回调函数
  alertComponent.callback = function(action) {
    if (action == 'share') {
      options.share();
    }
  };

}

alert.vue代码

<template>
  <div class="alertHonor" v-if="showAlertHonor">
    <div class="alertHonorBox" @click="alertHonorClick"></div>
    <div class="honorWindow">
      <div class="honorClose" @click="honorClose"></div>
      <div class="honorBg">
        <div class="honorShare">
          <div class="honorBgLeft">升级通知</div>
          <div class="honorBgRight" @click='handleActions("share")'>分享</div>
        </div>
        <div class="honorText">{{title}}</div>
      </div>
      <div class="honorRanking">
        {{ranking}}
      </div>
    </div>
  </div>
</template>
<script>
  export default{
    props:{
      img:{type:String},  //图片
      title:{type:String},  //达人昵称
      ranking:{type:String},   //排名
      share:{type:Function}, //分享
    },
    data(){
      return{
        showAlertHonor:true
      }
    },
    methods:{
      alertHonorClick(){ //点击其他区域
        this.showAlertHonor = false; //关闭整个窗口
      },
      honorClose(){ //点击关闭图标
        this.showAlertHonor = false;
      },

      handleActions(action){
        this.callback(action);
      }
    }
  }
</script>

 引用页面代码

<script>
  import AlertHonor from '../alert.js'
  export default{
    data(){
      return{
        title:'我的荣誉'
      }
    },
    ready(){
    },
    methods:{
      back(){
        alert(1)
      },
      submit(){
        var vm = this;
        AlertHonor({
          
          title:'拜访达人',
          ranking:'您在全国排名第99',
          share: function(){
            vm.share();
          }
        });
      },
      share(){ //点击分享
        alert('分享');
      },
    }
  }
</script>

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

Javascript 相关文章推荐
IE6下出现JavaScript未结束的字符串常量错误的解决方法
Nov 21 Javascript
js实现的切换面板实例代码
Jun 17 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
Sep 26 Javascript
用console.table()调试javascript
Sep 04 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
Aug 12 Javascript
全面解析Bootstrap布局组件应用
Feb 22 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
May 29 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
Oct 25 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
Jan 19 Javascript
jQuery动态产生select option下拉列表
Mar 15 Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
Oct 18 Javascript
Js逆向实现滑动验证码图片还原的示例代码
Mar 10 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
Apr 28 #Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
Apr 28 #Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
Apr 28 #Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
Apr 27 #Javascript
React Native日期时间选择组件的示例代码
Apr 27 #Javascript
vue实现点击展开点击收起效果
Apr 27 #Javascript
vue中post请求以a=a&amp;b=b 的格式写遇到的问题
Apr 27 #Javascript
You might like
php 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
PHP中array_slice函数用法实例详解
2014/11/25 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
Zend Framework框架实现类似Google搜索分页效果
2016/11/25 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
Javascript中Eval函数的使用
2010/03/23 Javascript
一个css与js结合的下拉菜单支持主流浏览器
2014/10/08 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
JS实现的相册图片左右滚动完整实例
2016/11/23 Javascript
JS实现间歇滚动的运动效果实例
2016/12/22 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
详解Node项目部署到云服务器上
2017/07/12 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
js动态设置select下拉菜单的默认选中项实例
2018/08/21 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
vue中defineProperty和Proxy的区别详解
2020/11/30 Vue.js
python采用getopt解析命令行输入参数实例
2014/09/30 Python
Python实现的用户登录系统功能示例
2018/02/05 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
2018/03/08 Python
Python实现ElGamal加密算法的示例代码
2020/06/19 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
全面介绍python中很常用的单元测试框架unitest
2020/12/14 Python
CSS3,线性渐变(linear-gradient)的使用总结
2017/01/09 HTML / CSS
HTML5未来发展趋势
2016/02/01 HTML / CSS
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
任意存:BOXFUL
2018/05/21 全球购物
教师专业理论水平的自我评价分享
2013/11/09 职场文书
推广普通话标语
2014/06/27 职场文书
大学生入党积极分子党校学习思想汇报
2014/10/25 职场文书
工程项目合作意向书
2015/05/08 职场文书
mysql配置SSL证书登录的实现
2021/09/04 MySQL
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python