自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 令人抓狂的 JS 赋值顺序!

本文简述 JavaScript 中的连续赋值操作,尤其是针对表达式 a.x = a = { n: 2 }; 的行为进行详细拆解,这一现象揭示了 JS 表达式求值中的先引用捕获,再右值计算,最后执行赋值的关键逻辑。

2025-05-16 08:30:00 874

原创 那天,我在一个字符串里发现了幽灵

零宽字符是什么呢?一个看不见却真实存在的特殊字符,常用于控制文本格式或隐形标记,但也容易引发排查困难的“幽灵”问题。

2025-05-15 08:30:00 858

原创 JavaScript 中浮点数精度问题导致显示异常,解决方案解析

JavaScript 使用的是 IEEE 754 浮点数标准,很多小数无法精确表示,导致计算时出现精度误差 —— 可通过 toFixed、Math.round 等方式解决。

2025-05-14 08:00:00 809

原创 从 Set、Map 到 WeakSet、WeakMap 的进阶之旅

Set 和 Map 是可遍历的强引用集合,分别用于存储唯一值和键值对,而 WeakSet 和 WeakMap 是不可遍历的弱引用集合,仅接受对象作为键或值,适用于避免内存泄漏。

2025-05-13 11:15:28 1255

原创 Vue 组件行为失控?inheritAttrs 可能是罪魁祸首!

一句话概括:inheritAttrs 是 Vue 组件中的一个配置项,用于控制非 prop 的 attribute 是否自动绑定到组件根元素上,默认启用,设置为 false 后需手动通过 $attrs 显式绑定到指定元素。

2025-05-12 16:53:32 955

原创 flex 还是 inline-flex?实际开发中应该怎么选?

display:flex 与 display:inline-flex 在弹性布局本质上是相同的,它们的差异仅在于容器自身在文档流中的展示方式。

2025-05-09 16:42:30 926

原创 业务定制太多,组件库招架不住?手写一个步骤条!

为什么选择手写一个步骤条组件 —— 因为需要的不只是展示,更是对交互状态和样式的全面掌控。

2025-05-07 08:30:00 419

原创 从 v-model 到 defineModel:Vue3 正在悄悄改变开发习惯

表面上是小小语法更新,背后是 props、emit、双向绑定、编译优化的完美结合。掌握它,才能真正写出未来式的 Vue3 组件。

2025-04-30 08:30:00 826

原创 叮咚!你的第一封站内信到了!

站内信(In‑App Notification),简单来说,就是“网站/应用内部给我们的消息推送”,就像一个内置的小邮箱、短信系统。

2025-04-25 08:30:00 244

原创 加了防抖就能防住重复提交?测试:我不答应!

在实际开发中提交按钮未防止重复点击时,可能导致的多次网络请求问题,通过封装点击锁 useClickLock 与 v-bLoading 指令的方式,有效实现按钮防抖与加载反馈,提升用户体验与系统稳定性。

2025-04-23 08:30:00 712

原创 同样是解码,结果却天差地别?可能用了错的函数!

encodeURI 与 encodeURIComponent 是前端处理 URL 编解码的关键函数,理解它们的区别能有效避免参数丢失、结构错乱等问题。

2025-04-22 08:00:00 1143

原创 ES6 Promise 的底层魔法:一步步实现异步控制器

Promise 是 JavaScript 处理异步操作的强大工具,能够避免回调地狱。它像一个承诺,告诉我们未来某个时刻会返回一个结果,成功时执行 then,失败时执行 catch,让异步代码变得更易理解和管理。

2025-04-18 08:00:00 615

原创 从冗余到极致精简,Tree Shaking 真正做了什么?

Tree Shaking 是 JavaScript 应用打包优化的重要技术之一,其通过深入的静态分析与依赖图构建,将“死代码”剔除,极大优化了最终输出文件的体积和性能。

2025-04-17 08:30:00 992

原创 解密 Vue 打包策略

本文详解 Vue 打包中路径处理机制,深入对比静态与动态路径差异,以及 webpack、vite、vue-cli 的资源管理方式,搞懂源码与构建路径的本质。

2025-04-15 10:34:11 798

原创 拆分与重构——微前端

微前端通过将大型前端应用拆分为多个独立的微应用,使得团队能够使用不同的技术栈,独立开发、部署和管理各自的功能模块。

2025-04-14 09:00:00 1376 1

原创 不可低估 Vue 指令的威力

指令是 Vue 提供给开发者的 DOM 操作扩展点,底层通过编译 + 虚拟 DOM patch 生命周期钩子与真实 DOM 绑定,实现对 DOM 元素的控制。

2025-04-11 08:45:00 684

原创 keep-alive:我不死,只是沉睡;onActivated:我醒了!

keep-alive 是 Vue 提供的强大缓存机制,能够智能缓存组件实例,避免不必要的销毁和重建,显著提升性能,特别适用于复杂的路由切换和高频繁组件更新场景。

2025-04-10 09:30:00 2260

原创 表单验证卡壳了吗?ElForm 校验机制详解

ElForm 的校验机制本质上是一个结合 Vue 响应式系统、事件机制和自定义规则的灵活校验框架。它通过监听表单项的输入事件触发验证规则,逐个字段验证数据是否符合规则,并根据验证结果更新 UI 显示错误信息。

2025-04-08 09:00:00 722

原创 Pinia 实战指南:Vue 3 的新一代状态管理工具

Pinia 是为 Vue 3 设计的现代状态管理库,具有简洁的 API、响应式支持和优秀的类型推导,提供比 Vuex 更加灵活、易用的解决方案,适用于中小型到大型应用的状态管理需求。

