Posts
我发布过的全部文章。
Nuxt.js 实战 (二):配置 Eslint、Prettierrc、Husky等项目提交规范
发布日期:约 3 分钟这篇文章记录了在 Nuxt 项目中配置 ESLint、Stylelint、Husky、Lint-staged 与 Commitlint 的过程,建立起统一的代码规范与 Git 提交校验流程。
浏览器渲染原理:从解析 HTML 到屏幕成像
发布日期:约 6 分钟这篇文章梳理了浏览器从解析 HTML 到屏幕成像的完整渲染流程,包括样式计算、布局、分层、绘制、分块与光栅化,并解释了 reflow、repaint 和 transform 高效的原理。
Vite 打包优化:通过 manualChunks 手动分包
发布日期:约 3 分钟这篇文章以 Vue 3 项目为例,介绍了使用 Vite 的 manualChunks 配置将第三方依赖单独打包的优化方法,并总结了代码分包带来的缓存与加载优势。
浏览器进程与线程:从进程模型到事件循环
发布日期:约 7 分钟这篇文章讲解了浏览器的进程模型、渲染主线程的工作方式与事件循环机制,并结合实例说明了 JS 单线程为何会阻塞渲染以及浏览器如何通过异步避免卡顿。
JavaScript 动态执行代码的几种方式
发布日期:约 1 分钟这篇文章对比了 eval、setTimeout、动态 script 标签和 new Function 这几种在 JavaScript 中动态执行字符串代码的方式,分析了各自的执行时机与作用域特点。
TypeScript 技巧:用元组从数组生成联合类型
发布日期:约 1 分钟这篇文章介绍了一个 TypeScript 开发小技巧:通过 as const 将数组转为元组,再利用索引访问类型生成联合类型,让类型与数据保持一致。
HTML 资源提示:async、defer、preload 与 prefetch
发布日期:约 1 分钟这篇文章介绍了 HTML 资源提示符中 async、defer、preload、prefetch 和 module 的作用与区别,解释了它们如何优化页面资源加载。
为什么要有箭头函数:消除函数的二义性
发布日期:约 2 分钟这篇文章从函数的二义性出发,解释了 JavaScript 中箭头函数存在的原因,并对比了箭头函数与 class 在调用方式、this 和原型上的差异。
对象解构与迭代器的猫腻?
发布日期:约 2 分钟这篇文章介绍了对象解构与数组解构的原理,解释了为什么普通对象不能直接用于数组解构,并演示了通过给 Object.prototype 添加 Symbol.iterator 来使等式成立的方法。