自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mr Xu的博客

软件开发

  • 博客(56)
  • 收藏
  • 关注

原创 从后端数据到前端图表:深入解析 reduce 与 flatMap 的数据整形实战

通过这次实战,我们清晰地看到了reduce和flatMapreduce:是数据聚合和重组的利器。当你需要将一个复杂的数组转换成一个对象、Map,或者另一个结构完全不同的数组时,reduce是你的首选。它让你在一次遍历中完成所有逻辑,代码既高效又优雅。flatMap:是处理嵌套数组结构的便捷工具。当你需要先对数组元素进行映射(map),而映射的结果又是一个数组,并且你希望最终得到一个扁平化的一维数组时,flatMap比更加简洁和语义化。

2026-04-23 16:09:24 378

原创 Vue3 + Leaflet实战:深入解析MarkerCluster点位聚合插件的使用与优化

通过引入插件,我们完美解决了Leaflet地图在处理海量点位时的性能和交互难题。在本文的Vue3实现中,我们不仅实现了基础的聚合功能,还结合了Element Plus的弹窗、自定义Tooltip以及合理的资源管理。掌握这些技巧,能让你的WebGIS应用在面对复杂业务场景时依然保持流畅和美观。

2026-03-27 16:17:43 374

原创 巧用多背景图层打造精美 CSS 背景 —— 基于 SVG 的视觉合成技巧

通过 CSS 多背景 + SVG 的组合,我们无需额外 DOM 元素即可实现复杂而优雅的 UI 效果。这种“图层合成”思维不仅适用于 Tooltip,也可扩展至卡片、弹窗、按钮等组件,是现代前端工程师提升视觉表现力的重要技巧。📌 提示:在实际项目中,建议配合设计稿使用 Figma/Sketch 拆解图层,明确每个 SVG 的作用,便于协作与维护。

2026-03-10 11:31:55 239

原创 前端开发中CSS代码的优化与复用:从公共样式提取到CSS变量的最佳实践

