前端技术文章
-
应优先使用100dvh并降级至100vh,同时必须配置viewport标签、重置html/body尺寸、统一box-sizing,并在关键场景用JS监听resize/scroll/orientationchange动态同步window.innerHeight。447 收藏 -
锚点链接生效需同时满足DOM存在、CSS定位流正常、路由未拦截三条件;目标必须用合法唯一id,动态内容需确保挂载后滚动,fixed导航需用scroll-margin-top避让,SPA中须绕过路由拦截并手动处理hash。447 收藏 -
页面将在3秒后跳转到">
最快实现跳转是用<metahttp-equiv="refresh"content="0;url=/login.html">,纯HTML、零JS、兼容老IE;需放<head>中,0秒立即跳转,相对路径推荐用/login.html而非./login.html。447 收藏 -
JavaScript前端无法直接生成PDF,但可用jsPDF(适合绘图/票据)、pdfmake(适合数据驱动排版)、html2pdf.js(HTML区块转PDF)或Puppeteer(服务端高保真)实现;需注意中文字体、内存限制及加密等高级功能须后端支持。447 收藏 -
JavaScript事件内存泄漏本质是闭包引用未释放:监听器未解绑或函数引用不一致导致DOM节点及关联数据无法回收,AbortController可统一管理生命周期。447 收藏 -
poster仅在视频未播放、元数据未加载或加载失败时生效,loadedmetadata触发后浏览器可能立即用首帧覆盖;首帧截取须等seeked事件,而非loadeddata。447 收藏 -
设计稿与页面尺寸不符的四大主因:box-sizing被覆盖致内容区变窄;rem换算基准(font-size)不统一;transform/zoom缩放干扰布局测量;DPR导致量尺工具读数虚高。447 收藏 -
CustomEvent构造函数创建自定义事件需传入事件名和含detail属性的配置对象,detail为必需字段用于携带任意数据;通过dispatchEvent触发,addEventListener监听时通过event.detail读取数据;可选bubbles、cancelable等配置控制事件行为。447 收藏 -
Provide适合局部树内隔离状态,Pinia适合跨组件需调试持久化的全局状态;二者互补协同,按状态生命周期归属选择:长期有意义归Pinia,仅模块内有效归Provide。447 收藏 -
正则表达式可初筛Hardcoded字符串,但需结合上下文判断真伪;推荐AST解析或专业工具(如Semgrep、SonarQube)提升准确率。447 收藏 -
styled-components的样式注入不发生在每次渲染,而是在组件挂载或主题变更时检查并按需插入;动态插值绑定React渲染周期,导致运行时计算开销显著高于构建时处理的CSSModules。447 收藏 -
使用ID选择器最合适的情况包括:1.唯一标识元素时,如导航栏、页脚等全局唯一区域;2.需要提升样式优先级时,因ID选择器权重高于类和元素选择器;3.布局结构中作为主要模块标识,有助于SEO和无障碍访问;4.谨慎使用以避免滥用导致维护困难。因其高优先级和唯一性,适用于JavaScript操作及特定样式锁定,但应避免过度依赖以保证样式的复用性和项目的可维护性。447 收藏 -
WebWorker是浏览器中实现JavaScript多线程的唯一标准机制,通过异步消息传递通信,运行于独立上下文,不支持DOM、window等API,需遵循结构化克隆、同源限制、显式错误处理等规范。447 收藏 -
JavaScript创建对象无唯一正确方式,需据场景选择:字面量适合单例配置,构造函数/class适用于多实例共享方法,Object.create()用于精细原型控制,工厂函数则灵活支持私有变量和模块化。447 收藏 -
按钮点击区域偏移主因是absolute定位时未校准padding对热区的影响,应检查定位基准、用transform替代top/left、加outline验证热区,并统一box-sizing:border-box。446 收藏