一文读懂:什么时候该用防抖,什么时候该用节流 在 JavaScript 开发中,面对像“滚动页面”“窗口缩放”或者“搜索框输入”这种高频触发的事件,如果代码每触发一次就执行一次任务,电脑很容易“累死”(浏览器卡顿、服务器压力大)。 为了解决这个问题,我们通常会用到防抖(Debounce)和节流(Throttle)。它们就像是给高频事件安上了“减速带”或“过滤器”。 防抖(Debouncing)防抖的核心逻辑是:当事件触发时,不立刻执行,而是等 2026-01-14 #JavaScript进阶
把大象装进冰箱分几步?Node.js 大文件“切片上传”深度解析 在用 Node.js 和 JavaScript 开发文件上传功能时,如果文件特别大(比如好几个 GB 的高清视频或者压缩包),一次性上传不仅慢,而且万一中途网络断了,就得从头再来,非常让人崩溃。 这时候就需要“断点续传”。断点续传说白了,就是把大文件切成一小块一小块来传,传完了再拼起来;中间万一断了,下次只传还没成功的那几块就行。下面用大白话加简单例子,把实现断点续传的几个核心步骤说清楚。 文件切 2026-01-12
2026年了,你还在死守Vue2?这不叫稳,叫“自杀式”维护 这是Vue从入门到精通系列文章的第14篇,今天我们不讲代码,讲讲那个让人又爱又恨而且争议不断地–Vue2的告别舞台和Vue3全面登场。讲讲Vue2和Vue3这两个版本到底差在哪,又是否值得我们集体升级到Vue3. 聊聊背景尤大之前在访谈里提过,Vue3 的念头在 2018 年底就萌生了。那时候 Vue2 才两岁半,但在迭代飞快的前端圈,两岁半的代码库已经写满了“债”。 比起通用软件动辄3年,5年的 2026-01-10 Vue #Vue, JavaScript进阶
图解 Vue2 diff 算法:首尾四向对比核心逻辑全拆解, 告别死记硬背八股文 这是Vue从入门到精通系列文章的第13篇,上一篇文章中提到了虚拟DOM, 今天花点时间重点讲讲里面非常核心的内容–diff算法。 很多人在看到这一块的时候都感觉头大,但为了面试还是硬着头皮去背那些八股文。与其花时间背八股文,不如克服畏难心里,跟着我一起来看看diff算法的奥秘,它是否又真的有那么难。 讲diff算法首先我们需要明确一个问题,它是为了解决什么问题才引入了。前文我们提到为了解决直接 2026-01-06 Vue #Vue, JavaScript进阶
原生 DOM 真的慢吗?为什么现代框架都迷恋虚拟 DOM? 这是Vue从入门到精通系列文章的第12篇,今天我们来说说虚拟DOM吧。 根据过去该系列文章的阅读数我发现,大家不太爱看有大段代码的文章,所以这次也就不做这一块的代码剖析,有兴趣的读者可下载源码慢慢品味。 什么是虚拟DOM? 怎么出现的?虚拟DOM也不是什么高大上的东西,它本质上就是个普通的 JavaScript 对象,它既不是什么高深的黑科技,也不是多此一举的冗余设计,而是前端工程师为了解决“原生 2026-01-04 Vue #Vue, JavaScript进阶
Vue进阶系列第11篇--说说你对vue的mixin的理解,它的本质是什么?有什么应用场景? 这是Vue从入门到精通系列文章的第11篇,今天来讲讲Vue2中已经弃用的一个特性–Mixin。Mixin 在Vue2 版本中扮演者非常重要的角色,很多 Hack 技巧和代码的复用上都依赖着Mixin。虽然 Vue3版本弃用了,但是,法拉利老了还是法拉利,一起来认识一下吧。 Mixin是什么咱们先说说Mixin到底是啥——它是面向对象编程里的一种类,里面装着能重复用的方法。其他类不用费劲继承这个Mi 2026-01-01 Vue #Vue, JavaScript进阶
Vue进阶系列第10篇--nextTick 工作原理揭秘:附核心代码实现与解析 不出意外这应该是2025年该公众号更新的最后一篇文章,在这里感谢大家的关注与陪伴。愿大家新的一年代码零 bug,接口全 200,升职加薪,一路开挂。 这是Vue从入门到精通系列文章的第10篇,在上一篇文章中讲了Vue中的nextTick的定义和几种使用场景,今天我们结合源码来说说nextTick的原理和实现。 nextTick 的源码在 Vue 项目的 /src/core/util/next- 2025-12-28 Vue #Vue, JavaScript进阶
Vue进阶系列第9篇--你真的懂nextTick吗?我表示很怀疑 这是Vue从入门到精通系列文章的第9篇,今天我们来讲讲Vue中的nextTick的定义和几种使用场景,下一篇单独开一篇讲解它的实现原理。 为什么我会对nextTick“情有独钟“呢,这里还有一个小故事。记得最早接触前端开发解除Vue的时候,由于自己属于看了2周Vue官方文档就开始写业务的半路出家和尚,编程能力属于菜狗都算不上那种。 有一次有个业务逻辑是需要再页面更新之后才进行数据变更的,当时哪知道 2025-12-28 Vue #Vue, JavaScript进阶
Vue进阶系列第8篇--Vue组件间通信方式都有哪些? 今天内容略粗糙(码字有点累),而且知识点有点多,不想看全文的可以直接看总结,浓缩的就是精华。 这是Vue从入门到精通系列文章的第8篇,今天我们来讲讲Vue面试必问的一个问题–Vue组件间通信方式都有哪些? 一、组件间通信的概念开始之前,我们先把“组件间通信”这个词拆开来理解: • 组件• 通信 我们都知道,组件是Vue最强大的功能之一,Vue中每一个.vue文件都可以视作一个独立组件。而通信 2025-12-26 Vue #Vue, JavaScript进阶
Vue进阶系列第7篇--对象添加属性之后页面没有刷新,怎么回事? 这是Vue从入门到精通系列文章的第7篇,今天我们来讲讲Vue中非常常见的一个问题:给对象添加属性之后页面没有刷新。 在Vue开发的时候,很多开发者都会碰到这样的问题:直接给响应式对象加新属性后,数据本身已经更新了,但页面却没跟着刷新。 这不是Vue的漏洞,而是它的响应式系统底层工作方式导致的。这篇文章会从问题根源入手,分别讲Vue2和Vue3两个版本的解决办法,还会补充一些常见的注意点。 核心 2025-12-21 Vue #Vue, JavaScript进阶