CSS 变量(Custom Properties)是原生支持的动态变量机制,极大提升了主题切换、响应式设计和样式的可维护性。:root {优秀的 CSS 不只是“让页面好看”,更是可维护、可扩展、高性能的工程产物。通过以下组合策略,你可以显著提升前端样式质量:✅ 提取公共 Reset 与 Common 样式✅ 全面使用 CSS 变量管理设计 Token✅ 遵循 BEM 或类似命名规范✅ 在组件中使用 CSS Modules 隔离作用域✅ 考虑原子化 CSS 提升开发效率。

2026-02-07 09:57:38 983

原创 Vue 3 中 watch 的使用详解:监听响应式数据变化的利器

watch是 Vue 3 组合式 API 中处理副作用和响应式数据联动的核心工具。通过合理使用deepimmediate等选项,我们可以精准控制监听行为,提升应用的响应性和用户体验。

2026-02-06 17:07:19 1162

原创 Vue 3 中计算属性的最佳实践:提升可读性、可维护性与性能

优势说明✅响应式缓存仅当依赖数据变化时才重新计算,避免无效开销✅逻辑解耦将业务逻辑从模板中剥离,符合“关注点分离”原则✅可复用性计算属性可在模板、方法、其他计算属性中多次使用✅可测试性可独立导出并进行单元测试,提升代码质量✅可读性提升命名良好的计算属性(如)比内联表达式更易理解在 Vue 3 的 Composition API 体系下,computed不仅是一个语法糖,更是构建高内聚、低耦合前端应用的关键工具。

2026-02-06 15:28:12 715

原创 告别硬编码:前端项目中配置驱动的实战优化指南

配置驱动 = 将变化的部分从代码逻辑中抽离,交由外部数据(配置文件、API、数据库)来管理。硬编码是每个开发者都曾踩过的坑。它短期高效,长期致命。学会用“配置驱动”的思维去写代码,是你从前端“切图仔”迈向工程化开发者的关键一步。“这个值,未来会变吗?如果答案是“可能”,那就把它放进配置里吧!好的代码,应该像乐高积木——结构稳固,又易于重组。

2026-02-05 15:40:46 918

原创 告别冗长 switch-case:Vue 项目中基于映射表的优雅路由数据匹配方案

在日常 Vue 开发中,我们经常会遇到这样的场景:根据 URL 路由参数(如/notice/01)动态加载不同的静态数据或配置。初期为了快速实现功能,很多开发者会采用这种写法虽然简单直接,但随着业务增长,,且极易出错。本文将通过一个真实案例,展示如何用重构这段逻辑,实现的代码结构。

2026-02-05 11:55:04 332

原创 【Vue3 + ECharts 实战】正确使用 showLoading、resize 与 dispose 避免内存泄漏

在 Vue3 + ECharts 的大屏项目中,资源管理和生命周期控制至关重要。合理使用提升体验监听resize并调用resize()保证响应式在中dispose()实例并移除监听。

2026-02-04 11:13:46 978

原创 深入剖析 Vue 3 + Vuex 4 + Vuex-Persist 构建可持久化聊天应用状态管理

chat.js清晰的模块划分chat模块职责单一,内聚性强。规范的 Vuex 使用:严格遵守 state/getters/mutations/actions 的分工。无缝的持久化体验插件以极低的侵入性实现了关键数据的持久化。专业的数据迁移:考虑了版本迭代的兼容性问题。这套模式不仅适用于聊天应用,对于任何需要在客户端维护复杂、持久化状态的 Vue 项目都具有很高的参考价值。掌握它,将大大提升你构建大型应用的能力。

2026-02-04 09:25:40 1077

原创 JavaScript数组方法全解析:返回值与是否改变原数组详解(附实例)

方法是否改变原数组返回值类型pushpopshiftunshift✅number(长度)或元素splice✅被删除元素组成的数组reversesortfillcopyWithin✅原数组引用concatslicemapfilterflatflatMap❌新数组reducefindfindIndex❌累积值 / 元素 / 索引everysomeincludes❌booleanjoin❌stringindexOf❌number掌握数组方法的“副作用”(是否改变原数组)是写出健壮前端代码的关键。

2026-02-03 11:26:23 914

原创 Vue3 + Element Plus 项目中使用 html2canvas 截图实战详解

是实现前端“所见即所得”截图的强大工具。在 Vue3 项目中,结合ref和可轻松集成。但务必注意其局限性,尤其是在样式兼容性和异步渲染方面。通过本文的代码分析与注意事项梳理,相信你能在自己的项目中更稳健地使用,避免踩坑,高效交付功能!

2026-02-03 10:31:13 890

原创 解决 Vue + Axios 热更新导致响应拦截器重复注册的问题

方案是否有效原因局部变量❌热更新重置变量挂载到axios对象上✅axios 模块稳定,属性持久移到 main.js⚠️降低概率,但非根治手动 HMR 清理✅ 但复杂需要监听模块更新事件最佳实践:在开发 Axios 封装库时,务必考虑 HMR 场景,使用标志位防止重复注册拦截器。希望本文能帮助你彻底理解并解决这一“开发期幽灵 bug”。

2026-02-03 08:58:05 1209

原创 深度解析:fixed 定位导致滚动条遮挡问题及 right: 15px 的巧妙解决方案(含 Pxtorem 插件适配)

是一个 PostCSS 插件,用于将 CSS 中的px单位自动转换为rem,以实现响应式设计。/* 源码 *//* 编译后(假设 root font-size = 16px) */场景推荐做法原因普通项目(无 pxtorem)在 CSS 中写简洁、可维护启用 postcss-pxtorem 的项目使用内联样式避免 px 被转为 rem 导致值失真高精度需求JS 动态计算滚动条宽度 + 内联样式最精准,但成本高📌最佳实践:在需要绝对像素精度且项目使用了pxtorem。

2026-02-02 10:06:49 697

原创 深度解析:fixed 定位导致滚动条遮挡问题及 right: 15px 的巧妙解决方案

问题原因解决方案fixed 头部遮挡滚动条fixed 元素基于视口定位,无视滚动条占用的空间添加,强制元素右移,避开滚动条区域作者:前端工程师发布平台:CSDN标签:#CSS #前端开发 #fixed定位 #滚动条 #Vue #布局技巧。

2026-02-02 10:04:49 940

原创 Vue3 实现点击 Tab 平滑滚动并吸顶效果(附完整代码分析)

技术点实现方式说明吸顶效果top: 95px利用 CSS 原生能力,性能好平滑滚动原生 API,无需第三方库位置计算利用背景图高度 / 通用 offsetTop 计算根据项目结构选择响应式处理移动端跳过滚动逻辑提升移动端体验通过以上方案,我们实现了点击 Tab → 平滑滚动 → 吸顶固定的完整交互,既满足了产品需求,又保证了代码的可维护性。✅最佳实践:优先使用 CSSsticky实现吸顶,JS 仅负责触发滚动;避免用 JS 动态修改position,减少重绘开销。源码参考:中梓科技官网技术栈。

2026-01-30 09:53:41 769

原创 Vue3 + Element Plus 高性能实战:用 map+Set+has 禁用年份选择器中的重复年份

—“从数据中提取年份,构建一个查找表,然后检查目标年份是否在表中”。这是一种声明式的编程风格,更符合现代 JavaScript 的最佳实践。下次当你再遇到类似的“排除已选项”需求时,不妨试试这个优雅的解法!在开发后台管理系统时,我们经常会遇到需要对用户输入进行限制的场景。为了提升用户体验并防止无效操作,我们需要在用户点击“新增”按钮弹出的年份选择器中,这段代码简洁而高效,完美地解决了我们的需求。:在“新增水价”弹窗中,年份选择器不能选择列表中已经存在的年份。这三个方法的组合,编写一个高性能、高可读性的。

2026-01-29 09:04:07 656

原创 UniApp 实战:深度解析 App 端自动检测与静默更新(含强制更新)

在移动应用开发中,确保用户始终使用最新版本是提升体验、修复漏洞和推送新功能的关键。对于使用 UniApp 开发的原生 App(Android/iOS),我们无法依赖应用商店的审核流程来实现即时更新。因此,一套稳定可靠的。中的这段代码结构清晰,逻辑严谨,完美地实现了“检测 -> 决策 -> 下载 -> 安装”的闭环,是 UniApp 开发者处理原生 App 更新需求的经典范例。掌握这套机制,能让你的应用始终保持活力,快速响应市场变化。API,我们可以轻松构建一套功能完备、用户体验良好的 App 内更新系统。

2026-01-28 13:45:48 953

原创 Vue3 + Element Plus 实战:App 版本管理后台——动态生成下载二维码与封装文件上传

在移动应用开发和分发流程中,一个高效、直观的 App 版本管理后台是必不可少的。这种分层和封装的思想是构建大型、可维护前端应用的关键。希望本文的分析能为你在实际项目中处理类似需求提供有价值的参考。的表单中,我们通过一行代码就完成了复杂的文件上传 UI 和逻辑集成。的自定义组件,它被全局注册,用于简化文件上传的通用逻辑。这个强大的 JavaScript 库来处理二维码的生成。(被删除的),后端可以根据这些信息完成文件的增删改操作。中,这一功能的实现非常巧妙。在模板中,我们直接将处理好的。当从后端 API (

2026-01-28 11:52:05 702

原创 在 Vue 3 中集成 WangEditor 富文本编辑器:从基础到实战

)content:父组件传入的 HTML 字符串。update事件:将编辑后的内容回传给父组件,实现“双向绑定”。通过本文的index.vue✅ 双向绑定内容✅ 自定义图片上传(带 token)✅ 表格增强(行列操作、样式美化)✅ 只读/编辑模式切换✅ 安全初始化与销毁WangEditor 在 Vue 3 中的集成非常友好,配合 TypeScript 和 Composition API,能构建出稳定、可维护的富文本解决方案。如有疑问,可在评论区留言~

2026-01-27 16:50:37 1410

原创 前端实战:基于Element Plus的CustomTable表格组件封装与应用

提效降本:新增表格页面只需编写配置文件和业务逻辑,无需重复编写el-table和;易维护:表格结构修改只需调整配置文件,无需改动多个页面;统一规范:所有表格遵循相同的配置规范,团队协作更高效;高扩展性:通过插槽、格式化函数、属性透传,满足不同业务场景的定制化需求。本文从实际项目出发,讲解了基于配置化思想的组件封装流程:通过集中管理表格列配置,业务页面传递数据和配置给,组件内部循环配置动态渲染表格列,并支持格式化、插槽等扩展能力。

2026-01-27 16:02:03 701

原创 Vue3 + Element Plus 实战:通用搜索组件CustomSearch封装与应用

在中后台管理系统开发中,搜索功能是高频场景,不同页面的搜索条件往往重复且逻辑相似。基于Vue3 + Element Plus封装通用搜索组件,能大幅提升开发效率、降低代码冗余。本文结合实际项目代码,从组件封装思路、配置设计、页面集成全流程,详解的实现与落地。的核心设计理念是配置化:通过一份JSON配置文件定义搜索项(输入框、下拉框、时间选择器等),组件根据配置自动渲染UI,并统一处理搜索逻辑。结合项目中、、等基础组件(本文默认这些是基于Element Plus基础组件的二次封装,核心逻辑与原生一致),最终实

2026-01-27 11:23:52 1268 1

原创 深入分析Element UI Tree组件在本地与生产环境样式差异问题

Element UIel-tree在本地与生产环境表现不一致的问题,往往源于CSS样式的层叠与优先级冲突。生产环境的构建过程(合并、压缩)可能会放大这种潜在的冲突。开发者在自定义UI组件样式时,应格外注意选择器的精确性和通用性,避免无意中覆盖框架的默认行为。遇到此类问题时,利用浏览器开发者工具检查元素的实际应用样式(Computed Styles),对比本地和线上的CSS加载情况,是快速定位问题的关键。保持良好的CSS编写习惯和项目架构,能有效减少这类问题的发生。

2026-01-26 15:02:30 683

原创 Git常用指令

通过三步,我们完成了前端项目的快速部署。虽然简单,但在小型项目或测试环境中非常高效。掌握这些基础命令,是每个前端工程师走向 DevOps 的第一步!🌟小贴士:生产环境建议使用 Docker + Nginx 容器化部署,更稳定可控。

2026-01-26 10:38:39 713

原创 深入解析 getBoundingClientRect 与 offsetTop:解决 Vue 平滑滚动偏移误差问题

特性offsetTop(遍历累加)坐标系视口(受 transform 影响)文档流(不受 transform 影响)适用场景获取元素在屏幕上的绝对位置(如 tooltip 定位)计算滚动位置、布局高度是否受 transform 影响✅ 是❌ 否是否包含 border/padding包含仅 content + padding(不含 border)性能较高(直接 API)较低(需遍历 DOM)在滚动计算中的可靠性❌ 可能出错✅ 推荐。

2026-01-23 14:10:32 666

原创 Vue 3 中使用 mitt 实现组件间通信的实践与解析

在中梓科技的联系页面中,mitt 被巧妙地用于实现Tab 切换与页面滚动的联动。这种模式将 UI 交互逻辑(点击 Tab)与 DOM 操作逻辑(滚动到区块)分离,提升了代码的可维护性与可读性。对于中小型 Vue 3 项目,mitt 是一个高效、简洁的组件通信解决方案。合理使用,能让代码更清晰、更灵活。

2026-01-23 09:39:27 582

原创 Vue3 + IntersectionObserver 实现高性能数字滚动动画(附完整代码解析)

Vue3:轻量级数字滚动插件:浏览器原生 API,用于监听元素是否进入视口响应式设计:适配 PC 与移动端})初始值为false,表示动画未激活。通过按需触发动画:提升性能与体验;声明式状态管理:代码清晰易维护;跨端兼容:一套逻辑适配多端。这种模式可广泛应用于数据看板、企业官网、产品介绍页等场景,是现代前端开发中“懒加载交互动画”的最佳实践之一。

