这篇文章将为大家详细讲解有关Vue.extend中怎么实现一个alert模态框弹窗组件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。alert.js文件代码
这篇文章将为大家详细讲解有关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('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中怎么实现一个alert模态框弹窗组件就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
--结束END--
本文标题: vue.extend中怎么实现一个alert模态框弹窗组件
本文链接: https://lsjlt.com/news/72407.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-01-12
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0