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 相关文章推荐
extjs 为某个事件设置拦截器
Jan 15 Javascript
JQuery获取浏览器窗口内容部分高度的代码
Feb 24 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
Jan 08 Javascript
随鼠标移动的时钟非常漂亮遗憾的是只支持IE
Aug 12 Javascript
javascipt:filter过滤介绍及使用
Sep 10 Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
Dec 16 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
May 04 Javascript
jquery 中toggle的2种用法详解(推荐)
Sep 02 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
Feb 17 Javascript
深入掌握 react的 setState的工作机制
Sep 27 Javascript
浅谈如何使用webpack构建多页面应用
May 30 Javascript
浅析Vue项目中使用keep-Alive步骤
Jul 27 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学习之 数组声明
2011/06/09 PHP
解析ajax事件的调用顺序
2013/06/17 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
2013/09/28 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
2014/04/24 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
YII路径的用法总结
2014/07/09 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
用javascript实现页面打印的三种方法
2007/03/05 Javascript
js操作时间(年-月-日 时-分-秒 星期几)
2010/06/20 Javascript
实测jquery data()如何存值
2013/08/18 Javascript
javascript确认框的三种使用方法
2013/12/17 Javascript
js实现拖拽效果
2015/02/12 Javascript
功能强大的Bootstrap使用手册(一)
2016/08/02 Javascript
AngularJS自定义指令实现面包屑功能完整实例
2017/05/17 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
Koa2 之文件上传下载的示例代码
2018/03/29 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
vuex刷新后数据丢失的解决方法
2020/10/18 Javascript
python 中文乱码问题深入分析
2011/03/13 Python
python中的sort方法使用详解
2014/07/25 Python
Python 性能优化技巧总结
2016/11/01 Python
Python获取文件所在目录和文件名的方法
2017/01/12 Python
Django与JS交互的示例代码
2017/08/23 Python
用Django实现一个可运行的区块链应用
2018/03/08 Python
react+django清除浏览器缓存的几种方法小结
2019/07/17 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
最新的咖啡店创业计划书
2013/12/30 职场文书
童年读书笔记
2015/06/26 职场文书
2015年度女工工作总结
2015/10/22 职场文书
安全责任协议书范本
2016/03/23 职场文书
Pandas数据类型之category的用法
2021/06/28 Python
Java中的随机数Random
2022/03/17 Java/Android
Nginx工作模式及代理配置的使用细节
2022/03/21 Servers