自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 前端实现 AI 打字机效果失败?一文讲清 SSE + PHP 的坑与解决方案!

本文详细探讨了SSE+PHP实现流式打字机效果失败的常见问题及解决方案。核心问题在于PHP和Web服务器的输出缓冲机制导致数据一次性推送。作者从服务端到前端提供了全链路优化方案:PHP需关闭缓冲并强制刷新,Nginx需禁用缓冲和压缩,前端可添加节奏缓冲器优化体验。文章还总结了常见踩坑点,如数据同时到达、Nginx缓冲、SSE格式错误等,并指出正确配置后SSE+PHP可实现流畅的AI回复逐字展示效果。适合需要实现流式输出的开发者收藏参考。

2025-07-21 00:15:00 657

原创 Vue 中封装 IndexedDB 本地图片存储(支持 Blob)

摘要:本文介绍了在Vue项目中封装IndexedDB实现本地图片存储的方案。通过indexedDbImage.ts模块封装了图片的增删查功能,支持Blob格式存储,并生成可访问的URL。在Vue组件中通过简单API即可实现图片上传、预览和管理。该方案适用于PWA离线应用、聊天图片缓存等场景,有效提升用户体验。文章包含完整代码示例和功能说明,还提供了过期清理等扩展建议。

2025-07-20 00:15:00 197

原创 Vue 3 中封装并使用 IndexedDB 的完整教程(含泛型、模块化、通用 CRUD)

📝 Vue 3 封装 IndexedDB 完整方案(泛型+模块化) 本文提供了在 Vue 3 项目中封装 IndexedDB 的完整解决方案: 1️⃣ 使用 idb 库简化操作 2️⃣ 实现类型安全的泛型封装 3️⃣ 提供标准 CRUD 方法(add/put/delete/getAll) 4️⃣ 包含初始化配置和组件使用示例 5️⃣ 支持调试和进阶扩展建议 适用于本地缓存、离线存储、聊天记录等场景,相比 localStorage 具有更大容量和更强功能。文中包含完整的代码实现和实际应用示例,帮助开发者快速

2025-07-20 00:00:00 1531

原创 ndexedDB 与 LocalStorage:全面对比分析

🔍 IndexedDB与LocalStorage对比摘要 两种主流前端存储方案的核心差异: 1️⃣ 数据结构:IndexedDB支持对象/Blob等复杂类型,LocalStorage仅限字符串 2️⃣ 容量:IndexedDB可达GB级,LocalStorage限制5MB左右 3️⃣ 性能:IndexedDB异步操作不阻塞UI,LocalStorage同步可能卡顿 4️⃣ 复杂度:LocalStorage API简单(getItem/setItem),IndexedDB需事务管理但功能强大 💡 选型建议

2025-07-19 23:45:00 957

原创 前端实现 AI 回复的流式数据(逐字展示效果)

本文详细介绍了如何在前端实现AI回复的流式数据展示效果(逐字显示)。文章首先解释了流式响应的概念及其技术实现(SSE、fetch stream、WebSocket),然后提供了核心代码示例(fetch版)和Vue Hook封装方法。同时包含Vue组件实战案例、Node后端实现示例,以及加载动画、中断控制等增强功能建议。通过fetch+reader.read()的简单技巧,开发者就能实现类似ChatGPT的"打字机"回复效果,适用于对接各类AI文本输出服务。

2025-07-19 00:45:00 706

原创 前端 SSE 实战应用:用最简单的方式实现实时推送

本文介绍了前端SSE(Server-Sent Events)技术的实战应用。SSE是一种HTML5标准中的服务端推送技术,相比WebSocket更轻量简单,适用于单向实时数据推送场景。文章详细讲解了SSE与WebSocket的区别、前端基础使用方法、服务端响应格式要求,并提供了Vue中封装useSSE Hook的代码示例。同时展示了Node.js后端实现进度条推送的完整案例,以及SSE在自动重连、心跳机制等方面的优化建议。最后列举了SSE的适用场景,如后台任务进度、系统消息通知等,强调其在轻量推送需求中的优

2025-07-18 23:45:00 856

原创 TypeScript 泛型进阶技巧全解析:从函数到类的泛型模式

