首页  >  文章  >  web前端  >  如何使用vue.extend实现alert模态框弹窗组件

如何使用vue.extend实现alert模态框弹窗组件

php中世界最好的语言
php中世界最好的语言原创
2018-06-01 17:23:432037浏览

这次给大家带来如何使用vue.extend实现alert模态框弹窗组件,使用vue.extend实现alert模态框弹窗组件的注意事项有哪些,下面就是实战案例,一起来看一下。

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('p')});
  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>
  <p class="alertHonor" v-if="showAlertHonor">
    <p class="alertHonorBox" @click="alertHonorClick"></p>
    <p class="honorWindow">
      <p class="honorClose" @click="honorClose"></p>
      <p class="honorBg">
        <p class="honorShare">
          <p class="honorBgLeft">升级通知</p>
          <p class="honorBgRight" @click=&#39;handleActions("share")&#39;>分享</p>
        </p>
        <p class="honorText">{{title}}</p>
      </p>
      <p class="honorRanking">
        {{ranking}}
      </p>
    </p>
  </p>
</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>

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

如何使用Vue实现点击时间获取时间段查询

如何使用vue弹窗消息组件

以上是如何使用vue.extend实现alert模态框弹窗组件的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn