当前位置: 首页 > article >正文

基于vue3 + ts 封装一个自定义的message组件

基于vue3 + ts 封装一个自定义的message组件

今天尝试封装一个message弹框组件 废话不多说直接上代码
Message.vue

<template>
    <transition name="down" @after-leave="close">
        <div v-show="visible" class="msg-box">这是一个message组件</div>
    </transition>
</template>
<script setup lang="ts">
import { onMounted, ref } from 'vue'
type PropsType = {
    timeout: number
    close: ()=> void
}

const {timeout = 3000, close} = defineProps<PropsType>()

let visible = ref(false)


onMounted(()=> {
    visible.value = true
    setTimeout(()=> {
        visible.value = false
    },timeout)
})


</script>


<style scoped>



.msg-box {
    position: absolute;
    width: 30%;
    height: 50px;
    left: 50%;
    transform: translateX(-50%);
    top: 15%;
    text-align: center;
    line-height: 50px;
    background-color: rgba(0,0,0,0.5);
    box-shadow: 0,0,5px rgba(0,0,0,0.5);
}

.down-enter-active,
.down-leave-active {
  transition: all 0.5s;
}

.down-enter-from,
.down-leave-to {
  opacity: 0;
  transform: translate3d(-50%, -100px, 0);
}
</style>

index.ts

import { h,render } from 'vue'
import Message from "./Message.vue";

export  const onMessage = (timeout: number = 3000) => {
    
    const close = ()=> {
        render(null, document.body)
    }
    const renderDom = h(Message, {
        timeout,
        close
    })
    render(renderDom, document.body)
}

代码中使用

1.导入组件
2.使用组件
const onMsg = () => {
  onMessage()
}

组件封装的比较简陋只是提供一种思路 有需要的同学可以借鉴思路 封装自己的组件


http://www.kler.cn/a/570679.html

相关文章:

  • 基于机器学习的智能谣言检测系统
  • java jar包内的jar包如何打补丁
  • 2022 年 12 月青少年软编等考 C 语言五级真题解析
  • 第6篇:面向对象编程重构系统
  • Spring MVC 返回数据
  • 如何实现前端“小手向右指”的效果
  • Zookeeper 的核心引擎:深入解析 ZAB 协议
  • ECharts饼图高级美化技巧:泛光效果实现与间隔布局
  • JavaWeb3、Tomcat
  • Transformer 代码剖析6 - 位置编码 (pytorch实现)
  • 机器学习11-经典网络解析
  • AI语音交互模组方案,设备无线物联网控制,实时语音联动应用
  • 数据结构:二叉搜索树(排序树)
  • Redis高可用部署:3台服务器打造哨兵集群
  • 基于 Rust 与 GBT32960 规范的编解码层
  • 动态表头报表的绘制与导出
  • 基于 Elasticsearch 和 Milvus 的 RAG 运维知识库的架构设计和部署落地实现指南
  • 深入剖析Java NIO的epoll机制:红黑树、触发模式与CPU缓存优化
  • 运动想象 (MI) 分类学习系列 (17) : CCSM-FT
  • OCR PDF 文件是什么?它包含什么内容?