本文深入解析TypeScript泛型的高级应用技巧,涵盖泛型约束、默认值、工具类封装、类与构造函数应用、infer类型提取、联合类型分发陷阱等核心内容。通过函数式泛型、链式调用实现等实战案例,展示了如何构建类型安全的复杂逻辑。文章归纳了6种高阶泛型模式及其应用场景,帮助开发者掌握类型体操的核心思想,提升代码安全性和可维护性。适合已具备基础泛型知识的开发者进阶学习。

2025-07-17 00:15:00 688

原创 你可能忽略的 TypeScript 类型兼容性与类型推导原理

本文深入解析TypeScript的类型兼容性与类型推导原理。类型兼容遵循结构性类型系统,只要结构匹配即可赋值,解释了基本类型、对象、函数、类与枚举之间的兼容规则。类型推导部分详述变量初始化、字面量类型、函数返回值及泛型推导机制,并指出常见陷阱如对象字面量严格检查、any滥用和推导过宽等问题。理解这些原理有助于编写更健壮的TypeScript代码,避免类型安全隐患。掌握类型兼容与推导是进阶TypeScript开发的关键。

2025-07-16 00:15:00 1028

原创 5 个复杂泛型的拆解思路,教你从看不懂到写得出!

这篇文章总结了5个TypeScript复杂泛型的拆解思路,帮助开发者从看不懂到能写出高级泛型。核心方法是通过5步分析法:识别泛型参数、条件判断、推断结构、映射类型和递归调用。文章详细拆解了DeepPartial(递归可选对象)、Flatten(提取数组元素类型)、PickByType(筛选属性)、UnionToIntersection(联合转交叉)和IsAny(判断any类型)等典型案例,揭示了每种泛型的技术要点和实现套路。掌握这些模式后,开发者不仅能理解源码中的复杂泛型,还能自己设计高级类型工具。

2025-07-16 00:15:00 904

原创 JS 算法时间复杂度速查表 + 实战练习题

《JS算法时间复杂度速查表与实战练习》提供了常见算法时间复杂度的速查表,包括O(1)、O(log n)、O(n)、O(n²)等不同复杂度对应的典型操作和算法。文章通过5个典型代码示例(获取最大值、判断重复、二分查找、冒泡排序和快速排序)详细分析时间复杂度,并给出优化建议。最后推荐了8个难度递增的练习题,涵盖数组处理、查找和排序等常见场景,帮助开发者理解算法效率差异,掌握优化技巧。强调利用Set/Map等数据结构可将O(n²)优化为O(n),而二分法等O(log n)算法能显著提升性能。

2025-07-15 01:00:00 388

原创 说说 this 的指向问题,举例讲透!

本文深入解析JavaScript中this的5种绑定方式:默认绑定(指向全局对象或undefined)、隐式绑定(指向调用对象)、显式绑定(通过call/apply/bind强制绑定)、new绑定(指向新创建对象)和箭头函数(继承外层作用域this)。重点分析了常见应用场景如对象方法、定时器、事件监听中的this指向问题,并提供了4步判断法则:先看new、显式绑定、隐式绑定,最后默认绑定。文章强调this是执行时而非定义时决定的特性,帮助开发者彻底掌握这一关键概念。

2025-07-15 01:00:00 641

原创 JavaScript 中 `this`、`bind` 与箭头函数调用过程详解

《JavaScript中this、bind与箭头函数调用过程解析》一文深入探讨了this指向的核心机制。文章指出this值取决于调用方式而非定义位置,通过典型场景演示了this丢失问题(如直接赋值方法导致undefined)。对比三种解决方案:直接调用(obj.say())、bind强制绑定(obj.say.bind(obj))和箭头函数闭包调用(()=>obj.say()),揭示其本质差异——bind显式绑定this,箭头函数通过闭包规避this问题。重点强调:避免直接赋值方法,推荐根据场景选择bi

2025-07-15 01:00:00 870

原创 Monorepo 由浅入深全解析

本文全面解析了Monorepo技术,从概念、优势挑战到工具选型和实战搭建。Monorepo将多个模块集中管理在一个仓库中,具有统一依赖管理、高效协作和模块复用等优势,但也面临依赖混乱、构建速度等挑战。文章对比了Lerna、Turborepo、Nx等主流工具,推荐pnpm+Turborepo/Nx组合。并手把手演示了基于pnpm+Turborepo的Monorepo项目搭建流程,包括工作区配置、子包创建和Turbo构建优化。最后指出Monorepo适合大型协作项目,是现代前端开发的必备技能。

2025-07-14 07:00:00 775

