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 相关文章推荐
jQuery用unbind方法去掉hover事件及其他方法介绍
Mar 18 Javascript
单元选择合并变色示例代码
May 26 Javascript
JavaScript使用二分查找算法在数组中查找数据的方法
Apr 07 Javascript
JS实现模拟风力的雪花飘落效果
May 13 Javascript
jQuery+json实现的简易Ajax调用实例
Dec 14 Javascript
基于jQuery实现点击弹出层实例代码
Jan 01 Javascript
全面了解addEventListener和on的区别
Jul 14 Javascript
浅析js的模块化编写 require.js
Dec 07 Javascript
webpack入门+react环境配置
Feb 08 Javascript
微信小程序实现点击空白隐藏的方法示例
Aug 13 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
Sep 23 Javascript
Vue实现图片轮播组件思路及实例解析
May 11 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
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
PHP对文件夹递归执行chmod命令的方法
2015/06/19 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
ThinkPHP实现附件上传功能
2017/04/27 PHP
Javascript &amp; DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
2007/06/02 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
Jquery响应回车键直接提交表单操作代码
2014/07/25 Javascript
javascript实现输出指定行数正方形图案的方法
2015/08/03 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
Vue3为什么这么快
2020/09/23 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
Python计算一个文件里字数的方法
2015/06/15 Python
python下10个简单实例代码
2017/11/15 Python
Python实现的FTP通信客户端与服务器端功能示例
2018/03/28 Python
python实现将一个数组逆序输出的方法
2018/06/25 Python
对Python中内置异常层次结构详解
2018/10/18 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
python默认参数调用方法解析
2020/02/09 Python
css3 flex布局 justify-content:space-between 最后一行左对齐
2020/01/02 HTML / CSS
浅谈HTML5 &amp; CSS3的新交互特性
2016/07/19 HTML / CSS
美国著名的婴儿学步鞋老品牌:Robeez
2016/08/20 全球购物
英国珠宝钟表和家居礼品精品店:David Shuttle
2018/02/24 全球购物
企业授权委托书范本
2014/04/02 职场文书
解除财产保全担保书
2014/05/20 职场文书
心理学专业求职信
2014/06/16 职场文书
学生检讨书
2015/01/27 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
四群教育工作总结
2015/08/10 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL
springboot 启动如何排除某些bean的注入
2021/08/02 Java/Android
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS