getComputedStyle 返回最终计算后的绝对值,而非原始CSS声明,已执行单位换算、继承合并、媒体查询生效和CSS变量展开等流程。

Chrome DevTools 里 getComputedStyle 返回的值为什么和 CSS 文件写的不一样?
因为 getComputedStyle 返回的是**最终计算后的绝对值**,不是你写的原始声明。它已经过单位换算、继承合并、媒体查询生效、CSS 变量展开等全部流程。
常见错误现象:getComputedStyle(el).fontSize 返回 "16px",但你在 CSS 里写的是 font-size: 1rem 或 font-size: clamp(1rem, 2.5vw, 1.25rem) —— 这不是 bug,是预期行为。
- 使用场景:调试布局偏移、做像素级动画、校验响应式断点是否生效
-
getComputedStyle不会返回inherit、unset、initial这类关键字,一律转成实际值(比如color: inherit会变成父元素当前计算出的rgb(33, 37, 41)) - 注意性能:频繁调用会触发强制同步布局(forced layout),尤其在循环或 scroll handler 中要缓存结果
React 里用 useRef 拿不到 DOM 元素的 offsetHeight?
多数情况不是拿不到,而是**时机不对**:组件刚 mount 时 DOM 可能还没渲染完成,或者样式还没应用(比如依赖 CSS-in-JS 或动态 class)。
常见错误现象:在 useEffect(() => { console.log(ref.current?.offsetHeight) }, []) 中打印 0,但手动在控制台敲一遍却有值。
立即学习“前端免费学习笔记(深入)”;
- 确保 ref 已绑定到真实 DOM 节点(检查
ref.current是否为 Element,而非 null 或 TextNode) - 如果依赖 CSS 类名或内联样式,加个
requestAnimationFrame延迟一帧再读取:useEffect(() => { requestAnimationFrame(() => { console.log(ref.current?.offsetHeight); }); }, []); - 服务端渲染(SSR)下
offsetHeight永远是 0,必须在客户端环境判断:typeof window !== 'undefined'
Vue 3 的 v-model 绑定 input[type="number"] 时,输入非数字字符后 modelValue 变成空字符串?
这是浏览器原生行为,不是 Vue 的问题:input[type="number"] 在用户输入非法值(如字母、多个小数点)时,其 valueAsNumber 会返回 NaN,而 Vue 的默认绑定逻辑会将 NaN 转为空字符串。
常见错误现象:用户输入 "12.a" 后,v-model 突然清空,光标跳到开头,体验断裂。
- 解决办法不是禁用 type,而是用
@input+.prevent拦截并过滤非法字符,再手动更新绑定值 - 更稳妥的做法是改用
type="text",配合inputmode="decimal"和自定义校验逻辑,保留输入自由度 - 注意兼容性:
inputmode在 iOS Safari 上支持良好,但旧 Android WebView 可能忽略
Webpack 5 的 Module Federation 报错 Container not found 怎么定位?
核心原因只有两个:远程容器没启动,或 host 应用加载远程模块的时机早于容器就绪。
常见错误现象:页面白屏,控制台报 Uncaught Error: Container initialization failed as it has already been initialized 或 Container not found for xxx。
- 先确认远程容器服务已运行且可访问:直接在浏览器打开
http://remote-host/_container/remoteEntry.js,看是否返回 JS 内容 - 检查
shared配置中是否漏写了关键包(如react、react-dom),导致版本冲突引发初始化失败 - Host 端不能在
import()前就调用init;推荐用async函数包裹整个远程模块加载逻辑:const remoteApp = await import('xxx/Component');
跨域、CSP、HTTP 缓存这些外围因素容易被忽略,但它们真会卡在 container 加载的第一步——别急着改代码,先 curl 一下 remoteEntry.js 的响应头和状态码。










