前端技术文章
-
用border和outline临时加边框是盒模型嵌套调试最快捷方式:border标content/padding区,outline标margin区,box-shadow可模拟单边描边,分层标记后立即删除。243 收藏 -
WeakRef不能替代ref/reactive,因其无.value属性、不触发getter/setter、不参与Vue/React依赖追踪,仅作弱引用防内存泄漏;需配合ref使用。123 收藏 -
ShadowDOM事件默认不穿透边界,外部监听器的event.target被重定向为宿主元素;需用event.composedPath()[0]获取真实目标,或派发bubbles:true且composed:true的自定义事件实现跨边界通信。494 收藏 -
Vue的Diff是策略性增量比对,非全量O(n²)比对;Patch是diff结果的自然执行,仅作用于判定变更的节点及必要子树,通过双端剪枝、key映射、v-memo实现三层收敛优化。427 收藏 -
Svelte组件默认样式局部化是通过编译时为CSS添加唯一属性选择器(如svelte-123abc)实现,而非ShadowDOM;:global()仅放行括号内选择器,需避免嵌套与误用,全局样式应统一管理于app.css而非组件内style块。169 收藏 -
HTML模板更新后页面仍显示旧内容,根本原因是多层缓存未彻底清理:ServiceWorker、CacheStorage、CDN及HTTP强缓存均可能拦截请求;仅Ctrl+F5无效,须按浏览器级→站点级→服务端级顺序清除,并配合URL版本化或构建哈希确保资源更新。351 收藏 -
ESLint与Prettier分工协作:ESLint检查逻辑错误,Prettier专注格式化;必须安装eslint-config-prettier以禁用ESLint中与其冲突的格式规则,且需置于extends末尾,否则会导致fix结果不可预测。260 收藏 -
影响LCP的CSS规则包括:阻塞渲染的未内联/大体积CSS、@import串行加载、display:none元素的冗余样式解析;需内联关键样式、避免font-display非swap值、用width/height+aspect-ratio占位防抖动、慎用transform/vw等运行时计算属性。243 收藏 -
Edge新版(Chromium内核90+)彻底移除Flash,因微软2021年1月停用且Chromium88+禁用NPAPI,设置页404、插件列表无项、注册表废弃;网站需升级HTML5或临时用IE模式。240 收藏 -
MessageChannel不能直接用于两个独立iframe间通信,因其端口需显式传递且iframe无天然引用关系;同源下应由父页面创建并分发端口实现高频低延迟点对点通信。418 收藏 -
lang属性必须精准标注各语言片段,根标签设置不能替代局部声明;需严格遵循BCP47标准,错误值导致语音、翻译、字体、CSS等多方面失效。433 收藏 -
FID必须用PerformanceObserver异步监听,因其唯一暴露浏览器调度层首次输入延迟;TTI则需结合主线程空闲观察与交互验证,异步逻辑易破坏连续5秒无长任务条件。470 收藏 -
BEM通过命名约束避免样式冲突和维护灾难:Block(如card)为独立单元,Element(如card__title)须依附Block,Modifier(如card--featured)表状态且不单独使用。206 收藏 -
模块模式通过闭包实现子应用JS作用域隔离,需配合沙箱、DOM/CSS隔离及规范卸载机制才能有效防止微前端全局污染。475 收藏 -
HTML5中插入版权符号©等特殊字符有四种方法:一、用HTML实体编码(如©);二、直接键盘输入Unicode字符(需声明UTF-8);三、用JavaScript动态插入;四、用CSS的content属性注入(仅装饰性用途)。387 收藏