- 博客(74)
- 资源 (5)
- 收藏
- 关注
原创 【React】-组件中实现高性能鼠标跟随提示框的完整优化过程
本文介绍了在React组件中实现高性能鼠标跟随提示框的完整优化过程。最初方案直接操作DOM导致卡顿,后通过节流、requestAnimationFrame、transform等优化手段解决问题。文章详细分析了卡顿原因(高频事件、DOM操作、布局抖动),分步展示了优化方案(状态驱动+RAF更新DOM、GPU加速、精准坐标计算),并提供了最终代码结构和经验总结。优化后的方案具有性能高、流畅度好、位置准确等特点,同时提出了封装通用Hook的进阶方向。
2025-05-27 21:11:16
1185
原创 【React-rnd深度解析】- 01 看看核心逻辑
本文深入解析了 react-rnd 组件的实现原理。该库通过组合 react-draggable 和 re-resizable 实现拖拽缩放功能,核心结构为三层嵌套组件。文章详细分析了受控与非受控模式的区别,指出未正确更新受控参数会导致"弹回"现象。同时解释了 bounds 范围限制的实现机制,并提供了调试坐标变化的方法。最后建议优先使用非受控模式,避免多层传参问题,通过 onDragStop 回调实现位置持久化存储。
2025-05-26 16:54:43
995
原创 【Java】-jpackage把你的jar包打包成exe文件
java做的程序,客户期望能直接在windows中安装运行,因为这个java程序主要是操作本地文件的一些操作。–icon:(可选)指定应用程序图标文件路径(.ico 格式)。–type exe:指定生成 Windows 可执行文件。搜到之后,双击安装,会生成可执行的exe文件,这样就好了。–input:指定包含 JAR 文件的目录。–main-jar:指定主 JAR 文件。–name:指定生成的应用程序名称。生成的exe是一个安装包,路径一般在。–main-class:指定主类。
2025-04-28 16:49:48
366
原创 【Umi】- 配置文件的加载机制
文件是用于配置 Umi 项目的核心配置文件之一。我们想在前端工程中,提供不通环境的配置,比如:开发环境、测试环境、生产环境,甚至更细的话,开发环境还可能有本地环境、Mock环境等。.umirc.ts 文件中的配置是一个默认导出的对象,Umi 会解析该对象并应用到项目中。文件的修改会触发热更新,Umi 会自动重新加载配置并应用更改,无需手动重启开发服务器。如果多个文件存在,Umi 会根据优先级合并配置,后加载的配置会覆盖前面的配置。在 Umi 中,配置文件的合并机制并不是简单的浅合并,而是。
2025-04-24 15:09:24
830
原创 【Spring Boot 应用开发】-06 自动配置-生成配置元数据
优点描述配置补全在 IDE 中自动提示可配置项自动生成文档生成描述信息、默认值等类型安全配置类支持类型校验、校验注解支持编译期处理,运行时无影响不会影响程序运行,只在开发时生效的工作原理是基于注解处理器(Annotation Processor)机制,在编译期自动生成配置属性的元数据文件,供开发工具(比如 IntelliJ IDEA 或 VS Code)使用,用于提供配置提示、文档说明、默认值等功能。
2025-04-16 09:59:35
1371
原创 【Docker】- Dockerfile和Docker Compose 基础配置
Dockerfile + Docker compose 就可以实现,方便、优雅,我们先了解两个配置的基础配置。是 Docker 构建镜像的脚本文件,它包含了一系列指令,用于定义容器的环境、安装依赖、复制文件、配置启动命令等。Docker Compose 是 Docker 官方提供的一个工具,可以使用 YAML 文件(用于指定持久化数据的目录,避免数据因容器删除而丢失。如果你的服务需要从源码构建镜像,可以使用。设置容器内运行进程的用户,避免使用。,并不会真正开放端口,容器仍需。设定容器终止时的信号,默认。
2025-03-17 17:26:01
1023
原创 【Docker】-Docker Compose+Dockerfile最佳实践
在实际生产环境中,Docker Compose + Dockerfile 的最佳实践通常包括以下几部分:1️⃣ 示例🔹 后端 ()🔹 前端 ()2️⃣ 3️⃣ 文件(可选)这样 可以引用环境变量:4️⃣ 使用 Docker Compose 部署1️⃣ 构建镜像2️⃣ 启动服务3️⃣ 查看日志4️⃣ 重新启动某个服务5️⃣ 进入容器6️⃣ 停止并删除所有容器🔹 最佳实践总结✅ 使用 构建镜像,避免 直接拉取外部镜像✅ 使用 确保服
2025-03-17 17:22:56
511
原创 【Linux】-Pve下的Nginx安装
站点配置在 Nginx 中的作用就是通过server配置监听端口和域名。定义站点的根目录和静态文件的默认页面。配置反向代理、SSL、错误页面、重定向等。设置访问控制、缓存等。通过合理配置不同的站点配置文件,你可以在同一台服务器上托管多个网站,且每个网站都可以有不同的配置,灵活应对不同的需求。
2025-03-12 16:32:46
1021
原创 【Vue】-一个Button组件
我们来创建一个vue3的button组件,有时候通用组件满足不了我们的需求,比如笔者就接到了一个需求:鼠标放到按钮上要有炫酷的动画。。。炫酷?那就来个基本炫酷效果吧,给个扩散动画,看看能不能满足客户胃口。
2025-03-05 11:28:13
745
原创 【Spring Boot 应用开发】-04-02 自动配置-数据源-手撸一个最简持久层工具类
有时候我们不需要太重的持久层,就像要一个最简的、轻量的持久层,便于维护和扩展,代码掌握在自己手里,那么我们可以基于springboot的自动配置,快速的构建一个自己的持久层轻量框架,不说废话,直接上代码,可以根据自己的需要扩展。
2025-03-05 09:34:45
944
原创 【图像处理】-不同的图像存储格式
BMP是一种位图文件格式,由微软公司于1986年推出。它最初是为Windows操作系统设计的,后来逐渐被其他操作系统所支持。由于其简单易用的特点,在早期计算机图形学中得到了广泛应用。
2025-02-06 17:33:13
1078
原创 【图像处理】- 基本图像操作
基本图像操作是图像处理的基础,涵盖了对图像进行简单但重要的变换。:将图像从一种颜色空间转换为另一种颜色空间。:调整图像的大小,可以放大或缩小。:从原始图像中提取一个矩形区域。:将图像绕某个点旋转一定角度。:水平或垂直翻转图像。
2025-02-06 17:05:59
683
原创 【Spring Boot 应用开发】-04-01 自动配置-数据源-连接池
连接池预先创建一定数量的数据库连接,并将这些连接保存在一个池中,应用程序需要访问数据库时,可以直接从连接池中获取已建立的连接,使用完毕后再将连接归还到池中,而不是关闭连接。JDBC不直接内置数据库连接池遵循的核心原则是:让你的模块遵循单一职责原则,这样可以让整个模块的安全性、扩展性等更好,要小而精,不要大而全。我们都知道数据库可接受的链接是有限的,如果不进行关闭,那么可用连接就会被耗尽,这样新的访问就无法被处理了。在早期的数据库应用开发中,每次应用程序需要访问数据库时,都会创建一个新的数据库连接。
2025-01-13 10:30:30
1177
原创 【Spring Boot 应用开发】-04 自动配置-数据源
不使用任何框架:需要手动加载驱动、创建连接、执行 SQL 操作并关闭连接。使用 Spring MVC:需要手动配置数据源 Bean,并通过依赖注入使用数据源。使用 Spring Boot:只需在配置文件中配置数据库信息,Spring Boot 会自动创建DataSource和,大大简化了配置过程。整个架构的演变遵循着单一职责原则,将配置何代码分割开,提高内聚减少耦合,隐藏和业务无关的底层实现。这种思想我们可以在自己的编码工作中借鉴。
2025-01-10 10:31:39
1226
原创 【Spring Boot 应用开发】-03 自动配置
为了更详细地介绍 Spring Boot 的自动配置特性,我们将从以下几个方面进行深入分析:自动配置的工作原理、常见自动配置场景及其源码分析、自定义自动配置的方法,并结合具体的实例和关键源码进行说明。@BeanSpring Boot 的自动配置特性极大地简化了开发过程,减少了繁琐的配置工作。通过合理的配置文件管理和条件注解的使用,我们可以快速构建出高效、稳定的 Spring Boot 应用程序。
2025-01-10 10:16:02
908
原创 【Spring Boot 应用开发】-02 主要特性
上一节我们提到Spring Boot 是一个用于简化创建独立的、生产级的基于 Spring 框架的应用程序的框架。它通过提供默认配置和依赖管理,使得开发者可以快速上手并专注于业务逻辑的实现。
2025-01-09 17:45:48
763
原创 【Spring Boot 应用开发】-01 初识
这是一个组合注解,包含了以下三个注解的功能:: 标识该类为配置类,允许使用@Bean注解来定义组件。: 启用 Spring Boot 的自动配置机制,根据类路径中的依赖自动配置应用程序。: 自动扫描并注册带有@Component@Service等注解的类为 Spring Bean。
2025-01-09 17:32:45
1332
原创 【机器学习】-深度学习模型
深度学习是机器学习的一个分支,它通过构建多层的神经网络模型来模拟人脑的工作机制。深度学习模型具有强大的特征提取和表示能力,在图像识别、语音识别、自然语言处理等领域取得了显著的成果。
2024-12-30 18:09:37
799
原创 【React】- 跨域PDF预览、下载(改文件名)、打印
我们经常会碰到跨域来方位PDF,同时需要下载、打印的需求,通常由于浏览器的安全策略,可以预览,但是下载和打印可能会受限,这时候怎么办呢?
2024-12-30 18:03:32
1776
原创 【Java9特性】- try-with-resources
Java 9 对语句进行了增强,使其更加灵活和易于使用。以下是 Java 9 中:虽然 Java 9 并没有直接支持局部变量类型推断(这一特性是在 Java 10 中通过var关键字实现的),但是它允许在语句中使用更简洁的语法,如果资源声明已经在外部定义,则可以直接在try语句中引用而不需要重新声明。try:在 Java 9 之前,语句中的资源必须在try语句内部声明。从 Java 9 开始,资源可以在try语句之外声明,并且仍然可以利用的自动关闭功能。这意味着你可以先初始化资源,然后在try。
2024-11-19 17:24:06
442
原创 【数据结构和算法】-布隆过滤器
布隆过滤器的思想就是,1个哈希容易冲突,那就上多个哈希函数,即使1个位上冲突了,其他位冲突的概率也非常小。注意map是key、value形式,我们要检测value存在不存在,是要通过实际判定value的值,如果value本身是个基础类型,那好说。不过,哈希算法会出现哈希冲突,在某些场景下,这是一个比较头疼的问题,就需要算法本身越来越复杂,而且也伴随着存储空间的增加。有些小伙伴又说了,图片也不怕,我有MD5,是,没错,但是要知道MD5的开销是比较大的,这样数据量少还可以,如果是百万级别的数据量呢?
2024-11-14 19:17:48
954
原创 【Java9特性】-集合工厂方法
方法特点适用场景可变、动态需要频繁添加、删除或修改元素固定大小、可修改现有元素需要创建固定大小的列表,并且需要修改现有元素List.of()不可变需要创建固定内容的列表,且列表内容在创建后不会改变单个元素、不可变需要创建只包含一个元素的列表空、不可变需要创建一个空列表将现有列表转换为不可变需要将一个可变列表转换为不可变列表。
2024-11-14 15:38:15
960
原创 【Java9特性】-私有接口方法
私有接口方法的作用代码复用:私有方法可以封装通用的逻辑,避免在多个默认方法或静态方法中重复相同的代码。封装实现细节:私有方法可以隐藏实现细节,使得接口的使用者只关注公共 API,而不必关心内部实现。提高可读性和可维护性:通过将复杂的逻辑分解成私有方法,可以使接口的默认方法和静态方法更加简洁和易读。
2024-11-13 09:40:16
1699
原创 【Java9特性】-模块系统 module-info
一个有意思也有意义的模块化特性,module-info是一个特殊的 Java 文件,位于模块的根目录下。它定义了模块的名称、导出的包、需要的其他模块以及其他模块相关的声明。
2024-11-13 09:13:01
1997
原创 【JAVA】-Springboot核心机制
如果你希望使用其他服务器,可以通过排除默认的 Tomcat 依赖并添加其他服务器的依赖来实现。Spring Boot 的核心机制包括自动配置、起步依赖、主类和运行器、以及嵌入式服务器。这些机制共同作用,使得 Spring Boot 应用开发变得更加简单和高效。通过自动配置,Spring Boot 可以根据类路径中的依赖自动配置应用;通过起步依赖,开发者可以轻松管理项目依赖;通过主类和运行器,应用可以方便地启动和执行初始化操作;通过嵌入式服务器,应用可以作为一个独立的 JAR 文件运行。
2024-11-11 18:46:42
617
原创 【JAVA】-WEB开发基础
通过以上步骤,我们就可以创建一个简单的 Java Web 应用。当然,现在的生产框架一般都集成了服务器内核,无需单独来部署服务器,比如Springboot。后面可以慢慢来熟悉这些企业级生产框架的运用,但是前期学习的话,用最原生的、封装度最低的,是最好的。
2024-11-11 18:40:30
1112
原创 【Javascript】-一些原生的网页设计案例
所有的现代前端框架,不管是数据驱动还是事件驱动,底层都是基于原生的html和javascript进行封装和管理,所以了解最底层的原理,很重要。// 初始化时立即更新一次。// 阻止表单默认提交行为。'请输入有效的邮箱地址!'姓名和邮箱不能为空!// 每3秒切换一次图片。
2024-11-08 18:42:19
923
原创 【Vue】-组件开发
对于多页面应用,可以使用 Vue Router 进行路由管理。对于复杂的应用,可以使用 Vuex 来管理应用的状态。以上是 Vue 组件开发的最简单的一个例子。
2024-11-08 18:36:52
958
原创 【数据结构与算法】-空间复杂度
空间复杂度是衡量算法在运行过程中临时占用存储空间大小的一个重要指标。它描述了算法所需的额外存储空间与输入数据规模之间的关系。空间复杂度通常也用大O表示法(Big O notation)来表示。递归调用栈:考虑递归调用栈的深度。动态规划:考虑中间结果的存储空间。多维数组:考虑多维数组的大小。缓存和哈希表:考虑缓存和哈希表的大小。图的遍历:考虑访问状态记录和递归调用栈的大小。
2024-11-07 11:26:19
1172
原创 【数据结构和算法】-时间复杂度
时间复杂度是衡量算法执行效率的一个重要指标,它描述了算法运行时间与输入数据规模之间的关系。时间复杂度通常用大O表示法(Big O notation)来表示。选择合适的算法:根据实际需求和数据规模选择合适的时间复杂度,以优化程序性能。分析和优化:在编写算法时,应尽量避免高时间复杂度的操作,特别是在处理大规模数据时。理解时间复杂度有助于评估和优化算法的性能,从而提高程序的效率。
2024-11-07 11:21:59
976
转载 单例模式-一个线程安全的序列号生成器
volatile 关键字禁止了编译器和处理器对 instance 变量的重排序,确保了在多线程环境下对 instance 的读写操作是按顺序执行的。当然,学习的最终目的是转化为实际生产力,也就是实际编码的能力,因此,笔者的文章里会最终产出一个可以在生产环境中使用的“结果”。这里面有个volatile(发音:美/ˈvɑːlətl/),这个很多小伙伴可能不清楚具体是干什么的,我们掰碎了细细了解下。后面的内容会围绕单例模式展开,每种设计模式笔者都会找各种实际开发的例子来进行阐述,例子是最好、最快的学习方式。
2024-11-06 17:36:15
93
源码-毕业设计-Vue实现的聊天系统
2025-01-08
Azure OpenAI:生成式人工智能的创新与实践
2025-01-08
源码-Python-功能全面的浏览器自动化框架
2025-01-08
JAVA源码-一个提供了互联网主流框架和中间件的源码讲解项目.zip
2025-01-04
JAVA源码-一款集成国内众多第三方短信服务的项目.zip
2025-01-04
源码-Stirling-PDF-main
2025-01-04
源码-bear-graphhopper-master.zip
2025-01-04
源码-bear-blossom-dev.zip
2025-01-04
源码-wx-dump-4j-main.zip
2025-01-04
源码-karate-master 基于java的API测试框架
2025-01-04
Nacos架构和原理介绍,出自阿里团队
2025-01-03
华为低代码平台加速企业数字化转型:从理论到实践的全面解析
2025-01-03
Javascript +原生HTML的简单计算器
2024-03-16
mingw-std-threads-master
2024-03-13
c 文件写入和读取工具类
2024-03-06
abstract-factory-pattern
2024-03-06
WiX v3.14.1 工具
2025-04-28
笔试面试-MySQL、MariaDB、SQLite .zip
2025-03-18
毕业设计-可视化仿真实现Linux2.6进程管理-含论文.zip
2025-03-18
Graduation-Design-基于Web的大学生计算机设计大赛报名网站的设计与实现.zip
2025-03-17
LLM 友好的异步爬虫框架
2025-01-09
源码-相见恨晚的 Python 项目打包工具
2025-01-09
安装包- Tesseract-OCR-5.5.0.20241111
2025-01-08
源码-毕业设计-Android毕业设计; Android, Music Player, for graduation
2025-01-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人