在 JavaScript 里保证数组插入唯一性,首选用 Set 去重后插入;频繁操作且不在意顺序时用 includes 查重。用错场景——比如用 indexOf 做大数组去重——会把 O(n) 拖成 O(n²)。本文用最小示例讲清三种做法的取舍与失败分支。
echarts 仪表盘样式有 gauge 系列、graphic 组件和主题包三条路。新手用 gauge 系列最稳,它封装了刻度、指针与进度环;要高度定制外观再上 graphic,换肤才用主题包。本文给可运行配置、预期效果与三个常见失败。
下载进度百分比是已接收字节除以总字节算出来的,服务端不给 Content-Length 就没有分母。本文给出 XHR progress 事件、fetch 配 ReadableStream 累计、服务端补自定义总大小头三种取法,每段都配可运行代码、预期输出与跨域、压缩两类失败分支,并说明大文件为什么不适用。
低代码画布里的拖拽不会自己导致栈溢出,真正压爆调用栈的是响应式副作用改写了它自己的依赖。本文给出 Vue 警告与 RangeError 两类报错的区别、写回同一数据源、watch 闭环、递归组件缺出口三个成因的最小复现与改法。
ref 是 React 跨渲染保管的同一个盒子,改它不会触发重渲染。本文给出 DOM 聚焦、非受控组件、跨组件转发三个最小示例,说清渲染阶段读 ref、拿 ref 驱动渲染、父组件改子组件 ref 三类高频错误的改法。
Vue3 里 watch 一个对象,只改某个属性却没触发回调,根因是监听了对象引用而没感知内部变化。本文给出三种写法与取舍:deep 整体监听最省心但有性能开销、getter 精确监听最划算、替换新引用适合 ref 场景,并附解构掉响应式等失败分支。照着选就能让回调按预期触发。