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 相关文章推荐
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
Jan 09 Javascript
测试JavaScript字符串处理性能的代码
Dec 07 Javascript
jquery $.ajax()取xml数据的小问题解决方法
Nov 20 Javascript
javascript中删除指定数组中指定的元素的代码
Feb 12 Javascript
js验证输入是否为手机号码或电话号码示例
Dec 30 Javascript
js继承call()和apply()方法总结
Dec 08 Javascript
莱鸟介绍javascript onclick事件
Jan 06 Javascript
深入理解JQuery循环绑定事件
Jun 02 Javascript
Ajax与服务器(JSON)通信实例代码
Nov 05 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
Dec 08 Javascript
Javascript(es2016) import和require用法和区别详解
Aug 11 Javascript
Javascript原生ajax请求代码实例
Feb 20 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/11/03 PHP
typecho插件编写教程(二):写一个新插件
2015/05/28 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
WEB前端设计师常用工具集锦
2014/12/09 Javascript
javascript中checkbox使用方法简单实例演示
2015/11/17 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
vue.js学习笔记:如何加载本地json文件
2017/01/17 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
2017/06/29 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
EasyUI的DataGrid绑定Json数据源的示例代码
2017/12/16 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
JavaScript函数IIFE使用详解
2019/10/21 Javascript
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
[53:13]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-GAMING
2014/05/22 DOTA
浅析Python中的join()方法的使用
2015/05/19 Python
python中字典(Dictionary)用法实例详解
2015/05/30 Python
详解tensorflow载入数据的三种方式
2018/04/24 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
PyQt5创建一个新窗口的实例
2019/06/20 Python
如何在 Django 模板中输出 &quot;{{&quot;
2020/01/24 Python
Python关于反射的实例代码分享
2020/02/20 Python
8款使用 CSS3 实现超炫的 Loading(加载)的动画效果
2015/03/17 HTML / CSS
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
英语简历自我评价
2014/01/26 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
迎新生欢迎词
2015/01/23 职场文书
我的中国梦主题班会
2015/08/14 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
聊聊redis-dump工具安装问题
2022/01/18 Redis
面试提问mysql一张表到底能存多少数据
2022/03/13 MySQL