2026-01-23 09:03:28 681

原创 深入浅出:Vue与uni-app中的页面嵌套技术实践(iframe vs web-view)

选择哪种方式主要取决于你的目标平台(纯 Web / 多端 App)以及是否需要与嵌入页面进行复杂的交互。理解它们的工作原理和适用场景,对于构建高效、灵活的应用至关重要。在现代前端开发中,出于快速集成、复用现有资源或展示外部内容的目的,常常需要在一个主应用中嵌入另一个完整的网页。是 uni-app 框架提供的用于加载外部 H5 页面的标准组件,它在小程序、App 等多端环境下提供了一种统一的嵌套方案。的 uni-app 组件,深入分析这两种嵌套技术的实现方式、应用场景及其优缺点。的 Vue 组件和一个使用。

2026-01-23 08:31:46 820

原创 从零实战!使用 Mars3D 快速构建水利监测 WebGIS 系统

在智慧水利、数字孪生流域等项目的建设中,一个直观、高效的地理信息可视化平台至关重要。传统的 GIS 开发往往门槛较高,而 Mars3D 作为一个基于 CesiumJS 的国产开源 WebGL 地图引擎,极大地简化了三维地球应用的开发流程。通过本文,你将掌握 Mars3D 在实际项目中的基本用法,并能快速复用到自己的项目中。通过这个方法,我们就能将从 API 获取的数据动态渲染到地图上,并赋予丰富的交互能力。后,地图上就会出现一个带有动态水纹和蓝色描边的水库,效果非常直观和专业。假设我们有一个后端 API。

