首页 文章 精选 留言 我的

精选列表

搜索[鸿蒙渲染],共9202篇文章
优秀的个人博客,低调大师

React 状态更新后组件不重新渲染?从 Object.is 和闭包陷阱排查一次真实问题

上周帮同事排查一个 React 页面的 bug:点击按钮修改了 state 里的对象属性,接口数据回来了,控制台也打印了新的值,但页面上的数字和列表纹丝不动。代码里明明调用了 setState,也没有报错。这类问题通常不是 React 本身失效,而是新旧 state 在浅比较时被判定为相等,或者更新函数里引用了过期的闭包变量。React 的调度机制只会在 Object.is 比较结果为 false 时才安排 re-render,而很多开发者习惯直接修改原对象再 setState,导致引用没变。另一个常见场景是 useEffect 或事件回调里捕获了旧 state,在异步逻辑中读取到的永远是初始值。文章会从这两个方向拆解真实代码,给出可复现的示例和修复方式,包括不可变更新、函数式 setState 以及 useRef 的合理使用。

优秀的个人博客,低调大师

浏览器事件循环中微任务与渲染帧的竞态:一次滚动卡顿排查

上个月给一个数据看板加了「滚动加载 + 实时高亮」的功能。列表虚拟滚动本身没问题,但用户反馈快速滚动时,屏幕右下角的实时统计数字会偶尔跳变,不是漏掉一帧,而是直接显示成旧值。更让人迷惑的是,这个现象只在 Chrome 上出现,Safari 和 Firefox 反而正常。我最初怀疑是虚拟滚动计算误差,查了两天才发现根因在事件循环里:requestAnimationFrame 回调执行时,Promise.then 里的状态更新已经排队但还没提交,导致读取到的是上一轮 DOM 对应的数据。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册