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

vue3使用tsx自定义弹窗组件

1.在ts代码中使用css

我这里使用了@styils/vue,npm install @styils/vue --save-dev,在tsx文件中引入即可:import { styled } from "@styils/vue";

2.在tsx中初始化组件,创建在src的utils目录中创建messagebox.tsx

import { createApp} from "vue";
// 这里使用了element-plus的组件,请自行引入即可
import { ElButton } from "element-plus";
import { styled } from "@styils/vue";const DivModal = styled('div', {position: 'fixed',width: '100%',height: '100%',left: 0,top: 0,background: '#00000050',display: 'flex',justifyContent: 'center',alignItems: 'center'
});const DivBox = styled('div', {display: 'flex',minWidth: '25%',background: '#fff',padding: '10px 0',color: '#333',borderRadius: '10px',boxShadow: '0 0 3px #00000080',flexDirection: 'column',alignItems: 'center'
});const DivText = styled('div', {marginBottom: '1em'
});const Messagebox = {props: {msg: {type: String,required: true},},render(ctx: any) {const { $props, $emit } = ctx;return (<DivModal class="modal"><DivBox class="box"><DivText class="text">{$props.msg}</DivText><div onClick={$emit('onClick(e)')}><ElButton type="primary">确 定</ElButton></div></DivBox></DivModal>);},
};export function showMsg(msg: String, isModal: Boolean | null, onClickHandler: Function) {const div = document.createElement("div");document.body.appendChild(div);const app = createApp(Messagebox,{msg,onClick(e: any) {if (isModal) {onClickHandler(() => {app.unmount();div.remove();});} else {const isButton = e.target.localName === "button" || e.target.innerText === "确定";if (isButton) {onClickHandler(() => {app.unmount();div.remove();});}}}});app.mount(div);
};

3.在vue中使用该组件

<template><el-button type="primary" @click="showTsxMsg">显示tsx封装的弹窗</el-button>
</template><script lang="ts" setup>
import { showMsg } from "@/utils/messagebox";const showTsxMsg = () => {showMsg("tsx封装的组件", true, (close: Function) => {close();});
};
</script>

相关文章:

vue3使用tsx自定义弹窗组件

1.在ts代码中使用css 我这里使用了styils/vue&#xff0c;npm install styils/vue --save-dev&#xff0c;在tsx文件中引入即可&#xff1a;import { styled } from "styils/vue"; 2.在tsx中初始化组件&#xff0c;创建在src的utils目录中创建messagebox.tsx impo…...

[笔记] 错排问题 #错排

参考&#xff1a;刷题笔记-错排问题总结 错排问题&#xff1a; 一个n个元素的排列&#xff0c;若一个排列中所有的元素都不在自己原来的位置上&#xff0c;那么这样的一个排列就称为原排列的一个错排。而研究一个排列的错排个数的问题&#xff0c;就称为错排问题&#xff08;或…...

Ajax进阶

前后端传输数据的编码格式(contentType) # 提示: 主要研究post请求数据的编码格式.get请求数据就是直接放在url?号后面的每个参数之间用&符连接, 如下:url?usernamejason&password123 # 可以朝后端发送post请求的方式1 .form表单2. ajax请求# 基于post请求. 前后端传…...

RedisTemplate使用详解

RedisTemplate介绍StringRedisTemplate介绍RedisConnectionFactory介绍RedisConnectionFactory源码解析 RedisOperations介绍RedisOperations源码解析 RedisTemplate使用连接池配置RedisTemplate连接池连接池配置 RedisTemplate应用场景RedisTemplate主要特点RedisTemplate使用…...

6.Gin 路由详解 - GET POST 请求以及参数获取示例

6.Gin 路由详解 - GET POST 请求以及参数获取示例 GET POST 请求以及参数获取示例 Get 请求&#xff1a;获取 Quary 参数 // 获取query参数示例&#xff1a;GET /user?uid20&namejack&page1 r.GET("/user", func(c *gin.Context) {// 获取参数// Query获取参…...

CMakeLists.txt基础指令与cmake-gui生成VS项目的步骤

简介 本博客主要介绍cmake的基本指令&#xff0c;同时&#xff0c;很多使用Visual Studio小白从Gitbub下载项目源码后&#xff0c;看到CMakeLists.txt&#xff0c;不知道如何使用Visual Studio编译源码&#xff1b;针对以上问题&#xff0c;做一下简单操作与解释&#xff0c;方…...

IT应用运维最常用指标