2026-01-23 08:31:08 985

原创 Vue + Element Plus 实现前端导出 Excel 功能详解

带参请求 → 接收 Blob → 创建下载链接 → 触发下载 → 清理资源。它充分利用了浏览器原生能力,无需第三方库,轻量高效。Vue3 + Element Plus 实现单文件上传组件详解。

2026-01-22 00:09:14 751

原创 前端开发必备插件整理分享:提升效率与体验的利器

插件用途推荐指数ECharts数据可视化⭐⭐⭐⭐⭐Lodash工具函数⭐⭐⭐⭐☆Moment.js日期处理(慎用)⭐⭐☆☆☆px → rem 转换⭐⭐⭐⭐☆QRCode二维码生成⭐⭐⭐⭐数字动画⭐⭐⭐DOM 转图片⭐⭐⭐⭐sm-crypto国密算法⭐⭐⭐⭐(特定场景)自动导入⭐⭐⭐⭐⭐📌 提示:本文所有插件均基于 2026 年前主流版本整理,具体使用请参考最新官方文档。

2026-01-22 00:08:49 1122

原创 Vue3 + Element Plus 实现单文件上传组件详解

accept: String, // 如 ".pdf,.docx"fileSize: String, // 显示用,如 "50MB"tip: String, // 提示文本,如 "pdf,docx"});fileList: [], // 存储选中的文件对象});功能实现方式说明单文件限制双保险防止多选文件类型校验accept+ 手动检查扩展名防止绕过浏览器限制文件大小校验JS 判断file.size前端拦截大文件,减轻服务器压力状态管理父组件控制fileList符合 Vue 数据流规范。

