-
transition-timing-function控制动画速度曲线,ease实现缓入缓出适合多数UI交互,默认值为cubic-bezier(0.25,0.1,0.25,1);linear保持匀速常用于旋转加载;cubic-bezier()可自定义曲线实现精细控制,如回弹效果,提升动效专业感。
-
CSSPaintAPI画圆点必须通过Worklet注册,不能直接写CSS或用canvas模拟;需将painter类放在独立JS文件中,用CSS.paintWorklet.addModule()异步加载后才能生效。
-
缺一不可,漏掉stroke()就什么都看不见;因为moveTo()和lineTo()仅构建路径指令,不触发绘制,必须显式调用stroke()才真正描边显示。
-
threshold仅按可见比例触发,对高矮元素响应不一致且无法保证加载完成;rootMargin通过扩展视口边界实现可控预加载,需带单位(如'200px0px'),配合isIntersecting判断和及时unobserve/disconnect避免重复加载与内存泄漏。
-
暗色模式应通过:root定义语义化CSS变量,同时用@media(prefers-color-scheme:dark)和html.dark类双路径覆盖,配合localStorage持久化与hsl()控制明暗,避免透明度叠加发灰及filter失真。
-
Reflect.set返回值仅反映JS引擎层面的赋值可行性,无法捕获业务逻辑失败;业务校验、权限控制等必须由业务层显式实现,不可依赖其返回值判断业务成功与否。
-
JavaScript模块化关键是匹配运行环境:浏览器需type="module"且路径为URL,Node需.mjs或"type":"module",ESM与CommonJS互操作单向受限,环境不匹配是报错主因。
-
Bootstrap5与TailwindCSS样式冲突主因是二者大量使用同名工具类(如text-center、container)、全局作用域及相近CSS权重,导致后加载或更具体的选择器胜出;常见表现有bg-blue-500失效、flex被.d-flex覆盖、rounded-lg被.rounded截断;根本解法非简单调整加载顺序,而需在tailwind.config.js中启用important:true、用@layerbase重置基础样式、禁用重复的preflight、分离结构(Bootstrap网格)与
-
WeakSet只能存储对象且不阻止垃圾回收,其成员为弱引用,对象被回收后自动从WeakSet中移除;无size属性、不可迭代,仅支持add()、delete()、has()方法,适用于对象标记而非数据存储。
-
localStorage不能直接替换Cookie,因二者语义不同:Cookie自动随请求发送、支持服务端控制字段和HttpOnly,localStorage纯客户端、无自动传输与过期机制、存取需手动序列化且不安全。
-
Props不能直接解构赋值,因其会切断与Vue响应式系统的连接,导致值无法响应更新;应始终通过props.xxx访问,或用toRefs保持响应性。
-
基础组件Props应用TypeScript接口明确定义,命名统一为[ComponentName]Props,必填不加?、可选显式标注,禁用any/Object,按需拆解传入字段,配运行时校验与默认值,并预留扩展字段如extraClass、ariaLabel等。
-
CSScubic-bezier()仅控制属性值随时间变化的速率,不改变运动路径;如配合translateX()或opacity使用,元素仍沿直线运动,无法实现弧线轨迹。
-
事件流的三阶段是捕获→目标→冒泡:捕获阶段从window逐层向下至目标元素,适合全局预处理;目标阶段在被操作元素上触发,捕获与冒泡监听器均生效;冒泡阶段从目标元素逐层向上传播,支撑事件委托。
-
按钮尺寸应以padding+min-width+font-size协同控制,禁用纯height/width硬设;移动端点击区须≥44px×44px,主操作按钮推荐16px字号+10px20px内边距+44px最小高,class命名需语义化(如btn-primary)而非视觉化。