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 相关文章推荐
javascript获取当前ip的代码
May 10 Javascript
A标签触发onclick事件而不跳转的多种解决方法
Jun 27 Javascript
js 实现菜单左右滚动显示示例介绍
Nov 21 Javascript
js 针对html DOM元素操作等经验累积
Mar 11 Javascript
使用npm发布Node.JS程序包教程
Mar 02 Javascript
JavaScript+CSS无限极分类效果完整实现方法
Dec 22 Javascript
angularjs实现文字上下无缝滚动特效代码
Sep 04 Javascript
Angular2里获取(input file)上传文件的内容的方法
Sep 05 Javascript
js实现登录注册框手机号和验证码校验(前端部分)
Sep 28 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
Sep 20 Javascript
layui 实现自动选择radio单选框(checked)的方法
Sep 03 Javascript
如何使用JavaScript实现无缝滚动自动播放轮播图效果
Aug 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生成PDF方法详解
2015/01/23 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
使用jQuery管理选择结果
2015/01/20 Javascript
js实现左侧网页tab滑动门效果代码
2015/09/06 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
2016/05/31 Javascript
深入浅析JS的数组遍历方法(推荐)
2016/06/15 Javascript
BootStrap入门教程(二)之固定的内置样式
2016/09/19 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
JS异步文件分片断点上传的实现思路
2016/12/25 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
解析Vue2.0双向绑定实现原理
2017/02/23 Javascript
AngularJS表格添加序号的方法
2017/03/03 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
2018/09/20 Javascript
js使用formData实现批量上传
2020/03/27 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
javascript如何实现create方法
2019/11/04 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
[01:20]PWL开团时刻DAY9——听说潮汐没用?
2020/11/10 DOTA
pygame实现俄罗斯方块游戏
2018/06/26 Python
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
python实现统计代码行数的小工具
2019/09/19 Python
TensorFlow实现打印每一层的输出
2020/01/21 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
使用Keras训练好的.h5模型来测试一个实例
2020/07/06 Python
Python如何急速下载第三方库详解
2020/11/02 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
澳大利亚100%丝绸多彩度假装商店:TheSwankStore
2019/09/04 全球购物
外国语学院毕业生自荐信
2013/10/28 职场文书
合作协议书范本
2014/04/17 职场文书
踏青活动策划方案
2014/08/19 职场文书
2016年学校安全教育月活动总结
2016/04/06 职场文书
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python