2026-01-21 07:58:23 623

原创 Vue3 + Element Plus 实现点击导航平滑滚动到页面指定位置

本文通过分析真实项目代码,展示了如何在 Vue 3 项目中实现跨组件、容器内、响应式的平滑滚动导航。事件解耦:使用mitt实现松耦合通信;精准定位:利用计算相对位置;体验优先:区分 PC/Mobile 设置不同偏移量;原生能力:直接使用,无需第三方库。

2026-01-21 07:57:47 809

原创 Vue 3 实战:路由跳转后自动滚动到顶部或指定位置的完整解决方案

路由跳转 + 滚动是提升 SPA 用户体验的关键细节;利用确保导航完成后再操作 DOM;优先使用 Vue Router 内置的,其次才是手动scrollTo;注意滚动容器的选择、异步渲染时机、移动端兼容性等问题。通过合理组合 Vue 3 的响应式系统、Vue Router 的导航控制以及原生 DOM 操作,我们可以轻松实现专业级的页面过渡效果。希望本文能帮助你在项目中优雅地处理页面滚动问题!

2026-01-20 00:21:21 628

原创 Vue项目实战:详解 Swiper 横向轮播与 Table 纵向自动滚动的两种实现策略

滚动效果作为一种常见的交互形式,其应用场景非常广泛,但实现方式却因布局方向和组件特性而大相径庭。Swiper 内部维护着当前的索引和位置状态,根据用户的交互或自动播放的定时器,计算出需要移动的距离,并应用到容器上,从而实现了流畅的横向滚动动画。为了实现类似新闻跑马灯的效果,我们需要直接操作表格的 DOM 元素,通过 JavaScript 定时器来模拟滚动。通过这两个案例,我们可以深刻体会到前端开发中“选择合适的工具做合适的事”的重要性。浏览器会自动将这个属性的变化渲染为滚动条的移动和内容的位移。

