自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 收藏
  • 关注

原创 前端文件下载功能深度解析:从基础实现到企业级方案

本文深入探讨前端文件下载技术,从基础实现到企业级解决方案,涵盖5大技术难点:1.浏览器兼容性与跨域处理;2.文件名安全处理(特殊字符过滤、长度限制);3.大文件下载的进度追踪与断点续传;4.完善的错误处理与重试机制;5.多场景适配策略。重点解析了动态文件名生成、Blob对象处理、并发控制等核心技术,并提供了用户体验优化建议。适用于从简单下载到企业级批量下载等不同场景,为前端开发者提供了一套完整的文件下载解决方案。

2026-01-08 16:00:25 1009

原创 Vue 3 响应式缓存策略:从页面状态追踪到智能数据管理

本文探讨了一种基于Vue3 Composition API的智能缓存策略,适用于数据密集型前端应用。该方案通过页面状态追踪和多维度缓存键设计,实现了高效的数据缓存管理。核心思路包括:1) 使用响应式变量构建缓存系统;2) 设计包含页面标识、分类、分页等信息的复合缓存键;3) 实现缓存创建、失效和生命周期管理机制。该策略特别适合船舶招聘系统、电商商品列表等需要频繁切换视图但数据相对稳定的场景,能显著减少网络请求、提升响应速度并改善用户体验。文章还提供了缓存优化技巧、性能监控方法和完整实现示例。

2026-01-08 15:59:45 1008

原创 从零实现前端数据格式化工具:以船员经验数据展示为例

本文提出了一种船员经验数据动态格式化方案,通过模块化设计和防御性编程实现灵活展示。该方案采用TypeScript强类型和函数式编程,构建数据处理流水线,自动选择有效字段进行智能拼接。核心特点包括:输入验证机制确保数据安全、动态字段收集系统处理异构数据、结果生成策略保持格式统一。测试案例验证了其处理空输入、完整数据和部分缺失字段的能力。该方案具有易扩展、高可读的特点,特别适合需要处理复杂异构数据的前端应用场景,显著提升了数据展示的灵活性和用户体验。

2026-01-07 15:24:53 433

原创 JavaScript对象遍历的艺术:从Object.entries到数组解构的深度解析

本文通过船务管理系统案例,详细解析了现代JavaScript处理对象数据的最佳实践。核心内容包括:1)使用可选链操作符(?. )安全访问嵌套属性;2)利用Object.entries()实现对象到数组的优雅转换;3)参数解构简化遍历过程;4)空值合并运算符(??)和String()确保数据稳定性。文章对比了不同遍历方式的性能差异,并提供了防御性编程建议,帮助开发者在API处理、配置管理等场景中编写更健壮、可读的代码。这些技术组合能有效提升数据处理的安全性和效率。

2026-01-07 15:24:42 428

原创 Vue3 + Element Plus 表格排序实战:基于状态字段的智能排序方案

本文介绍了在Vue3+ElementPlus中实现表格排序的方法。通过Vue3的computed属性对原始数据排序,让未处理(status:0)优先显示。核心方案是使用扩展运算符创建新数组进行排序,实现响应式更新而不改变原数据。还讲解了多条件排序、ElementPlus自带排序功能对比及大数据量优化策略,包括防抖、分页和WebWorker应用。适用于需要自动排序的业务场景,推荐根据需求选择计算属性排序或ElementPlus列排序方案。

2025-11-20 14:56:37 658

原创 Vue 数据回显与自动勾选:以自动播报类型管理为例

本文分享了通过服务端返回数据自动勾选复选框的实现方法。核心思路是将API返回的事件名称数组转换为ID数组,利用Vue的响应式特性实现UI自动更新。关键点在于:1)使用getter动态生成Set集合,确保每次访问都基于最新数据;2)通过名称-ID映射完成数据转换;3)利用Vue响应式系统自动追踪依赖关系。该方法实现了用户操作与API回显的统一处理,避免了手动同步状态的问题,使自动勾选功能更加可靠高效。

2025-11-20 14:56:23 1103

原创 代码优化实战:用对象映射替代Switch语句提升代码质量

本文介绍了前端开发中使用对象映射替代switch语句优化条件判断的方法。通过Unity3D传递参数播放对应视频的实际案例,对比了传统switch实现(16行代码)与对象映射方案(12行代码)。对象映射具有O(1)的查找性能、更好的可维护性(清晰的结构和易扩展性)以及更高的代码可读性。特别适用于简单值映射、多条件分支、静态映射关系的场景,但需注意不适合动态条件或范围判断。该优化方法可推广至状态管理、配置映射等场景,建议将映射关系提取为常量以进一步提升复用性。

2025-11-17 11:17:01 331

原创 深入解析 Electron 打包中的 EPERM: operation not permitted 错误

