前端技术文章
-
文章 · 前端 | 1个月前 | 前端 · 性能优化 · css · Core Web Vitals · 渲染性能 · 前端 渲染性能 CSS性能 CLS content-visibility contain-intrinsic-size Layout
从长页面首屏慢、滚动卡和 Layout 时间高的现象入手,讲清 content-visibility:auto 如何跳过离屏区块,为什么要配 contain-intrinsic-size,并给出 DevTools 复查和上线检查清单。430 收藏 -
浮动布局中空白间距主要由HTML换行、空格及默认margin/padding导致,可通过合并HTML标签、注释消除空格、设置font-size:0或重置样式清除,默认使用Flexbox或Grid布局更佳。430 收藏 -
闭包是构建跨平台适配层最轻量可靠的方式,通过在初始化阶段固化环境配置并捕获为自由变量,使函数调用无需运行时判断,支持多平台专属实例、行为封装及工厂函数动态创建。430 收藏 -
生产环境Tailwind样式丢失主因是PurgeCSS误删class,需检查content配置是否覆盖动态class来源,正确设置safelist正则,并通过debug:true或临时禁用content验证。430 收藏 -
Vue页面刷新数据丢失的根本原因是Vuex状态仅存于内存,需将关键信息如登录态、菜单、权限等持久化至sessionStorage;初始化时从sessionStorage读取并做类型转换,所有mutations中同步写入,推荐使用vuex-persistedstate插件实现可靠持久化。430 收藏 -
正则{n,m}限制的是Unicode码点数而非字节数;若需校验UTF-8字节长度,必须配合后端编码计算,前端正则仅能粗略拦截。430 收藏 -
Map迭代天然无序,需显式排序构建有序字典:可通过key切片排序、维护插入顺序或使用有序map库实现,避免依赖偶然顺序。430 收藏 -
正确做法是用position:absolute;left:-9999px视觉隐藏文件输入框以保留可交互性,再通过按钮点击事件同步调用其click()方法触发选择对话框,并监听change事件获取FileList。430 收藏 -
TailwindCSS适合什么项目?不适合什么项目?Tailwind不是“万能加速器”,它真正提效的前提是:你有至少3个中等复杂度页面,且团队愿意统一用原子类表达设计意图。小项目(比如单页登录表单、A/B测试页)硬套Tailwind,反而会因全量扫描content路径、加载未用类、热更新卡顿而拖慢开发。适合:中后台系统、Next.js/React/Vue项目、需要高度定制品牌色与间距体系的业务线不适合:仅需兼容IE11的老系统、静态营销页(bootstrap.min.css一行引430 收藏 -
border-spacing没反应最常见的原因是border-collapse被设为collapse,此时该属性被浏览器忽略;必须显式设置border-collapse:separate且作用于table元素,其第一个值控制列间距、第二个值控制行间距。430 收藏 -
应直接使用<picture>实现AVIF/WebP适配,因其无需JS、不发额外请求、SEO友好且原生支持;srcset不识别格式,必须依赖<sourcetype>做MIME类型匹配,顺序为AVIF→WebP→JPEG,并确保各格式尺寸与质量一致。430 收藏 -
JavaScript异步编程以Promise为基础抽象,async/await是其语法糖;Promise封装状态(pending/fulfilled/rejected),支持链式调用与并发方法;async/await简化书写与错误处理,二者定位不同、协同使用。430 收藏 -
FID必须用JavaScript主动监听计算上报,不能靠HTML控制;其本质是用户触发事件到浏览器开始处理的排队延迟,需用event.timeStamp减performance.now()近似计算,且监听须尽早注册并过滤后台事件。430 收藏 -
key必须加在map返回的顶层JSX元素上,优先用数据唯一ID,慎用index或随机值,确保同一层级兄弟节点中稳定且不重复。430 收藏 -
HTML模板错误常因标签嵌套非法、自闭合不当、条件逻辑残留或服务端注入干扰导致,浏览器会自动修复DOM结构,故应以Elements面板为准而非源码。430 收藏