2025-04-07 13:47:29 784

原创 VuePress:打造本地方法库

VuePress 是一个基于 Vue 的静态网站生成器,它可以将 Markdown 文档转换为美观、可导航的文档网站,适用于技术文档、个人博客和知识库。

2025-04-04 08:00:00 902

原创 Vue 项目中大量报红提示:JSX 元素类不支持特性,因为它不具有“props”属性。

报红提示:xxx 不能用作 JSX 组件 或者 JSX 元素类不支持特性,因为它不具有“props”属性。

2025-04-03 10:00:00 430

原创 Vue 3 自定义权限指令 v-action

在 Vue 3 项目中,权限控制是常见需求。使用 v-action 自定义指令,可以自动控制元素的显示与隐藏,让权限管理更简洁高效。

2025-04-02 10:56:00 357

原创 VS Code 侧边栏大小调整

VS Code 如何根据个人喜好自定义窗口大小。

2025-03-19 08:00:00 768

原创 单向数据流:Vue 响应式魔法 vs React 不可变信仰

Vue 的单向数据流通过响应式系统 + 事件机制实现高效更新,降低心智负担;React 则通过不可变数据 + 函数式组件强调控制权。

2025-03-17 08:30:00 623

原创 Git Worktree 实现 “一边修生产Bug,一边写新需求”

git worktree 是一个强大的功能,可以帮助开发者在同一个 Git 仓库中同时处理多个分支和任务。

2025-03-16 09:45:00 790

原创 深入解析浏览器回流优化与缓存策略

浏览器回流优化是指通过减少或避免不必要的回流(重排)操作,提高页面渲染性能。回流发生在DOM元素的尺寸、位置或结构变化时,导致浏览器重新计算布局。

2025-03-15 10:00:00 751

原创 TypeScript:为什么应该停止使用 Enum?

本文一一解答:官方究竟有没有弃用 enum 呢?enum 存在哪些问题呢?有没有什么替代方法呢?

2025-03-13 08:30:00 1744

原创 Trae 国内版正式上线!一键安装,解锁 AI 编程

Trae 作为国内首款 AI 原生 IDE,深度融合 AI 编程能力,提供 Chat 模式 和 Builder 模式,既能作为智能助手优化代码,也能主导生成项目结构。

2025-03-12 08:00:00 1632 1

原创 [Vue warn]: Do not use built-in or reserved HTML elements as component id: base.

解决方法:[Vue warn]: Do not use built-in or reserved HTML elements as component id: base

2025-03-11 09:15:00 242

原创 [Vue warn]: Runtime directive used on component with non-element root node.

[Vue warn]: Runtime directive used on component with non-element root node. 的解决方法

2025-03-11 08:30:00 458

原创 Vue 3 + Element Plus 集成指南(内含彩蛋)

本文包含将 Element Plus Dialog 封装为极简函数调用的方案,支持链式调用和灵活扩展(非常有帮助)。

2025-03-10 09:00:00 1941

原创 告别混乱之 Cookie vs Session

Cookie 是客户端存储的「钥匙」(保存用户标识),Session 是服务端存储的「保险箱」(保护敏感数据),二者可以通过 Session ID 联动解决 HTTP 无状态问题。

2025-03-09 08:45:00 776

原创 解锁浏览器空闲时间:requestIdleCallback

requestIdleCallback 允许开发者在浏览器空闲时执行非紧急任务,通过监测执行栈和任务队列的状态来判断空闲时间,并提供 deadline 对象以获取剩余时间和超时处理,优化性能和用户体验。

2025-03-07 08:30:00 1994

原创 解锁 ES6 访问器属性 Getter & Setter

ES6 访问器属性(getter/setter)用于拦截对象属性的读取和赋值操作,提供自定义逻辑,但需避免直接访问自身属性以防止递归死循环等一些点。

2025-03-05 09:45:00 969

原创 解析 event as keyof typeof xxx 的含义

在 TypeScript 中,typeof、keyof 和 as 这三个关键字在类型推导、类型操作以及类型转换中非常重要。

2025-03-04 09:30:00 767

原创 VS Code 本地运行 TypeScript 全攻略

在 VS Code 本地运行 TypeScript,需先安装 typescript 和 ts-node,然后使用 ts-node file.ts 直接执行,或 tsc 编译后用 node file.js 运行,并通过 tsconfig.json 进行项目配置优化。

2025-03-03 09:30:00 2638

原创 从 ES5 到 ES6 解锁 JavaScript 私有变量

从 ES5 及更早版本的闭包模拟到 ES6 私有字段的正式引入,JavaScript 私有变量的演变实现了更严格的封装,本文将详细介绍相关内容。

2025-03-01 09:45:00 633

原创 ES5 vs ES6 中 Object.defineProperty() 不同

Object.defineProperty() 是 ES5 引入 的方法,用于在对象上精确定义或修改属性,特别是控制属性的可写性、可枚举性、可配置性 和 getter/setter。在 ES6 中,它仍然可用,但随着 class 语法、Proxy、Reflect 的引入,一些功能可以用新的方式实现。

2025-02-28 09:45:00 1046

原创 前端必备!深入解析 Class 降级

class 降级主要是为了兼容老旧浏览器,特别是 IE11 及更早版本。主要方式有手动降级(转换为 ES5 构造函数和原型继承)和使用 Babel 自动转换。

2025-02-27 09:15:00 1730

原创 分页点击太快数据混乱?精准获取最后加载内容

原因: 网络请求是异步的,快速点击时,后发的请求可能比先发的请求更早返回,导致页面数据错乱。

2025-02-26 09:00:00 2100

空空如也

空空如也

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

TA关注的人

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