-
customRef是Vue3提供的高级响应式API,用于自定义ref的getter和setter行为;它通过手动调用track()和trigger()控制依赖追踪与更新触发,从而实现输入防抖——每次输入清除旧定时器、延迟后才赋值并触发响应式更新。
-
forEach用于执行操作且返回undefined,适合处理副作用;map用于数据转换并返回新数组,支持链式调用,应根据是否需要新数组选择方法。
-
移动端橡皮筋回弹无法仅靠overscroll-behavior:none禁用,因其不作用于根元素;须结合html/body{overflow:hidden}、独立滚动容器及touchmove事件拦截(passive:false)方可可靠禁用。
-
CustomEvent构造函数创建自定义事件需传入事件名和含detail属性的配置对象,detail为必需字段用于携带任意数据;通过dispatchEvent触发,addEventListener监听时通过event.detail读取数据;可选bubbles、cancelable等配置控制事件行为。
-
Symbol.unscopables仅控制with语句中属性是否被注入词法作用域,不提供任何安全保护;其值为对象,键为属性名、值为布尔值,true表示该属性在with块内不可通过标识符访问,但所有其他访问方式(如obj.prop、Reflect、继承等)均不受影响。
-
readonly的值会随表单提交,disabled的值则完全不提交;前者可聚焦、复制,后者不可交互且置灰,且disabled对所有表单元素生效而readonly仅适用于text/password/textarea。
-
label的for属性必须严格匹配控件的id才能正常触发点击和保障可访问性;for只通过id查找元素,与name无关;id必须唯一、大小写敏感、无多余空格或不可见字符;radio/checkbox每项需独立id和for;嵌套写法虽简洁但有局限,显式for+id更稳定;动态生成时需确保id唯一且时机正确。
-
BEM通过“块__元素--修饰符”结构解决CSS作用域失控问题:user-card__avatar--large明确标识模块归属、部件身份与状态变体,避免同名类冲突与语义混淆。
-
纯HTML无法实现侧边抽屉效果,因其无交互、无状态、无样式控制能力;需HTML提供语义化结构、CSS控制定位动画、JS管理状态与可访问性。
-
动态创建<style>标签插入CSS最轻量可控,应使用textContent而非innerHTML;insertRule适合精准增删规则但需注意索引偏移和兼容性;务必通过data-*属性标识并管理样式节点以防重复和泄漏。
-
保留大小是定位内存泄漏最核心指标,指对象被回收时能释放的独占内存总量;它比浅层大小更精准、比深层大小更真实,MAT中按RetainedHeap排序可快速定位泄漏源头。
-
BFC是解决浮动侧边栏高度不一致导致底色断层的标准解法,推荐overflow:hidden触发;底色伪装和边框拉伸属临时补救,本质未解决问题;现代布局应优先选用Flex或Grid。
-
<time>标签仅在需向机器明确传达时间语义时使用,必须添加符合ISO8601标准的datetime属性(含时区),内容与属性逻辑一致,不可替代表单控件,错误格式将导致结构化数据失效或可访问性问题。
-
动态路由中基于ID的数据预取核心是页面挂载前发起请求,主流方式为路由守卫(如beforeEach)或setup中useRoute配合异步组件;需校验ID、错误跳转404、AbortController取消请求、服务端预取需同构,避免盲目预取。
-
Object.getOwnPropertyDescriptors能获取getter/setter,因为它返回完整属性描述符(含get、set等元信息),而Object.assign和展开运算符仅复制值且忽略访问器;克隆必须用Object.defineProperties配合其结果。