原创 常见时间复杂度实战案例对比

本文通过实战案例对比常见算法时间复杂度,帮助快速判断性能表现。O(1)如数组首元素访问(执行次数固定),O(n)如遍历数组(数据量与执行次数成正比),O(n²)如暴力查重(双重循环耗时剧增),O(log n)如二分查找(效率惊人),O(n log n)如快速排序(优于O(n²))。文中提供对比表格和记忆口诀,直观展示不同时间复杂度在n=1000时的性能差异:O(1)仅1次操作,O(n²)可达百万次。掌握这些特性可有效评估算法效率。

2025-07-14 01:00:00 442

原创 ECharts 图表 + 大屏适配实战案例

本文介绍了ECharts图表在大屏项目中的适配方案,主要解决缩放模糊、自适应等问题。推荐使用transform:scale+resize重绘图表的方式,并提供了Vue3+Vite的完整实现步骤:1)封装useEchart工具函数处理图表初始化和响应式;2)开发可复用的EchartCard组件;3)页面集成示例。文章还包含高级技巧如字体自适应、防抖优化等,最后总结了常见问题的推荐做法,帮助开发者实现高质量的大屏数据可视化效果。

2025-07-13 07:00:00 194

原创 JavaScript 运算符大全(含示例)

本文全面整理了JavaScript中常用的运算符,涵盖算术、赋值、比较、逻辑、位运算等12大类。重点介绍了各运算符的使用场景及示例代码,如+加法、===严格相等、??空值合并等。特别对比了||和??的区别,强调===比==更安全,并推荐了解构赋值、扩展运算符等实用技巧。文章还包含类型判断、三元运算符等高级用法,最后总结了运算符的最佳实践组合,如用??设置默认值。适合开发者快速查阅JS运算符知识。

2025-07-13 07:00:00 771

原创 Vue 3 中 `ref` vs `shallowRef` 实战指南

Vue 3 中 ref 与 shallowRef 实战解析: ref 提供深度响应式,适合表单、可编辑表格等需要监听内部属性变化的场景;shallowRef 仅响应 .value 整体替换,性能更优,推荐用于大表格数据、API返回结果、缓存及第三方实例。核心选择标准:是否需监听对象内部变化?要深度监听选 ref,只需整体替换用 shallowRef,合理选择可显著提升性能。表单编辑用 ref,只读数据/图表实例用 shallowRef。

2025-07-12 07:00:00 589

原创 10 个你应该自己封装的自定义 Vue Hook,让项目更可维护

摘要:本文介绍了10个值得封装的Vue自定义Hook,帮助提升项目可维护性。这些Hook包括表单校验、权限管理、请求封装、分页处理、弹窗控制等常见场景。通过封装逻辑复用代码,实现组件解耦、状态统一管理。每个Hook都配有简洁示例,涵盖Element Plus/Naive UI表单、暗黑模式切换、URL参数处理等实用功能。自定义Hook能有效解决代码重复问题,是构建结构化Vue应用的关键实践。文章还预告了下期将分享通用工具函数封装技巧。

2025-07-12 06:30:00 844

原创 10 个你项目里可能漏掉的 TypeScript 技巧

这篇TypeScript技巧文章分享了10个容易被忽略但非常实用的开发技巧,包括:使用联合类型替代硬编码常量、as const固定字面量类型、keyof typeof构造安全键名、自动推断默认参数类型、infer提取子类型、ReturnType推导函数返回类型、Record构建映射对象、类型守卫处理unknown、satisfies约束对象结构以及readonly增强不可变性。这些技巧能显著提升代码的类型安全性、可读性和工程效率,特别适合中大型项目开发。最后还推荐了类型调试工具ts-toolbelt,并附上

2025-07-11 11:17:07 593

原创 TypeScript 中的内置工具类型(Utility Type)

Utility Type 是TypeScript 提供的内置泛型类型,用于在已有类型的基础上快速创建新类型。💡 类似于 JavaScript 的工具函数(如map()filter()),这些类型是对类型的“加工”操作。类型作用Partial所有字段变为可选Required所有字段变为必填Readonly所有字段只读PickOmit选择/排除字段ReturnType推导函数返回类型Parameters推导函数参数类型ExcludeExtract类型集合筛选去除 null/undefined。

2025-07-11 11:14:51 556

原创 一文搞懂 Vue Router 的钩子函数和实战用法!

