-
Less中.clearfix等Mixin不生效,因Less仅做语法转换而不解析CSS语义,厂商前缀需显式调用Mixin或集成Autoprefixer;手写flex()需分IE10旧语法(-ms-flexbox)与现代标准,且属性须配对;Autoprefixer须在Less编译后通过构建工具接入。
-
使用PostCSS配合autoprefixer插件可自动添加浏览器前缀。1.安装postcss和autoprefixer依赖;2.创建postcss.config.js文件并引入autoprefixer插件;3.通过.browserslistrc或package.json配置目标浏览器范围;4.在Webpack等构建工具中集成postcss-loader;处理后,现代CSS如display:flex会自动生成-webkit-、-moz-等前缀版本,提升兼容性。
-
动态路由配合keep-alive实现多组件缓存的关键是用唯一key区分实例并确保组件有稳定name且在include中;推荐<router-view:key="$route.fullPath"/>和name:'UserDetail',配合activated/deactivated钩子精细控制状态。
-
浮动元素脱离文档流导致父容器高度塌陷;clearfix通过伪元素::after设置content:""、display:table和clear:both,使父容器重新包含浮动子元素。
-
最简单的内存缓存是用普通JavaScript对象({})作键值容器,适合单页应用临时存储;应封装为支持过期、LRU淘汰和自定义TTL的类,优先用Map;需分层结合ServiceWorker、HTTP缓存和localStorage,并按业务场景设计失效策略。
-
HTML5使用select和option标签创建语义化下拉列表,支持默认选中、占位提示、optgroup分组、multiple多选及label关联提升可访问性。
-
JavaScript的class是构造函数的语法糖,基于原型链,需用new调用;定义需constructor,方法直接声明,静态方法加static;继承用extends和super(),子类constructor必须首行调用super()。
-
HTML5的placeholder不支持密码提示语义化定制,应改用aria-describedby+独立提示区块实现可访问、可动态更新的引导方案。
-
IE6/7中position:relative元素底部多出3像素空隙是因将相对定位元素视为行内替换元素而受vertical-align影响,解决方案是设置vertical-align:bottom而非负margin。
-
HTML5视频画面撕裂主因是GPU合成层未对齐刷新率,需通过CSS强制图层分离(如transform:translateZ(0))、避免剪裁与滤镜,并在html5play中用awaitvideo.play()替代同步调用。
-
JavaScript异步并发控制的核心目的是防止内存过度占用,因未节制的Promise会通过闭包引用、I/O缓冲区积压、事件队列膨胀及重试逻辑导致堆溢出;推荐采用滑动窗口并发池方案,并配合及时清理数据、避免大对象闭包、合理设限与流式处理。
-
高阶组件是React中复用组件逻辑的设计模式,本质为接收组件并返回增强组件的函数。它通过包装原有组件实现功能扩展,如权限控制、日志埋点、加载状态管理等,无需修改原组件代码。典型形式为constwithEnhancement=(WrappedComponent)=>{...},利用组合特性实现逻辑抽离。常见应用场景包括权限校验、数据上报、异步加载处理和表单验证增强。使用时需避免在render中创建HOC、注意静态方法丢失及props命名冲突问题,过度嵌套易导致“包装地狱”。随着Hooks普及,许多功能
-
pushState和replaceState不刷新页面但需手动更新视图,参数顺序为(state,title,url),url须同源;popstate仅在浏览器导航时触发,首次加载需手动初始化;服务端必须配置fallback路由避免404。
-
TailwindCSS中部分工具类(如text-4xl、bg-red-400、rounded-full)偶发失效,通常并非语法错误,而是配置、扫描范围或构建流程问题所致。本文系统梳理根本原因并提供可落地的排查与修复方案。
-
精度和稳定性优先选requestAnimationFrame,需用performance.now()计算剩余时间;setInterval简单但易漂移,适合静态翻页;React中应封装为可清理的自定义Hook并管理状态。