前端技术文章
-
在 React 中调用 setState 更新数组状态时,若直接对原数组调用 sort()(会修改原数组),即使内容已变,React 也可能因引用未变而跳过重渲染;而使用 [...arr].sort() 创建新数组,能确保引用变化,触发正确更新。 在 React 里用 setState 更新数组状态448 收藏 -
文章 · 前端 | 1星期前 | 前端 · javascript · 滚动容器 · 用户体验 · 浏览器 API · JavaScript scrollIntoView container: nearest 嵌套滚动容器 前端滚动
嵌套面板里定位表单错误、消息或搜索结果时,默认 scrollIntoView 可能把整页一起滚走。本文拆解 container: nearest 的作用范围、兼容回退和验收写法,帮助前端保留用户当前的页面上下文。447 收藏 -
TypeScript 条件类型左侧使用裸类型参数时,会对联合类型逐成员计算。本文用 ToArray 示例解释分发原因,并说明如何用方括号关闭分发。447 收藏 -
一、引言:什么是 MxServiceCode?在开发 Web CAD 应用时,我们经常会遇到一些需要在服务器后台处理图纸的需求,比如批量转换格式、提取图纸数据等。这时候,云图开发包中的 MxServiceCode 就派上大用场了。简单来说,MxServiceCode 是一个典型的 CAD 后端服务层446 收藏 -
Nuxt 3 中无法直接使用 this.$refs,但可通过 getCurrentInstance().refs 获取所有已挂载的模板 ref,实现类似 Nuxt 2 的批量遍历逻辑,避免为每个组件重复声明 ref 变量。 Nuxt 3 中无法直接使用 `this.$refs`,但可通过 `getC445 收藏 -
文章 · 前端 | 1星期前 | 前端 · 路由 · javascript · 兼容性 · 浏览器 API · 嵌套路由 JavaScript URLPattern URLPattern groups URLPattern test 浏览器 API
用 JavaScript URLPattern 匹配 /:space/:project/:page 这样的嵌套路由,先用 test 判断是否命中,再从 pathname.groups 取参数,并通过特性检测为旧浏览器保留回退路径。445 收藏 -
原生 dialog 和 popover 关闭时直接消失,通常不是 opacity 写错,而是 display 的离散切换没有参与过渡。本文用一组不依赖框架的 CSS/HTML 示例,解释 @starting-style、display、overlay 与 transition-behavior 的配合方式,并给出旧浏览器的降级边界。444 收藏 -
普通 CSS 自定义属性更像字符串,直接参与渐变时常常只能跳变。本文用 @property 注册颜色属性,说明 syntax、inherits、initial-value 的配合方式,并通过渐变、无障碍和旧浏览器降级检查完成验收。443 收藏 -
Web Worker 不能直接操作页面 DOM,正确做法是让 Worker 计算数据,再用 postMessage 回传,由主线程统一更新页面。443 收藏 -
文章 · 前端 | 2个月前 | 前端 · javascript · AbortController · 表单提交 · AbortController 旧响应覆盖 前端重复提交 loading锁 fetch取消 按钮防抖
用一个可复制的前端配方解决按钮重复提交:解释连续点击为什么会造成旧响应覆盖新状态,并用 loading 锁、AbortController、最新序号和 finally 恢复按钮状态。442 收藏 -
用 CSS field-sizing: content 让文本输入框按内容收缩和增长,同时用 min-width、max-width 与 fallback 控制窄屏布局和旧浏览器兼容。442 收藏 -
批量导入 CSV 时,解析、校验和结果展示最好拆成可观测的前端流水线:主线程只负责触发与通知,Web Worker 分片处理数据,队列状态和失败原因由明确的质量门禁收口。441 收藏 -
用 View Transitions API 给列表新增、删除和筛选加上稳定的视图过渡,同时保留不支持浏览器和减少动态效果用户的可用回退。441 收藏 -
ResizeObserver 回调里直接改尺寸,容易触发布局反馈和连续通知。本文用 pending 标记、requestAnimationFrame 与 applyLayout 拆开读写阶段,说明如何定位循环回调并保留可验收的布局更新链路。439 收藏 -
联合类型(Union Types)允许通过管道(|)为变量声明多种可选类型,这意味着在实际赋值时,只要值符合已设定的任意一种类型,就可以正常使用。 注意:这里必须赋值为指定类型,换成其他类型,系统就会直接报错。 创建联合类型的语法格式如下: Type1|Type2|Type3 实例 声明一个联合类型435 收藏