-
async与defer本质区别在于执行时机:async下载完立即执行且不保证顺序,可能阻塞DOM解析;defer则等DOM解析完按序执行。446 收藏 -
CSSGrid实现像素级Cell定位需显式命名网格线并用grid-row/column精确锚定,配合minmax()控制行高、vh/vmin适配缩放、break-inside:avoid处理分页,禁用implicitgridflow。101 收藏 -
客户端图片压缩上传可显著节省流量,通过FileReader+canvas压缩JPEG、限制文件大小与数量、分块上传、禁用冗余字段及禁用重复提交按钮等措施实现。177 收藏 -
深层嵌套选择器(>4层)拖慢渲染,因浏览器从右向左匹配,回溯路径长、样式计算开销大,且难以缓存;应控制在3层内,用语义化class替代。332 收藏 -
mountElement是Vue.js中将虚拟DOM转为真实DOM的核心挂载函数,负责元素创建、props处理、事件绑定、指令执行、子节点递归挂载及onMounted钩子触发。145 收藏 -
在Nuxt3的服务端API路由中,无法通过import()动态导入JSON文件(因ES模块要求路径为静态字符串),需改用Node.js原生fs或readFile等运行时文件读取方式安全加载。187 收藏 -
直接用v-for渲染万级数据会卡死,因性能瓶颈在DOM创建、布局计算和重绘;vue-virtual-scroll-list需合理设置keeps(20–50)、estimate-size(整数像素值)、data-key,并避免子组件依赖内部状态或使用v-model。127 收藏 -
多行文字省略号不能只用text-overflow:ellipsis,因其仅支持单行且需white-space:nowrap和overflow:hidden,会阻止换行;多行截断应使用display:-webkit-box、-webkit-box-orient:vertical和-webkit-line-clamp组合方案。265 收藏 -
使用CSS可实现无需JavaScript的悬浮提示框。通过相对定位容器、绝对定位提示文本,并利用:hover触发opacity和visibility的显示切换,配合transition实现淡入动画,再用伪元素添加箭头指向,即可完成简洁高效的Tooltip效果。185 收藏 -
Array.prototype.reduce()是前端按字段分组最轻量且无需依赖库的解法,返回以分组键为key的对象,需注意key类型安全、空分组处理及后续排序搜索应在数据层完成而非DOM层。385 收藏 -
TwitterCard预览图不显示,90%是og:image或twitter:image的路径、尺寸、协议或缓存问题;需确保图片为HTTPS绝对URL、服务器返回200状态码及正确Content-Type,且Twitterbot可直连访问。444 收藏 -
JavaScript创建对象无唯一正确方式,需据场景选择:字面量适合单例配置,构造函数/class适用于多实例共享方法,Object.create()用于精细原型控制,工厂函数则灵活支持私有变量和模块化。447 收藏 -
iOSSafari中mutedautoplay仍需用户手势才能可靠播放,因系统强制要求首次播放必须绑定真实用户交互事件,且play()须在事件回调中直接调用,不可延迟。468 收藏 -
必须加overflow:hidden且父容器设position:relative,否则transform:scale()会导致图片溢出;需显式设置transform-origin:center并确保容器有明确宽高,图片用display:block避免留白。255 收藏 -
字段初始化器在构造函数执行前按声明顺序运行,可访问this但不可用参数;父类字段先于子类字段初始化,且super()调用后、子类constructor前执行。135 收藏