📌 Vue Router导航守卫实战指南 本文系统讲解Vue Router三大类导航守卫(全局/路由独享/组件级)的核心用法: 🔥 全局守卫 beforeEach:登录/权限验证首选 afterEach:修改标题/结束Loading 🎯 路由独享 beforeEnter:针对单路由的权限控制 💡 组件级守卫 beforeRouteEnter:初始化数据(无this) beforeRouteUpdate:参数变化刷新数据 beforeRouteLeave:防表单丢失提醒 📊 实战场景对照表:针对登录

2025-07-10 10:01:45 1070

原创 教你如何用 localStorage+Vue 状态管理玩转数据持久化!

这篇文章介绍了如何结合使用 localStorage 和 Vue 状态管理工具(如 Pinia)来实现数据持久化。主要解决 Vue 项目刷新页面后状态丢失的问题,特别适合保存用户登录信息、主题设置等全局数据。文章通过 Pinia 示例演示了从 localStorage 初始化状态、同步更新数据的实现方法,并推荐了 VueUse 的 useStorage 工具简化操作。最后提供了进阶技巧,如封装存储方法、设置过期机制等,强调状态管理与本地存储结合既能保持响应式又能持久化数据,有效提升用户体验。文末还邀请读者互

2025-07-10 09:47:31 702

原创 Vue 3 中父子组件双向绑定的 4 种方式

本文总结了Vue 3中实现父子组件双向绑定的4种方式:1)使用v-model+modelValue+emit官方推荐方式;2)自定义v-model:xxx实现多值绑定;3)Vue 3.3+的defineModel简化写法;4)传统props+emit自定义字段方式。各方式适用于不同场景:表单组件推荐标准v-model,复合组件可用多model绑定,新项目建议使用defineModel,复杂交互适合自定义实现。文中提供了代码示例和场景对比表,帮助开发者根据需求选择合适的双向数据绑定方案。(148字)

2025-07-09 16:11:33 700

原创 Vue 3 + Element Plus 动态表单构建器组件实战教程

📌 Vue 3动态表单构建器组件开发指南 本文详细介绍了如何基于Vue 3和Element Plus构建一个功能强大的动态表单组件VFormBuilder。该组件主要特性包括: 1️⃣ 动态渲染:通过配置数据自动生成各种表单控件(输入框、选择器等) 2️⃣ 双向绑定:支持v-model绑定表单数据 3️⃣ 灵活验证:提供完整的表单验证功能 4️⃣ 自定义扩展:支持插槽替换和动态标签渲染 教程包含完整的组件源码解析,从基础结构定义到动态组件渲染的具体实现,并提供了典型使用示例和校验方法。最后还提出了远程数据

2025-07-09 15:57:04 559

原创 大屏适配实战方案详解(含源码)

本文详细介绍大屏适配的实战方案,推荐使用transform: scale()方法实现等比缩放,兼容不同分辨率屏幕。文章对比了4种适配方案优缺点,提供详细的HTML/CSS/Vue3代码实现,包括页面结构、样式设置和自适应JS脚本。开发建议包括使用固定尺寸设计稿、避免响应式布局等。测试表明该方法在主流分辨率下表现良好,并针对字体模糊、点击偏移等常见问题给出解决方案。最后对不同项目类型推荐适配方案,企业可视化大屏首选transform缩放方案。

2025-07-08 09:09:24 993

原创 移动端适配最佳实战方案详解

本文详细介绍了移动端适配的主流方案,包括rem+flexible、viewport+vw、媒体查询+px等,对比了各方案的优缺点。重点推荐了企业级最佳实践:rem+postcss-pxtorem方案,适用于Vue/uni-app项目,能够自动缩放适配不同设备。文章提供了完整的配置方法,包括postcss配置、动态设置rem基准值,以及Vite项目的集成方案。针对uni-app推荐使用内置upx单位,并解答了常见适配问题。根据项目场景,给出了适配方案选择建议,帮助开发者实现高效可靠的移动端适配。

2025-07-08 09:07:00 851

原创 unplugin-vue-components 最佳实践手册

《unplugin-vue-components 最佳实践手册》介绍了这款Vue组件自动导入插件的核心功能和配置方法。该插件能自动按需导入本地组件和UI库组件,无需手动import,有效减小包体积。文章详细讲解了安装步骤、Vite配置方法,包括目录扫描、类型声明生成、UI库解析器等关键功能,并推荐与unplugin-auto-import配合使用实现API和组件全自动导入。手册还提供了多目录支持、自定义扩展名等实用配置示例,以及常见问题解决方案,帮助开发者提升Vue3+Vite项目的开发效率。

