老旧硬件平台需规避重封装库,优先用原生api+小型shim;慎用现代dom库、classlist.toggle第二参数、will-change等高开销特性;微前端须严格隔离状态与生命周期。

硬件平台生命周期越短、更新越快,就越不能依赖封装过重、维护滞后的HTML公共函数工具;应优先选用原生API组合 + 小型 shim 库的方案,避免被废弃的 polyfill 或已移除的实验性特性拖累。
老旧CPU设备(如2015年前笔记本/入门平板)慎用现代DOM库
这类设备常因V8引擎版本低、JS执行慢,导致Lodash、jQuery等全量库加载即卡顿,甚至触发内存回收失败。核心问题不是功能缺失,而是冗余逻辑压垮了单核300MHz的JavaScript主线程。
- document.querySelector() 在IE11或Android 4.4 WebView中性能比 document.getElementById() 低3–5倍,且无法被缓存优化
- 不推荐使用 classList.toggle('active', bool) —— 旧版Android Browser不支持第二个参数,需手动判断后调用 add/remove
- 替代方案:用
document.getElementById(id)+el.className += ' active'+ 正则清理重复class,代码略长但稳定
高PPI触控屏设备需验证CSS属性兼容性再封装
像iPad Pro(2020+)、Surface Laptop Studio这类设备虽硬件强,但系统WebView更新滞后,will-change: transform 或 contain: layout paint 可能在iOS 15.4 Safari中引发渲染撕裂,而开发者封装的“高性能滚动工具”却默认启用它们。
- 检测必须前置:
CSS.supports('will-change', 'transform')返回true才注入该样式,不能仅靠UA字符串判断 -
inputmode="decimal"在Chrome 98+才支持,旧版Android Chrome会静默忽略,若封装成“数字输入增强组件”,需 fallback 到 pattern="\d*" - 触控事件不要直接绑定
ontouchstart—— iOS 16.4起部分场景会阻止默认行为,改用addEventListener('touchstart', handler, { passive: false })
内存≤2GB设备上禁用自动初始化类库
很多所谓“轻量HTML工具”实际是Electron壳+完整React渲染链,冷启动即占180MB+;在树莓派4B(2GB RAM)或Chromebook(eMMC+2GB)上,页面未打开就因OOM被系统杀掉是常态。
- 避开任何带
new Vue()、ReactDOM.render()或createApp().mount()的开箱即用模板 - 用
document.createElement('div')+innerHTML构建UI片段时,务必清空旧引用:oldEl?.remove(); oldEl = null;,否则Node泄漏无法GC - 优先选仅含
fetch+URLSearchParams+localStorage的微型工具,如htm(2.1KB)或nanoid(130B),而非完整版axios或uuid
微前端子应用必须暴露生命周期,且不能依赖全局状态
当主应用(如qiankun)加载一个运行在旧版Edge(44)上的子应用时,若该子应用的入口文件里写了 window.myUtils = {...},后续其他子应用可能覆盖或读错这个对象——这不是bug,是硬件平台生命周期差异放大的沙盒缺陷。
- 子应用必须导出
bootstrap、mount、unmount三个函数,且每个函数内不得访问window上非自身挂载的属性 - 禁止在
mount中执行document.addEventListener('click', ...)而不在unmount中removeEventListener—— 旧浏览器不会自动清理,导致事件堆积 - 所有资源路径必须为相对路径:
src="./assets/logo.svg",而非src="/assets/logo.svg",否则在子应用挂载到 /app-a/ 下时404
真正难处理的不是“能不能跑”,而是“跑着跑着突然不响应”。比如 IntersectionObserver 在Android 6.0 WebView中存在竞态释放bug,必须在 disconnectedCallback 里显式 .disconnect(),否则下次挂载直接报错 —— 这类细节和硬件生命周期强相关,文档很少写,但线上故障高频出现。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