Electron应用开发中,electron-builder打包时常见的"EPERM: operation not permitted"错误通常由文件锁定引起,而非真正的权限问题。本文深入分析了该错误的原因:前次打包生成的应用仍在后台运行导致文件被锁定。提供了三种解决方案:1)手动终止相关进程;2)优化应用退出逻辑;3)通过自动化脚本预先终止进程。文章帮助开发者理解错误本质并掌握有效解决方法,确保打包流程顺畅。

2025-11-17 11:16:37 1341

原创 在 Vue 中嵌入 Unity WebGL 并实现双向通信

本文介绍了在Vue.js项目中集成Unity WebGL应用的高级双向通信方案。通过改造Unity默认生成的index.html文件,将其转变为"通信桥梁",实现Vue与Unity的解耦交互。文章详细阐述了核心架构设计:Vue应用通过postMessage发送指令,改造后的index.html作为中间层进行消息转发,Unity则专注于3D逻辑处理。重点讲解了如何修改index.html文件,使其具备双向通信能力,包括Unity→Vue的消息转发和Vue→Unity的指令接收分发。同时提供

2025-08-26 14:29:16 1919

原创 在 OpenLayers 中实现自定义右键菜单:基于 vue3-context-menu 的完整指南

本文介绍了在Vue3和OpenLayers项目中实现右键菜单功能的方法。通过vue3-context-menu组件库,可以快速构建功能丰富、样式可定制的右键菜单。主要内容包括:1)环境准备与组件集成;2)核心实现逻辑,重点讲解如何捕获地图右键事件并显示自定义菜单;3)菜单项配置详解,包括基本菜单项、子菜单和自定义图标。文章提供了完整的代码示例,展示了如何结合状态管理实现动态菜单交互。该方法能有效提升WebGIS应用的用户体验和界面整洁度。

2025-08-26 14:29:02 1280

原创 深入理解 JavaScript 的作用域与作用域链

JavaScript作用域决定变量可访问范围,包括全局作用域(易污染)、函数作用域(密封舱)和ES6块级作用域(let/const)。作用域链机制会从当前作用域向外逐层查找变量,直至全局。常见问题包括:var变量提升、for循环作用域陷阱及闭包保存作用域。开发中应避免全局变量污染,合理使用块级作用域。作用域机制就像船舱找物资,先查当前舱室,再逐层向上,未找到则报错。

2025-08-25 11:53:00 328

原创 OpenLayers瓦片图层模块引入与使用

本文介绍了如何将OpenLayers地图初始化代码封装为独立工具函数,实现代码解耦和复用。文章首先展示在Vue组件中直接初始化地图的问题,包括代码臃肿、难以维护等。然后详细讲解将逻辑抽离到map.ts文件的过程,包括瓦片资源配置、视图参数设置等。通过initMap函数接收DOM元素ID参数,返回Map实例,使组件代码更简洁。最后还介绍了如何通过设置extent属性限制地图显示范围,并建议将边界参数存储在全局状态中。这种封装方式实现了关注点分离、代码复用和更好的可维护性,是处理复杂第三方库集成的有效模式。

2025-08-25 11:52:38 1208

原创 用 Vue 3 Composition API 打造可复用的拖拽功能 (useDraggable)

本文介绍了在Vue3中使用CompositionAPI封装可复用的拖拽功能。通过将拖拽逻辑分离为独立模块(useDraggable.ts),实现与业务组件解耦。关键步骤包括:定义拖拽目标/句柄的ref引用,创建处理位置计算和事件监听的组合函数,以及将返回的响应式样式绑定到组件。这种方法具有高内聚、低耦合的特点,支持类型安全,并能在不同组件间复用拖拽逻辑,充分体现了Vue3组合式API的模块化优势。

2025-08-21 17:11:15 1244

原创 VUE实现多个弹窗优先级变化实现思路

本文介绍了在Vue3+TypeScript环境下实现SPA多窗口层级管理的方案。核心思路包括:1)使用reactive对象集中管理窗口z-index;2)通过点击事件触发bringToFront函数提升窗口层级;3)利用watch监听新窗口打开状态自动置顶。该方法通过响应式状态、事件绑定和状态监听,实现了清晰可扩展的窗口管理,只需在配置对象添加新窗口即可扩展功能,无需修改核心逻辑。

2025-08-21 16:10:19 991

原创 前端性能优化——对节流与防抖的理解

端性能优化——对节流与防抖的理解

2024-09-12 14:19:41 982

原创 前端性能优化——懒加载

懒加载是一种优化网页性能的技术,通过在长页面中延迟加载图片等资源,仅在用户滚动到可视区域时才加载。其特点包括减少无用资源加载、提升用户体验、降低服务器压力等。实现方式包括原生JavaScript监听滚动、HTML5的loading="lazy"属性、IntersectionObserver API,以及Vue的vue-lazyload插件。核心原理是将资源路径存储在data属性中,当元素进入视口时再赋值给src进行加载。懒加载适用于图片、视频等多种资源,能显著提升页面加载速度和性能。

