分类 · 文章

前端技术

前端框架、工程化、性能优化、跨端开发

共 110 篇文章

从零实现一个带虚拟滚动的 Select

从零实现一个带虚拟滚动的 Select:原理、踩坑与 el-select-v2 对比 面试时被问"你封装过什么组件",只会答"封装过 table、form"是不够的。 这篇文章记录一个真正能体现高级前端水准的作品:带虚拟滚动的下拉选择器。 …

JavaScript的this指向问题又让我加了个班

凌晨1点,我盯着屏幕上诡异的Cannot read property 'xxx' of undefined错误,第六次刷新页面后终于意识到:又是this的锅。那天本可以准时下班,却因为一个嵌套回调中的this指向问题,硬生生调试到深夜。如果…

Hooks 原理:把"每次重跑的函数"变成"有记忆的组件"

Day15 把 Fiber 架构拆开了:渲染变成了可中断的工作队列,状态藏在双缓存树里。今天在这个地基上回答一个更贴近日常的问题:函数组件每次渲染都会整个重新执行一遍,那 useState 保存的状态到底存在哪里?凭什么函数执行完就"消失"…

Codex 只读审查的权限边界:任务文件是谁写的?

Codex 只读审查的权限边界:任务文件是谁写的? 只读审查,任务文件为何更新 一次 Codex 审查没有修改仓库代码,却留下了新的任务 JSON。看到这种现象,先别把它判成“只读沙箱失效”。更值得追问的是:文件由哪个进程写入,read-o…

把地图数据画出来:Leaflet + 搜索 API 做商家分布图

做本地商家调研时,我拿到过一份 200 行的表格:商家名、评分、地址、排名。表格里看半天,看不出「哪片区域密、哪片区域空、我的店被谁围着」。后来把这些点画到地图上,问题十秒内一目了然——这就是地图可视化的价值:坐标数据放在表里是数字,放在地…

百万行PR也能顺滑滚动,GitHub靠的不是再加一层虚拟列表

超大代码评审卡顿,通常不是“行数太多”这么简单。GitHub公开的极限样本包含2200个文件、超过100万行改动和400多条行内评论。它真正难处理的是评论高度会随图片、折叠块和回复框变化。GitHub的核心判断很值得复用:确定高度与未知高度…

Flutter 获取 iPhone Duo 预留区位置

摘要 tw\_iphone\_duo\_reserved\_region 将 iOS 当前激活的遮挡区域转换为 Flutter 窗口逻辑坐标中的 Rect。需要为自定义界面避开摄像头等局部遮挡时,可以读取这些矩形并自行调整布局。本文先说明如…

第 19 天|Preferences:轻量缓存与状态恢复

##### 本篇看点 阅读目标:理解 Preferences 的轻量键值边界,并和 RDB 的业务列表场景区分开。 核心问题:Preferences 适合轻量键值,不适合承载复杂业务列表。 对比迁移:对应 iOS UserDefaults …

uni-app 微信小程序计算顶部区域(自定义导航栏、跨端适配)

> 面向初学者:从状态栏、导航栏、胶囊按钮开始,理解微信小程序自定义顶部区域的计算逻辑,并完成一个可复用的顶部导航组件。 一、为什么“顶部区域”容易算错? 在微信小程序中,页面顶部通常不是一个简单的 44px 容器,而是由多个区域叠加而成:…

📱iPhone Duo 开屏动画咋实现的?

GIFIPHONE.gif前段时间苹果发布会上看到iPhone Duo的开屏动画很是惊艳。iPhone Duo 的开屏动画,其核心是一种渐进式模糊与虚化过渡效果。当你展开或折叠手机时,外屏的画面会自然地逐渐模糊,仿佛消融并“融化”进内屏,而…

LLVM

LLVM / Clang 编译器架构 一、核心思想:LLVM 解决了什么问题? 传统编译器痛点: 一门编程语言如果需要跨平台(Windows / macOS / Linux / ARM / x86),需要为每一套平台单独编写对应的编译工具,…

VibeCoding 一套 Admin 系统,五种技术栈实现

后台管理系统的需求几乎不需要解释:登录、用户、角色、菜单、字典、日志、组织、Dashboard,谁家做的都差不多。正因为需求高度同质,它成了一个理想的对照实验场——同一份需求、同一套数据库、同一份接口契约,用五种技术栈各写一遍,差异会出现在…