2025-07-07 15:50:33 793

原创 unplugin-auto-import/vite 使用详解

📝 unplugin-auto-import/vite 是一款提升Vite开发效率的自动导入插件,能自动为Vue、Pinia、Vue Router等常用库生成import语句。通过简单配置即可实现: 1️⃣ 自动导入API(如ref/useRouter) 2️⃣ 支持TypeScript类型推导 3️⃣ 生成ESLint全局声明 4️⃣ 可在模板中直接使用函数 5️⃣ 支持自定义模块导入 配置只需在vite.config.ts中添加插件并指定需自动导入的库,开发时即可省去手动import的繁琐操作。该插件

2025-07-07 15:14:03 1022

原创 Vue 3 中使用路由参数跳转时 watch 触发重复请求问题详解

《Vue 3 路由参数监听中的重复请求问题解决方案》摘要:在 Vue 3 项目中,通过 watch 监听路由参数(如 route.query.id)时,当页面跳转后仍会触发监听导致重复请求。本文提出在 watch 中加入页面判断(route.name !== '当前页面')来阻止跨页误触发,并推荐封装为通用 Hook。解决方案核心在于:1) 仅当保持当前页面时才执行请求 2) 配合路由 name 进行精准判断 3) 提供可直接复用的代码模板。该方法有效解决详情页跳转订单页等场景下的性能浪费问题。

2025-07-06 08:00:00 312

原创 `useDetailLoader` 组合函数封装(支持自动加载 + 页面判断 + 防重复)

摘要:useDetailLoader是一个Vue组合函数,用于自动监听路由参数变化并加载详情数据。主要功能包括:自动监听query.id参数变化、仅在指定页面触发、避免重复加载、支持初始加载和浏览器返回场景。该函数提供loading状态管理和重新加载方法,可配置成功/失败回调,适用于各类详情页数据加载场景。通过封装通用逻辑,提升了代码复用性和可维护性,同时避免了跨页面误触发和重复加载问题。

2025-07-05 09:00:00 247

原创 DOM 中常见宽度属性详解与应用

这篇文章系统讲解了DOM中常见的宽度属性及其应用场景。主要内容包括:1) 通过示意图和表格对比了clientWidth、scrollWidth、offsetWidth和getBoundingClientRect().width的区别,指出它们各自包含的内容元素(如padding、滚动条等);2) 提供了五个典型应用示例,包括判断文本溢出、检测滚动条、获取精确宽度、元素定位等;3) 给出了可直接运行的对比代码展示不同属性的返回值差异;4) 总结了各属性的适用场景,如clientWidth适合判断内容是否超出,

2025-07-05 00:15:00 440

原创 TextTipsPlus 多行省略 + Tooltip 提示组件

摘要:TextTipsPlus 是一款多功能文本展示组件,支持多行省略(1-4行)、动态宽度设置和溢出提示功能。核心特性包括:通过line-clamp控制显示行数,自动判断文本溢出并显示Tooltip,支持插槽插入复杂内容(图标/HTML),兼容i18n多语言。组件采用Vue3编写,提供响应式布局和窗口resize监听,适用于表格列、卡片等需要空间优化的场景。开发者可扩展Tooltip延迟显示、自定义样式等高级功能。典型使用场景包括长文本缩略显示、多语言内容展示和图文混排内容截断。

2025-07-04 10:27:51 124

原创 自定义时间范围选择组件使用教程(基于 Vue 3 + Element Plus)

本文介绍了一个基于Vue 3和Element Plus的自定义时间范围选择组件。该组件提供双向绑定的开始时间和结束时间选择,支持常用快捷选项(今天、昨天、本月、上月等),并带有国际化功能。组件核心功能包括:通过v-model绑定时间值、自动识别并高亮快捷选项、自定义插槽扩展以及样式优化。技术实现上使用了Element Plus的日期选择器和下拉选择器,并配合Vueuse的useVModel进行数据绑定,同时内置了多种日期处理方法。该组件可直接集成到表单中,提供美观实用的时间范围选择功能。

2025-07-04 10:17:40 429

原创 Vue 3 + Element Plus 常见开发问题与解决方案手册

