自制提示框vue2

 message.vue文件

<!-- 自定义警告弹窗 -->
<template>
    <div class="message" v-if="visible">
        <svg fill="none" width="1em" viewBox="0 0 16 16" height="1em" class="icon">
            <!-- 感叹号图片 -->
            <path fill="currentColor" d="M15 8A7 7 0 101 8a7 7 0 0014 0zM8.5 4v5.5h-1V4h1zm-1.1 7h1.2v1.2H7.4V11z"
                fill-opacity="0.9"></path>
        </svg>
        {{ text }}
    </div>
</template>
<script>
export default {
    data() {
        return {
            visible: false,
            text: '',
        }
    },
    props: {},
    created() {

    },
    methods: {
        init(text) {
            clearTimeout(this.timer);
            this.visible = true;
            this.text = text || "";
            this.timer = setTimeout(() => {
            this.visible = false;
            clearTimeout(this.timer)
            }, 2000);

        }
    }
}
</script>
<style lang="scss">
.message {
    position: fixed;
    top: 160px;
    left: 50%;
    transform: translate(-50%, 0);
    border: solid 1px #4b4b4b;
    z-index: 99;
    display: flex;
    align-items: center;
    line-height: 22px;
    padding: 5px 30px;
    color: aliceblue;
    background-color: #242424;
    border-radius: 6px;
    font-size: 14px;
    .icon {
        color: #cf6e2d;
        font-size: 20px;
        margin-right: 8px;
    }
}
</style>

message.js文件

import Vue from 'vue';
import messageComponent from './message.vue'
let Message = null; 
var message=function(text){
    const instance = Vue.extend(messageComponent)//生成扩展message组件实例构造器;
   
    if (!Message) {
        Message = new instance({//创建mesaage组件实例对象
            data() {
                return {
                text
              } 
            }
        });
        Message.$mount();
    }
         Message.init(text);
        document.body.appendChild(Message.$el);
}
   message.install=(Vue)=> {
    Vue.prototype.$Message = message;
}//在 mian.js里Vue.use(message)一下,就会自动执行message里的install方法
export default message;

main.js里注册

 效果如图

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值