-
:empty仅匹配子节点数为0的元素,空格、换行等会生成#text节点致其失效;:blank兼容性差不可用于生产;JS应使用textContent.trim()判断视觉为空。
-
to.matched数组是实现动态面包屑的首选方式,因其天然反映路由嵌套层级、支持刷新和直接访问、可配合meta过滤与权限控制,并能处理参数化路由和动态标题。
-
计算属性名本身不会通过异步流类型核验,因其本质是同步响应式求值机制,不支持Promise等异步类型;报错实为CI工具链误判,需检查TS类型标注、自定义Lint规则及构建配置是否违背Vue响应式设计原则。
-
place-content:center仅对display:grid或inline-grid容器生效,需确保容器有明确尺寸和多余空间;它控制网格轨道组整体居中,非子项内容居中,且不兼容旧版Safari。
-
ShadowDOM中文字颜色不是body所设,是因为虽color可继承,但用户代理样式(如a默认蓝色)优先覆盖;解决方法是在ShadowDOM内显式设置color:inherit或通过:host定义继承源。
-
必须用:nth-of-type()精准选第N个某类标签,因其仅对同标签兄弟独立计数;而:nth-child()按所有子元素位置计数,混排时易失效。
-
消息列表HTML结构必须用<div>而非<ul>,因<ul>易导致滚动定位异常和动态插入重排问题;应使用<divclass="message-list">作容器、<divclass="message-item">作消息项,并确保唯一id及正确滚动控制。
-
transform非none(含translateX(0)、scale(1)等)必触发新堆叠上下文,使内部z-index仅在该上下文中生效,无法与外部元素比较层级;需通过开发者工具验证或移除transform定位问题。
-
快捷键应避免全局监听,仅在非可编辑元素触发;用e.metaKey||e.ctrlKey兼容多平台;面板用inset-inline-end和scrollbar-gutter:stable避开滚动条;动态渲染⌘/Ctrl符号;支持Escape和遮罩层关闭;组合键冲突需依焦点上下文判定优先级。
-
浅拷贝本身不优化响应式性能,真正起效的是shallowRef或shallowReactive:它们仅代理顶层属性,跳过嵌套对象递归代理,减少依赖收集与getter/setter开销,适用于属性面板等“频繁读、极少深层改”场景。
-
全局事件总线易致内存泄漏,须在组件卸载前手动解绑;Vue2用beforeDestroy,Vue3用onBeforeUnmount并保存handler引用;禁用匿名函数;推荐mitt等无副作用库;优先用provide/inject+defineEmits替代跨层级通信。
-
原型链过深本身不会导致前端自动化测试超时,真正原因是原型方法中的重操作、原型链污染引发的隐式等待,以及递归渲染与深层原型调用的连锁反应。
-
JSON.stringify()直接序列化循环引用对象会报错,因JSON标准不支持循环引用;可通过replacer函数跳过、structuredClone克隆、自定义ID映射或服务端引用协议解决。
-
Tailwind内置shadow类无法控制阴影方向,因其固定y偏移为正、x偏移为0;需用shadow-[...]自定义box-shadow值,如shadow-[-10px_0_10px_-2px_rgba(0,0,0,0.1)]实现向左投影。
-
实现响应式卡片布局的关键是使用Flexbox或Grid结合媒体查询。1.Flexbox通过flex-wrap和flex属性实现一维弹性布局,适合简单排列;2.Grid利用grid-template-columns与auto-fit、minmax函数创建自适应二维网格,更灵活高效;3.媒体查询优化不同屏幕下的间距、字体与排列方式;4.图片设为width:100%确保自适应,内容不溢出。推荐优先使用Grid方案,现代浏览器下简洁且适配良好,老旧浏览器可降级使用Flexbox加媒体查询。