-
v-memo是Vue3.2+针对长列表优化的实验性指令,通过显式声明不变依赖跳过子树diff;仅当v-memo数组中所有响应式值未变时复用vnode,需谨慎选键、避免嵌套与非响应式值。
-
HTML5原生required和pattern能满足简单场景的基础验证,如非空、邮箱格式、最小长度等,但存在样式不可控、错误信息无法自定义、不支持异步校验及老版Safari兼容性问题。
-
浏览器原生不支持clipboardchange事件,因安全限制禁止后台窃取剪贴板;仅能在用户手势触发、HTTPS环境及获clipboard-read权限后,通过定时轮询readText()并比对哈希实现折中监听。
-
外部资源加载失败主因是file://协议安全限制,需用LiveServer等HTTP服务绕过;路径错误或onerror未防重会加剧问题;base64兜底可避免图片不显示。
-
箭头函数不绑定自身this,而是继承外层作用域的this值;它用=>定义,无arguments、prototype、super和new.target,不能作为构造函数。
-
漏掉<metaname="viewport">标签,其他所有响应式代码都白写;它不是可选优化,而是移动端渲染开关,缺失或写错(如拼成viewpoint、用固定宽度)会导致@media不触发、页面缩放显示。
-
TailwindCSSv4因内置RustOxide引擎而忽略postcss.config.js,样式处理全程由tailwindcss()插件接管;@import"tailwindcss"是入口指令,自动加载三层、启用JIT编译并隐式支持important、@theme、@plugin等新语法,且默认扫描源码无需content配置。
-
Worker构造函数只接受HTTP(S)协议的脚本URL,不支持内联字符串或函数体;必须用Blob+URL.createObjectURL()生成application/javascript类型临时URL,并注意清理revokeObjectURL以防内存泄漏。
-
<metacharset="UTF-8">必须放在最前面,因为浏览器流式解析HTML时,若在遇到非ASCII字符前未读取该标签,会按默认编码(如ISO-8859-1)错误解码,导致乱码不可逆;它须是<head>中首个生效标签,且HTML5仅认charset属性,不推荐旧式http-equiv写法。
-
弹性盒子子元素无法居中,根本原因是父容器未设为flex布局或justify-content、align-items未同时设为center;需确保父元素display:flex、设置明确高度,并统一box-sizing:border-box。
-
闭包预初始化通过封装惰性求值逻辑实现冷启动优化:声明时仅绑定作用域并设缓存桩,触发时才执行轻量同步操作(如本地存储读取),支持一次初始化、多次复用,避免全局同步阻塞。
-
persist()仅申请免驱逐特权,不存数据、不操作DOM、不替代localStorage;现代浏览器因origin低价值、缺少用户交互或处于临时存储环境常返回false或静默失败,需用persisted()确认真实状态,并通过配额监控、分库、压缩等设计提升抗驱逐能力。
-
html-minifier的--minify-jstrue选项需依赖terser且仅压缩内联脚本:若未安装terser、语法不兼容、含module/nomodule属性或危险语句,会静默跳过;它不处理外部JS,也不跨script块优化,压缩效果取决于原始JS质量。
-
外边距合并是相邻块级元素垂直margin取较大值而非相加的规范行为;常见于div堆叠、h1后p、父子间;可用BFC阻断,推荐display:flow-root。
-
pagehide能替代unload,但必须结合event.persisted判断:persisted===true表示页面将进入bfcache,不应保存;false才是最后保存时机,否则会导致多存、错存或漏存。