2024-09-11 14:16:25 2754

原创 官网开发碎碎念(二)

前端官网开发——地图

2024-06-20 16:11:59 344

原创 官网开发碎碎念(一)

前端官网开发

2024-06-20 15:54:58 456

原创 对象,字符串的解构赋值

本文介绍了ES6中对象解构赋值的特性。与数组解构不同,对象解构通过属性名匹配而非位置,变量名必须与属性名一致才能正确取值。解构失败时变量值为undefined。文章详细说明了对象解构的多种用法:嵌套解构、变量重命名、继承属性解构、默认值设置等,并指出需要注意的语法细节(如避免将大括号写在行首)。此外还提到字符串和数组也可进行类似的对象式解构。解构赋值能简化代码,方便提取对象属性和方法。

2024-05-11 10:54:09 606

原创 ES6之数组的解构赋值

ES6之数组的解构赋值

2024-05-11 10:22:00 255

原创 前端代码优化

前端代码优化

2024-05-08 09:56:04 705 1

原创 前端表单中的手机号的验证

vue3,前端表单中的手机号的验证

2024-05-06 16:35:05 1106

原创 前端组件库之ant-design-vue

ant-design-vue弹性布局,

2024-05-06 09:52:36 837

原创 JSON.parse() 和 JSON.stringify()的用法

JSON.parse() 和 JSON.stringify()的用法

2024-05-05 16:30:59 2080 1

原创 前端之深拷贝

前端之深拷贝使用场景,我在开发中没有使用深拷贝的bug

2024-05-05 16:00:21 776 1

原创 前端代码优化-switch的使用

代码优化之switch的使用

2024-05-04 11:29:50 429

原创 var,const,let的区别

摘要: var、let和const是JavaScript中声明变量的方式,主要区别在于作用域和可变性。var是函数作用域,存在变量提升;let和const是块级作用域,不存在变量提升。let允许重新赋值,但不能重复声明;const声明后不能重新赋值(基本类型),但复合类型(如对象、数组)的属性可以修改。const确保变量引用不变,而非内容不变。块级作用域解决了ES5中变量覆盖和泄露的问题。let和const引入暂时性死区,避免未声明前使用变量。函数声明在块级作用域中的行为因环境而异,建议使用函数表达式。

2024-04-30 15:01:23 400

原创 前端面试和一些建议

前端面试题和一些建议

2024-04-30 10:53:57 1193

原创 前端代码优化--computed

计算属性来简化和优化代码

2024-04-11 16:27:58 393

原创 vue项目报这个错是 Same `value` exist in the tree: 0008E3000E1A?

deviceInfoCard.vue:62 Warning: Same `value` exist in the tree: 0008E3000E1A

2024-03-25 16:04:16 674 1

原创 pinia的使用

pinia的使用

2024-03-25 14:48:04 1161

原创 怎么实现这个样式啊

就是随着下面滑块的滑动,上面图形也改变颜色范围,js怎么实现。

2024-01-24 17:48:08 443

原创 vue3+ts+elementPlus实现选中图片并且把图片信息放入一个数组中

vue3+ts+elementPlus实现选中图片并且把图片信息放入一个数组中

2023-12-04 13:44:21 935

原创 vue中watch的使用详解

vue中watch的使用详解

2023-11-24 11:20:19 5172 2

原创 前端常见的时间转换方法,获取当前时间方法

前端常见的时间转换方法,获取当前时间方法

2023-11-23 11:30:00 4575

原创 前端常见的循环处理数组方法

前端常见的循环处理数组方法,forEach,map,filter,some,every,find

2023-11-23 10:30:00 783

原创 Clean Code,了解Clean Code

Clean Code是什么?Clean Code的优缺点!了解Clean Code

2023-11-22 15:13:37 1724

原创 程序员的护城河是什么?

程序员的护城河是什么

2023-11-22 13:54:15 242

原创 人工智能对我们的生活影响有多大?

人工智能对我们的生活影响有多大?

2023-11-22 13:31:40 124

原创 css实现文字两端对齐

还参考了其他文档,看设置trxt-align:justify就可以实现俩端对齐,但我设置这个属性没有变化,设置了 text-align-last: justify;这个属性,才实现两端对齐。这种情况下,我们要实现俩端对齐,其实只需要给他一个固定宽度,再给他加一个属性就可以实现,因为text-align-last只对块级元素生效。如果有什么地方不严谨,错误,欢迎大家留言,让我可以进行更改。属性用于设置文本的水平对齐方式。实现单行文本俩端对齐。

2023-11-20 15:42:49 1556

空空如也

空空如也

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

TA关注的人

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