-
动态路由中基于ID的数据预取核心是页面挂载前发起请求,主流方式为路由守卫(如beforeEach)或setup中useRoute配合异步组件;需校验ID、错误跳转404、AbortController取消请求、服务端预取需同构,避免盲目预取。
-
关键在于闭包是否意外延长本该即死对象的寿命,尤其当注册为事件监听器、缓存在长生命周期对象中或捕获大尺寸上下文时;需结合GC日志、内存分配追踪与堆快照差异定位高危闭包。
-
fetch()的priority选项根本不存在,不是标准API,所有浏览器均不支持;实际调用会报TypeError或静默忽略,真正影响优先级需依赖preload、发起时机、上下文等间接手段。
-
动画在页面切到后台后“停止”不是bug,而是浏览器主动节电行为;直接设animationPlayState="running"无效,因时间轴未重置、iOSSafari兼容性差且终态无法重启,必须通过class移除→强制reflow→class重加三步触发DOM重解析实现可靠重播。
-
BEM在小项目中不必强制使用,应按复用性判断:仅当组件跨≥2个路由/父组件复用时才启用BEM建模;纯页面独有样式可用单class,工具类与BEM可并存但需分层清晰。
-
伪元素边框不会撑大盒子——前提是用position:absolute定位并设content:"",使其脱离文档流;否则默认display会占据空间。
-
用CSS隐藏滚动条需分浏览器处理:WebKit内核用.container::-webkit-scrollbar{display:none;},Firefox用scrollbar-width:none;或scrollbar-color:transparenttransparent;,均需配合overflow:auto或scroll才生效。
-
Proxy.revocable是实现可撤销代理的关键,它返回含proxy和revoke函数的对象,调用revoke后proxy立即失效且不可恢复;Reflect仅用于trap内规范操作,不提供撤销能力。
-
Webpack插件基于事件驱动,通过监听Compiler和Compilation生命周期钩子实现构建流程控制,如BuildTimePlugin在done阶段输出耗时;Loader则在模块加载时转换源码,如replace-loader替换文本内容;两者协作完成资源处理与流程定制。
-
PostCSS是构建时工具,必须集成于Webpack/Vite等构建流程,无法在HTML中直接运行或浏览器端实时处理;其作用是在编译阶段将CSS规则静态注入HTML的style属性或生成CSS文件。
-
<header>必须作为页面或内容区块的真正头部,承担引导、导航或介绍功能;嵌套过深、包裹过宽或脱离逻辑层级会破坏语义,且与<head>无关。
-
V8引擎对展开运算符的快速路径优化,核心是当展开对象为字面量数组、尾部展开或具有稳定隐藏类时,跳过通用迭代直接生成高效机器码;否则回退至开销较大的Symbol.iterator遍历路径。
-
根本原因是浏览器默认table-layout:auto会因内容动态计算列宽,小屏下易被长文本撑开导致溢出;须改用table-layout:fixed并配合width:100%和显式列宽(如width:20%)或堆叠/滚动等场景化方案。
-
pending阶段主要处理上一轮事件循环中被推迟的系统级I/O回调,如错误处理或资源清理。1.它确保操作系统层面的异常(如TCP连接错误)能被及时处理;2.作为poll阶段的补充,负责执行poll阶段未能处理的待定回调;3.与poll阶段协作,分离主流程与异常处理,提升事件循环的健壮性;4.开发者日常无需直接关注,但在排查底层I/O问题时具有参考价值。
-
必须加消抖(debounce)而非节流,因scroll事件频率远超渲染帧率,裸写位置计算会导致高频重排重绘、侧边栏跳动及页面卡顿;推荐150ms延迟并用clearTimeout清除旧定时器,或改用IntersectionObserver实现零开销吸顶效果。