首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
高性能Javascript
ErpanOmer
创建于2024-12-31
订阅专栏
学一学优雅的javascirpt
等 80 人订阅
共52篇文章
创建于2024-12-31
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
用好了 defineProps 才叫会用 Vue3,90% 的写法都错了
Vue 3 的 Composition API 给开发者带来了更强的逻辑组织能力,但很多人用 defineProps 的方式,依然停留在 Vue 2 的“Options 语法心智”。本质上只是把 pr
为什么我们用了 Vite 还是构建慢?——真正的优化在这几步
Vite 凭借其基于原生 ESM 的开发体验和极速冷启动,被誉为“现代前端构建的终极解决方案”。然而,许多开发者在将老项目迁移到 Vite 或新项目上马后,仍会面临以下现实: 冷启动是快了,但热更新开
JavaScript 里的 !0、!1 到底是啥?聊聊那些压缩器最爱的“极简写法”
在阅读 JavaScript 源码,尤其是压缩后的代码时,很多人常常会遇到这样的片段: ``` if (!0) { /* ... */ } // 等价于 if (true) if (!1) { /
用 Intersection Observer + CSS Houdini 实现更丝滑的滚动视差动画
在如今用户体验越来越“挑剔”的前端世界里,**滚动视差(Parallax Scrolling)**已经成为提升页面沉浸感和高级感的标配。而过去我们实现视差动画时,往往借助于 scroll 事件 + J
零拷贝、零内存复制、零中间态:现代 Web 性能优化的“零”哲学实战
在现代 Web 应用中,随着客户端计算密度增加、数据交互量激增,“性能优化”早已不是简单的 gzip 压缩或 CDN 缓存这么肤浅的操作。真正的性能瓶颈,往往出现在你看不见的地方:内存复制次数、系统调
React Concurrent Mode 到底解决了什么问题?
01. 页面卡顿的问题到底出在哪? 我们先抛开 Concurrent Mode,看一个大家都见过的 React 性能问题: 你输入一个字母,页面就卡顿 300ms,CPU 一直飙高。这并不是 Reac
为什么 React 页面依然卡顿?从主线程调度看本质
在 React 的世界里,我们享受着组件化开发、声明式 UI、Hooks 的优雅设计。但当项目日益复杂,用户量暴增时,很多开发者会发现:明明用了 React 18,性能优化也做了,但页面依旧卡顿,交互
现代 React 应用的数据分发模型:全局 Store vs Context vs Server Component,谁才是你的最优解?
从 Redux 到 Zustand,从 React Context 到 React Server Component,前端开发者在过去五年中见证了一场「数据分发机制」的革命。如果说过去我们用 Redu
大型 React 应用的性能瓶颈:重构 useEffect、缓存策略、调度优先级
前言:90% 的性能问题,都不是代码写得不优雅,而是机制没理解透 很多人写 React 写了几年,一看项目性能拉垮就开骂“React 慢”、“虚拟 DOM 垃圾”。但其实问题大多数出在下面几个地方:
Web Worker + OffscreenCanvas,实现真正多线程渲染体验
前端开发常说“JavaScript 是单线程的”,但如果你正在做动画、数据可视化、图像处理、游戏开发、或任何基于 Canvas 的复杂渲染,你一定体会过——主线程的“卡顿地狱” 。 这种时候,Web
如何优雅打断 JS 任务?AbortController 正确使用方式
前端开发者常常需要处理“取消任务”的场景:接口请求发出后用户快速切换页面、组件卸载、搜索防抖中断上一次请求等等。这种需求本质上就是**“任务中断”**。 但在过去,JavaScript 没有原生取消异
滚动加载还在绑 scroll?你可能忽略了浏览器内置的“观察者”
在现代前端开发中,页面中某些元素是否出现在视口内,决定了懒加载、广告曝光、内容触发等一系列行为。最常见的做法当然是监听 scroll 事件,然后手动计算 getBoundingClientRect()
为什么你的输入总是卡顿?从 input 到响应的浏览器事件链 + requestIdleCallback 提速实践
在构建交互丰富的 Web 应用时,input 输入框的实时响应性能看似简单,实则暗藏玄机。你是否遇到过这种场景: 表单字段绑定了输入联想或校验逻辑; 代码看起来很基础,却总是感到输入“卡了一下”; d
为什么 async/await 并不是真正的同步写法?微任务队列的欺骗性同步
我们来深入剖析这个极具迷惑性的现象——async/await 到底是不是“同步写法”? 很多人会说: 但真相是, “像同步” ≠ 同步。async/await 只是一场语法幻觉,它在执行机制上仍然根植
为什么 `setTimeout(fn, 0)` 并不会立即执行?一次事件循环背后的真相
很多 JavaScript 开发者第一次接触 setTimeout(fn, 0) 时,都会产生这样的疑问: 更让人困惑的是,把它放在某些异步场景中,它执行得“似乎又慢了一拍”。如果你曾尝试用 setT
用纯 CSS 实现丝滑的动态宽度动画,你真的掌握了吗?
在日常开发中,我们经常需要让元素的宽度根据内容变化而产生动画效果,例如按钮文字变长、提示框内容更新等。你可能第一反应是加个 transition: width 0.3s,看起来的确能动。但细节打脸的时
深入解析 View Transitions API 的 DOM 快照差分算法
现代 Web UI 越来越强调流畅、连贯的用户体验。然而传统的 DOM 操作导致内容切换生硬,缺乏过渡动画。为此,Chrome 团队提出了一项划时代的标准草案 —— View Transitions
浏览器预加载扫描器的词法分析器实现
这篇文章深入讲解浏览器内部在预加载(Preload Scanner)阶段是如何通过一个轻量级的词法分析器(Lexer) ,以超快速度提取 <link>、<script>、<img> 等关键资源标签,从
🚀如何把 Wasm 模块部署到 CDN + 动态懒加载?性能和体验双赢的实战指南
在构建现代 Web 应用时,WebAssembly(Wasm)已成为性能关键路径上的“加速器”。但与此同时,Wasm 模块往往体积不小,如果直接随页面加载,很容易拖慢首屏速度,破坏用户体验。 于是一个
🚀JavaScript 如何实现 Wasm 多线程图像处理?一场性能与线程的较量
在浏览器中做高性能图像处理,很多开发者的第一反应是:“这不是前端能干的事。”然而,随着 WebAssembly(Wasm)+ 多线程的支持逐步成熟,我们终于有了打破传统 JS 单线程天花板的钥匙。 本
下一页