📝 Vue 3 + Element Plus 开发问题解决手册 本文总结了Vue 3开发中的常见问题: 1️⃣ 动态插槽:<slot name="xxx">默认内容</slot>实现父组件传插槽则显示,未传则回退默认内容 2️⃣ h()函数:参数结构为(type, props?, children?),支持组件/标签渲染 3️⃣ 响应式数据: unref()仅解包ref,toRaw()去除reactive的Proxy 推荐用cloneDeep深拷贝解除响应式 4

2025-07-03 16:11:01 507

原创 FileReader 文件读取与上传至后端 - Excel & PDF 示例

本文介绍了如何使用 FileReader 读取 Excel 和 PDF 文件并上传至后端的完整流程。通过前端代码示例演示了文件读取、解析(使用 xlsx 和 pdf.js 库)以及上传(使用 FormData 和 Fetch API)的实现方法,同时提供了 Node.js 后端处理文件上传的示例。文章还提出了文件大小限制、用户反馈和文件类型校验等优化建议,帮助开发者构建更完善的文件上传功能。

2025-07-03 08:00:00 421

原创 AI 大模型如何重塑软件开发流程?

摘要: AI大模型正在彻底重塑软件开发流程,从需求分析到编码、测试、文档编写和运维,全面提升效率。工具如Copilot、Cursor和ChatGPT能自动生成代码、测试用例、流程图甚至API文档,但也面临幻觉错误、版权风险和开发者依赖性等挑战。未来,AI与IDE的深度整合和自然语言编程将成为趋势。开发者需拥抱AI作为协同工具,而非替代者,以保持竞争力。AI不会取代开发者,但拒绝AI的开发者可能被时代淘汰。

2025-07-02 09:14:46 925

原创 Vuex 在实战项目中的使用详解(含真实案例)

本文详细介绍了Vuex在Vue.js项目中的实践应用,包括核心概念、项目结构组织、真实案例展示和最佳实践。首先分析了Vuex适用的五大场景,如跨组件状态共享和异步数据管理。重点演示了商城项目中用户模块的实现,涵盖state、getters、mutations和actions的完整配置。文章还介绍了组件中如何使用mapState/mapGetters映射状态,以及如何通过vuex-persistedstate实现状态持久化。最后总结了Vuex的最佳实践,强调模块化命名空间、异步/同步操作分离和状态管理规范等要

2025-07-02 09:04:56 476

原创 FileReader 是什么?干嘛用的?

FileReader 简介:前端文件读取工具 FileReader 是浏览器内置的类,用于在不发送到后端的情况下读取用户上传的文件(如文本、图片、PDF等)。通过 new FileReader() 创建实例,支持以文本、Base64、二进制等格式读取文件内容。常用方法包括 readAsText()、readAsDataURL()(用于图片预览)等,读取结果通过异步事件 onload 从 reader.result 获取。典型应用如本地图片预览、解析文件内容,提升用户体验。核心特点:无需页面刷新,纯前端处理文

2025-07-02 08:00:00 428

原创 Axios 请求取消机制完全教程(含重复请求处理)

📌 Axios请求取消机制全解析 本文详细讲解如何利用Axios的CancelToken实现重复请求自动取消,提升前端性能与用户体验。核心内容包括: 🔹 实现原理 通过CancelToken.source()生成token和cancel函数,利用Map存储请求唯一标识(method+url+params+data)与对应cancel函数 🔹 关键步骤 1️⃣ 请求拦截器中检查并取消重复请求 2️⃣ 响应拦截器清理已完成请求 3️⃣ 使用axios.isCancel()区分取消错误 🔹 最佳实践 ✔️

2025-07-01 10:31:18 2016

原创 Axios 二次封装高级教程(含请求取消等功能)

本文详细介绍了Axios二次封装的高级功能实现方案,包含以下核心内容: 总体架构设计:构建完善的HTTP请求封装层,包含请求拦截、响应拦截、请求取消、缓存策略等核心功能。 请求取消机制:通过cancelToken实现重复请求取消,防止接口抖动。 批量请求处理:使用axios.all和axios.spread实现多接口并行请求。 缓存策略:提供内存缓存实现,可扩展至本地存储。 失败重试:自动重试失败的请求,提高接口稳定性。 进度监听:支持文件上传/下载进度实时监控。 状态管理:结合Vue 3 Composit

2025-07-01 09:20:21 565

空空如也

空空如也

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

TA关注的人

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