本文通过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>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持北冥有鱼。
您可能感兴趣的文章:
- 关于vue.extend和vue.component的区别浅析
- Vue.extend构造器的详解
- 用Vue.extend构建消息提示组件的方法实例
- vue.extend与vue.component的区别和联系
- Vue组件教程之Toast(Vue.extend 方式)详解
- vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
- 深入理解Vue生命周期、手动挂载及挂载子组件
- vue 挂载路由到头部导航的方法
- vue组件挂载到全局方法的示例代码
- Vue.extend实现挂载到实例上的方法