前端技术文章
-
用 Vite 的 mode 和 .env 文件管理构建期配置,再用公开的运行期配置入口承载部署差异,理解 import.meta.env 的静态替换边界并避免把敏感信息打进前端产物。260 收藏 -
URLSearchParams.delete(name) 会删除指定键的全部参数值。本文从重复查询键出发,说明最小写法、URL 回写、delete(name, value) 的区别、浏览器兼容边界和可复用代码。118 收藏 -
结合本地主动关闭意图与 CloseEvent 字段记录断开,说明1000、1006与 wasClean 的判断边界,给出单连接状态封装,并区分关闭事实与恢复策略。410 收藏 -
ReadableStream.getReader() 的关键不是一次性拿到完整文件,而是取得一个 reader 后反复调用 read() 消费数据块。本文从文件流上传场景出发,说明锁定语义、Uint8Array 分块、fetch 请求体、完成与取消处理,以及默认 reader 和 BYOB reader 的选择边界。202 收藏 -
Request.signal 本身不能直接调用取消方法,正确做法是在创建 Request 时绑定 AbortController.signal,发出 fetch 后调用 controller.abort(),再区分主动取消、超时和普通网络错误。本文还说明响应体读取阶段、signal 单次使用和生产发布检查边界。300 收藏 -
用最小 JavaScript 示例说明 queueMicrotask 与同步代码、Promise.then、setTimeout 的执行顺序,解释微任务队列的先进先出和回调内再次入队的边界。209 收藏 -
JavaScript Promise.any 会忽略先失败的候选,返回第一个 fulfilled 值;本文用原创示例说明调用方式、AggregateError 处理、输入顺序与和 Promise.race、Promise.all 的边界。437 收藏 -
用 CSS prefers-reduced-motion 响应用户的减少动效偏好,在 reduce 状态关闭非必要 animation、transition 与平滑滚动,同时保留必要的状态反馈,并说明规则不生效时的排查边界。211 收藏 -
用 CSS :has() 根据子元素的 invalid、checked 或兄弟关系选择父元素,掌握直接子代、兼容降级、特异性与性能边界。446 收藏 -
用 aspect-ratio 固定媒体卡片的宽高关系,再配合 object-fit 处理不同来源图片,让网格列宽变化、图片加载和长标题都不会破坏卡片比例。498 收藏 -
通过跨三行的卡片与行 subgrid,共享父级标题、说明和操作轨道;给出完整 HTML/CSS 配方、普通网格降级规则,以及换行、间距与新增字段的处理边界。253 收藏 -
animation-composition 用 replace、add、accumulate 决定关键帧效果怎样和元素原有值合成。本文用 transform 和多动画声明说明三种语义、顺序映射、简写重置与降级边界。221 收藏 -
Vite 的 import.meta.glob 可以根据文件模式批量生成模块映射。本文从默认懒加载开始,说明 eager、命名导入、多模式排除、query 资源加载和字面量参数边界。157 收藏 -
解释localStorage只保存字符串的原因,通过JSON编码、版本字段和受控字段恢复对象,区分键缺失、损坏、访问与写入失败,并提供单键重置方案。283 收藏 -
用 CSS line-clamp 把卡片摘要限制在固定行数:解释 overflow 裁剪、标准写法、旧版 -webkit-line-clamp 兼容组合,以及响应式宽度下的常见边界。352 收藏