2026-01-20 00:21:00 839

原创 Vue3 + Element Plus 实战:打造高交互性聊天列表——悬停显操作、点击选中高亮、安全删除

在开发类似聊天或历史记录的侧边栏时,我们常常需要实现“鼠标悬停显示更多操作”、“点击选中高亮当前项”以及“点击删除按钮不影响父元素点击事件”等交互效果。本文将结合真实项目代码,深入剖析如何使用 Vue 3 的组合式 API 和 Element Plus 组件库,优雅地实现这些常见的 UI/UX 需求,并解决其中的关键技术难点。通过结合 Vue 3 的响应式数据绑定、动态 class、事件修饰符以及 CSS 的状态控制,我们可以非常高效且清晰地实现复杂的 UI 交互。这是实现“安全删除”的关键。

2026-01-19 10:03:08 643

原创 深入解析 Lottie 动画在 Vue3 项目中的实战应用:从加载动画到优雅控制

Lottie 作为一种轻量级、高性能的矢量动画解决方案,已成为前端开发者的首选。本文将以一个典型的 AI 聊天界面为例,手把手教你如何在 Vue3 项目中实现一个“发送消息时显示 Loading 动画,收到响应后自动销毁”的完整流程。掌握这些要点,你就能轻松地为你的应用添加专业级的交互动画,让用户在等待的过程中也能感受到产品的用心与品质。通过本文的分析,我们可以看到在 Vue3 项目中集成 Lottie 动画是一个既强大又简洁的过程。格式的动画文件,并将其放置在项目的。中处理发送消息和加载动画的核心逻辑。

2026-01-19 09:27:12 831

原创 Vue3 + Element Plus 实现聊天对话自动滚动到底部的完整方案

这套方案通过状态管理和定时器补偿,巧妙地平衡了“自动跟随”和“不打扰用户”这两个看似矛盾的需求。

2026-01-18 14:57:26 829

原创 Vue 登录实战:使用 sm-crypto 实现国密 SM3-SM2 双重密码加密

引入sm-crypto库。编写sm3Encrypt函数对原始密码进行哈希。编写sm2Encrypt函数使用服务端公钥对哈希值进行加密,并务必在结果前拼接04。在登录逻辑中,先 SM3 再 SM2,将最终的密文发送给后端。这种组合方式结合了哈希算法的单向性和非对称加密的安全性,能有效增强登录环节的安全性,是符合国密标准的一种良好实践。注意事项:生产环境中,公钥的获取应更加动态和安全,例如通过 API 接口从后端获取最新的公钥,而不是硬编码。

2026-01-18 14:16:12 1346

原创 基于echarts实现水雨情监测图

配置的 series 渲染成固定高度的水平参考线,并且可以根据需要进行丰富的样式定制,清晰地展示各种重要的水位阈值。通过这种方式,ECharts 将这些具有。以下是定义图表选项 () 的关键部分,特别是关于。水情监测图的核心配置在。

2026-01-16 10:14:51 314

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除