自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 玩转vite性能优化

Vite 本身因其原生 ESM、基于esbuild的极速构建和开发性能而被视为性能优秀的构建工具。但在大型项目中,Vite 性能依然可以进一步优化,主要可以从和两大方向入手。

2025-07-29 07:37:06 889

原创 Babel AST 魔法:Vite 插件如何让你的 try...catch 不再“裸奔”?

摘要 本文介绍了一个Vite插件的开发过程,该插件旨在解决前端开发中try...catch块捕获错误后未记录的问题。核心功能是通过AST转换自动在catch块中注入console.error(error)语句,确保错误能被记录。实现步骤包括:1)创建Vite插件框架;2)利用Babel工具链解析和转换代码;3)识别并修改CatchClause节点;4)处理特殊情况如空catch块。开发过程中需要注意Babel API的正确使用方式,以及针对不同文件类型(如Vue中的JSX)的正确解析配置。

2025-07-27 16:43:53 580

原创 为什么 JavaScript 中 ‘str‘ 不是对象,却能调用方法?

本文探讨了JavaScript中字符串原始值与包装对象的区别。字符串字面量(如'hello')是原始值而非对象,但通过自动装箱机制可以调用方法:JS引擎会临时将其转为包装对象调用方法后销毁。设计上采用原始值而非直接使用包装对象,主要考虑性能(原始值更轻量)、语义清晰(避免引用比较问题)和开发便利性。现代引擎对自动装箱有充分优化,性能影响极小。包装对象仅在需要对象特性时使用,如添加属性或作为WeakMap键。这种设计平衡了性能与功能,体现了JS的灵活性。

2025-07-06 12:17:31 535

原创 基于vue2实现一个简单的minVue

基于Vue2实现一个简单的双向绑定minVue框架实现模板插值功能,通过正则匹配{{}}表达式并用data中的数据替换使用Object.defineProperty进行数据劫持,在getter中收集依赖,在setter中触发更新通过编译模板时记录更新回调函数,实现数据变化时更新视图后续计划实现v-text、v-model、v-click等指令功能整体实现了一个简易版的Vue响应式系统,展示了Vue2核心的双向绑定原理。代码示例完整,包括模板编译、数据代理、依赖收集等关键部分的实现

2025-07-04 18:48:55 664

原创 自己实现一个简单版 Pinia

if (!返回一个函数useStore(),用于组件中调用内部调用 pinia 的useStore(),传入storeId和setup逻辑注入 pinia 实例,从 provide 中获取,确保 store 可以在全局访问。

2025-06-23 22:44:11 322

原创 npm一键配置-源更换、代理配置,解决npm安装慢问题

如何快速对npm进行配置,替换npm中慢速的源,提高npm的安装效率

2024-04-16 21:23:34 1144

原创 想让自己的form更灵活?教你如何自定义angular form组件

angular 表单里面需要使用 自定义组件时,想要方便的使用formGroup的formControlName,需要自定义组件的formControlName属性, 如何去自定义组件的formControlName属性呢?

2024-04-16 21:12:39 710

原创 一文彻底搞懂providedIn的所有选项,除了root还能选择啥

当我们在创建 angular 的服务时,`providedIn`的选项默认都是`root`,有的小伙伴就会问了,这个`providedIn`是做什么的,除了 root 还能填其他值嘛 🤔。

2024-04-14 13:44:52 1674 2

空空如也

空空如也

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

TA关注的人

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