没有合适的资源?快使用搜索试试~ 我知道了~
首页基于vue写一个全局Message组件的实现
基于vue写一个全局Message组件的实现
1.1k 浏览量
更新于2023-05-27
评论
收藏 49KB PDF 举报
主要介绍了基于vue写一个全局Message组件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
资源详情
资源评论
资源推荐

基于基于vue写一个全局写一个全局Message组件的实现组件的实现
主要介绍了基于vue写一个全局Message组件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工
作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
不知道大家在用一些UI框架,比如Element-ui的时候,有没有觉得一些全局组件。this.$message(),this.Toast()等,用起来很
爽。他们不像其他的组件,需要去导入,去注册。麻烦的很。
看了Element的源码,自己也撸了一个。其中包括了以前没有接触过的插件知识,哎,感觉自己对Vue的理解还是不够,只停
留在了使用的这阶段。需要更多的往深层次的地方去钻。不说废话了,直接上代码。
效果演示
全局组件需要一个index.js文件去注册
BlogMessage.vue
这里的script是用ts写的。大家只需将这里稍做修改就可以了
<template>
<transition name="slide">
<div class="message-wrap" :class="type" v-if="visible">
<div class="content">{{content}}</div>
</div>
</transition>
</template>
<script lang='ts'>
import { Component, Vue, Watch, Prop } from "vue-property-decorator";
@Component({
components: {}
})
export default class extends Vue {
private content: string = "";
private visible: boolean = false;
private type: string = "info"; // 'success','error'
private startTimer() {
window.setTimeout(() => {
this.visible = false;
}, 3000);
}
private mounted() {
this.startTimer();
}
}
</script>
<style scoped lang="scss">
.message-wrap {
position: fixed;
background-color: #44b0f3;
color: #ffffff;
left: 40%;
width: 20%;
top: 25px;
height: 40px;
z-index: 1001;
border-radius: 4px;
text-align: center;
border: 1px solid #ebeef5;
.content {
line-height: 40px;
}
}
.error {
background-color: #fef0f0;
color: #f56c6c;
}
.success {
background-color: #f0f9eb;
color: #67c23a;
}
.slide-enter-active,
.slide-leave-active {
transition: all 0.3s cubic-bezier(1, 0.5, 0.8, 1);
transition: all 0.2s ease;
}














安全验证
文档复制为VIP权益,开通VIP直接复制

评论0