可用性&#xff08;Availability&#xff09; 系统或服务在特定时间范围内可用的百分比。 计算方式&#xff1a;&#xff08;总时间 - 不可用时间&#xff09;/ 总时间 * 100%。 参考值&#xff1a;99.9%。 应用范围&#xff1a;应用系统、网络设备。 故障率&#xff08;Fa…...

Go中各种newreader和newbuffer的使用

一、bytes.NewBuffer和bytes.NewReader func main() {var byteArr []bytebuf : bytes.NewBuffer(byteArr)buf.Write([]byte("今天不错"))fmt.Println(buf.String()) }package mainimport ("bytes""fmt" )func main() {data : []byte("路多…...

visual studio 如何建立 C 语言项目

安装这个 模块。 新建 空项目 创建完成 写demo 点击运行&#xff1a;...

app小程序定制开发的优势|企业软件网站建设

app小程序定制开发的优势|企业软件网站建设 小程序定制开发是目前互联网行业中备受关注的领域之一。随着智能手机的普及和移动互联网的迅猛发展&#xff0c;越来越多的企业和个人开始重视小程序的潜力&#xff0c;并积极寻求定制开发的服务。那么&#xff0c;为什么小程序定制开…...

物联网AI MicroPython学习之语法 WDT看门狗外设

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; WDT 介绍 模块功能: 看门狗WDT&#xff08;WatchDog Timer&#xff09;外设驱动模块 接口说明 WDT - 构建WDT对象 函数原型&#xff1a;WDT(timeout)参数说明&#xff1a; 参数类型必选参数&#xff1f…...

JVM线程的几种状态

1.New 新建的线程&#xff0c;线程还没启动。 2.Runnable 线程正在运行或者等待操作系统中的其他资源&#xff0c;例如线程运行过程中&#xff0c;系统分配资源给其他操作&#xff0c;此时这个线程还是Runnable状态&#xff0c;可以理解为可运行的线程。 3.Blocked 阻塞状…...

基于单片机停车场环境监测系统仿真设计

**单片机设计介绍&#xff0c; 基于单片机停车场环境监测系统仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的停车场环境监测系统是一种利用单片机技术实现环境监测和数据处理的系统。它可以感知停车场的温湿…...

每日一题:LeetCode-589.N叉树的前序遍历

每日一题系列&#xff08;day 01&#xff09; 前言&#xff1a; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f50e…...

PTA 7-2 简单计算器

7-2 简单计算器 分数 20 全屏浏览题目 作者 张彤彧 单位 浙江大学 模拟简单运算器的工作。假设计算器只能进行加减乘除运算&#xff0c;运算数和结果都是整数&#xff0c;四种运算符的优先级相同&#xff0c;按从左到右的顺序计算。 输入格式: 输入在一行中给出一个四则运…...

9、鸿蒙应用桌面图标外观和国际化

一、项目资源目录 项目下的resoueces目录为资源配置目录&#xff0c;其中base为基础配置&#xff0c;即在任何语言环境下都会加载的资源&#xff0c; color.json&#xff1a;用于配置颜色&#xff0c;如页面的背景和文字的颜色。 string.json&#xff1a;用于设置文字&#…...

oracle rac 19c修改不同网段public ip

客户需求将才搭建的oracle 19.19数据库从192.168.168.0网段调整到192.168.213网段 1.停止两个节点集群 停止之前最好ocrdump一下&#xff0c;防止有问题 crsctl stop crs 2.修改public ip地址和/etc/hosts 3. 启动crs 这时集群可以启动&#xff0c;但是上面的一些资源启动会…...

【Django-DRF用法】多年积累md笔记,第(4)篇:Django-DRF反序列化详解

本文从分析现在流行的前后端分离Web应用模式说起&#xff0c;然后介绍如何设计REST API&#xff0c;通过使用Django来实现一个REST API为例&#xff0c;明确后端开发REST API要做的最核心工作&#xff0c;然后介绍Django REST framework能帮助我们简化开发REST API的工作。 全…...

OpenAI宣布暂停ChatGPT plus用户订阅,解决方案,无需等待立马升级

作为人工智能领域的一项重要革新&#xff0c;ChatGPT Plus的上线引起了众多用户的关注&#xff0c;其背后的OpenAI表现出傲娇的态度&#xff0c;被誉为下一个GTP 4.0。总的来说&#xff0c;ChatGPT Plus的火爆主要有两个原因。首先&#xff0c;其在人工智能对话技术领域的创新&…...

如何将 Docsify 项目部署到 CentOS 系统的 Nginx 中

文章目录 第一步&#xff1a;准备 CentOS 服务器第二步&#xff1a;安装 Node.js 和 Docsify第三步&#xff1a;初始化 Docsify 项目第四步&#xff1a;本地预览 Docsify 项目第五步&#xff1a;配置 Nginx 服务器第六步&#xff1a;重启 Nginx 服务器拓展&#xff1a;使用 HTT…...

三步解锁全球最大同人创作平台:AO3镜像站完全使用指南

三步解锁全球最大同人创作平台&#xff1a;AO3镜像站完全使用指南 【免费下载链接】AO3-Mirror-Site 项目地址: https://gitcode.com/gh_mirrors/ao/AO3-Mirror-Site 当你在深夜灵感迸发&#xff0c;想要阅读或创作同人作品时&#xff0c;却发现AO3网站无法访问&#x…...

3步高效清理:Win11Debloat让你的Windows系统重获新生

3步高效清理&#xff1a;Win11Debloat让你的Windows系统重获新生 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and cus…...

多核处理器内存分区技术解析与工程实践

1. 多核处理器系统分区的核心挑战与设计哲学在嵌入式系统领域&#xff0c;我们正面临一个有趣的矛盾&#xff1a;一方面&#xff0c;现代设备的功能复杂度呈指数级增长&#xff0c;导致单个子系统规模不断扩大&#xff1b;另一方面&#xff0c;这些子系统又需要更紧密的集成协作…...

STM32 CubeMX配置TM1650驱动数码管实战:从HAL库到显示‘Hello’

STM32 CubeMX配置TM1650驱动数码管实战&#xff1a;从HAL库到显示‘Hello’ 在嵌入式开发领域&#xff0c;如何快速实现硬件驱动并验证功能是每个工程师的必修课。今天我们就来探讨一个极具代表性的案例&#xff1a;使用STM32CubeMX配置TM1650驱动四位数码管显示"Hello&qu…...

MySQL事务、隔离级别、数据库锁

文章目录一、先搞懂&#xff1a;到底什么是MySQL事务&#xff1f;1.1 事务ACID四大特性&#xff08;对应英文\核心作用&#xff09;二、必懂基础&#xff1a;脏读、不可重复读、幻读到底是什么&#xff1f;2.1 脏读&#xff08;读到别人没提交的作废数据&#xff09;2.2 不可重…...

NetworkX地理空间网络分析终极指南:从道路网络到位置数据的完整可视化教程

NetworkX地理空间网络分析终极指南&#xff1a;从道路网络到位置数据的完整可视化教程 【免费下载链接】networkx Network Analysis in Python 项目地址: https://gitcode.com/gh_mirrors/ne/networkx NetworkX是Python中最强大的网络分析库之一&#xff0c;它提供了简单…...

LUT(Look-Up Table,查找表)的定义与核心概念

LUT 是一种用“存储 查表”的方式来实现任意组合逻辑的硬件结构。它不是直接用物理门电路&#xff08;如与门、或门&#xff09;搭建逻辑&#xff0c;而是通过预先存储所有可能的输入组合对应的输出结果&#xff0c;再根据实际输入去“查表”得到输出。LUT&#xff08;Look-Up…...

Godot SpriteMesh插件:2D像素精灵转3D网格的完整指南

1. 项目概述&#xff1a;当2D像素精灵遇见3D世界如果你是一个使用Godot引擎的独立开发者&#xff0c;尤其是热衷于制作像素风或2D风格3D游戏的创作者&#xff0c;那么你很可能遇到过这样一个痛点&#xff1a;如何将那些精美的2D像素精灵&#xff08;Sprite&#xff09;自然地融…...

别再只用LIKE了!MySQL LOCATE函数处理字符串查找的3个实战场景(附代码)

别再只用LIKE了&#xff01;MySQL LOCATE函数处理字符串查找的3个实战场景&#xff08;附代码&#xff09; 当我们需要在MySQL中查找字符串时&#xff0c;大多数人首先想到的是LIKE操作符。确实&#xff0c;LIKE简单易用&#xff0c;能够满足基本的模糊匹配需求。但在某些特定场…...

彻底解决Windows图形驱动兼容性问题:Mesa3D驱动安装与故障排除终极指南

彻底解决Windows图形驱动兼容性问题&#xff1a;Mesa3D驱动安装与故障排除终极指南 【免费下载链接】mesa-dist-win Pre-built Mesa3D drivers for Windows 项目地址: https://gitcode.com/gh_mirrors/me/mesa-dist-win 你是否曾在Windows上运行老旧游戏或专业图形软件时…...